KR101626174B1 - 데이터 센터 프로그래밍 모델 - Google Patents

데이터 센터 프로그래밍 모델 Download PDF

Info

Publication number
KR101626174B1
KR101626174B1 KR1020117004277A KR20117004277A KR101626174B1 KR 101626174 B1 KR101626174 B1 KR 101626174B1 KR 1020117004277 A KR1020117004277 A KR 1020117004277A KR 20117004277 A KR20117004277 A KR 20117004277A KR 101626174 B1 KR101626174 B1 KR 101626174B1
Authority
KR
South Korea
Prior art keywords
data center
service
resources
resource
programming model
Prior art date
Application number
KR1020117004277A
Other languages
English (en)
Other versions
KR20110057138A (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 KR20110057138A publication Critical patent/KR20110057138A/ko
Application granted granted Critical
Publication of KR101626174B1 publication Critical patent/KR101626174B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/2454Optimisation of common expressions
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

예시적인 방법은 데이터 센터에서 서비스를 호스팅하는 단계 - 이 서비스는 프로그래밍 모델에 따라 개발된 적어도 하나의 소프트웨어 구성요소에 의존하고 데이터 센터는 데이터 센터의 리소스를 추상화하는 대응하는 프로그래밍 모델 추상화 계층을 포함함 - 서비스에 대한 요청을 수신하는 단계, 및 요청에 응답하여, 요청을 수행할 수 있도록 데이터 센터의 리소스의 적어도 일부를 서비스에 할당하는 단계를 포함하고, 프로그래밍 모델 추상화 계층이 적어도 하나의 소프트웨어 구성요소에서의 리소스 클래스에 대한 참조에 부분적으로 기초하여 할당하는 단계를 수행하고, 리소스 클래스가 데이터 센터의 하나 이상의 리소스의 변화를 고려하기 위해 수정될 수 있다. 다양한 다른 장치, 시스템 및 방법도 기술되어 있다.

Description

데이터 센터 프로그래밍 모델{DATA CENTER PROGRAMMING MODEL}
대규모 데이터 센터는 비교적 새로운 인류의 창조물이고, 이것들이 제공하는 상업적 기회가 확장됨에 따라 그것의 조직 및 구조가 급속히 발전해 왔다. 전형적인 최신의 데이터 센터는 고속 네트워킹, 라우터, 및 방화벽에 의해 상호연결된 표준의 소프트웨어 패키지의 집합체를 실행하는 하드웨어 클러스터의 조직된 집합체(웹 서버, 데이터베이스 서버 등)이다. 이들 컴퓨터를 조직하고, 그 구성을 최적화하며, 그 구성에서의 오류를 디버깅하고, 구성 컴퓨터(constituent machine)에 소프트웨어를 설치하고 제거하는 작업은 대체로 사람 운영자에게 맡겨져 있다.
데이터 센터에 의해 지원되는 웹 서비스[예를 들어, "SaaS"(software as a service)]도 역시 급속히 발전하고 있다(예를 들어, 회사가 처음에는 검색 서비스를 제공하다가 이어서 이메일 서비스, 그 다음에 지도 서비스 등을 제공할지도 모른다). 이러한 서비스는 하나 이상의 데이터 센터에 배포되어 그 데이터 센터에 의해 호스팅되는 응용 프로그램에 의존한다. 서비스 운영자 및 데이터 센터 운영자는 통상적으로 특정의 하드웨어 리소스(예를 들어, 프로세서의 수, 디스크 공간, 메모리, 대역폭 등)에 대해 합의를 한다. 전형적인 구성은 서비스를 제공하는 응용 프로그램이 전용 서버 상에 "살아(live)" 있도록 특정 수의 서버 및 디스크 공간을 서비스에 전용시킨다. 상황이 변할 때, 이 유형의 구성은 데이터 센터 및 서비스 운영자에게 상당한 관리 오버헤드를 발생한다. 예를 들어, 데이터 센터 운영자는 서비스의 응용 프로그램의 실행에 영향을 미치는 다양한 하드웨어 구성요소를 업그레이드할 수 있다. 이러한 일례에서, 하드웨어 변경은 서비스 운영자가, 이 변경을 고려하여 서비스의 최종 사용자에게 만족할만한 수준의 서비스를 보장하기 위해, 어쩔 수 없이 그의 응용 프로그램을 수정 또는 재개발해야만 하는 파문을 일으킬 수 있다.
본 명세서에 기술된 다양한 예시적인 기술은 응용 프로그램 개발, 호스팅 및 수행을 용이하게 해줄 수 있는 아키텍처 및 프로그래밍 모델에 관한 것이다.
예시적인 방법은 데이터 센터에서 서비스를 호스팅하는 단계 - 이 서비스는 프로그래밍 모델에 따라 개발된 적어도 하나의 소프트웨어 구성요소에 의존하고 데이터 센터는 데이터 센터의 리소스를 추상화하는 대응하는 프로그래밍 모델 추상화 계층을 포함함 - 서비스에 대한 요청을 수신하는 단계, 및 요청에 응답하여, 요청을 수행할 수 있도록 데이터 센터의 리소스의 적어도 일부를 서비스에 할당하는 단계를 포함하고, 프로그래밍 모델 추상화 계층은 적어도 하나의 소프트웨어 구성요소에서의 리소스 클래스에 대한 참조에 부분적으로 기초하여 할당하는 단계를 수행하고, 리소스 클래스는 데이터 센터의 하나 이상의 리소스의 변화를 고려하기 위해 수정될 수 있다. 다양한 다른 장치, 시스템 및 방법도 기술되어 있다.
이하의 도면을 참조하여, 비제한적이고 비전수적인 일례들에 대해 기술한다.
도 1은 종래의 응용 프로그램 개발, 배포 및 호스팅 방식과, 데이터 센터의 리소스를 추상화하는 프로그래밍 모델 및 대응하는 추상화 계층을 포함하는 예시적인 방식의 블록도.
도 2는 데이터 센터의 리소스를 추상화하는 프로그래밍 모델 및 대응하는 추상화 계층에 대한 예시적인 아키텍처의 블록도.
도 3은 예시적인 프로그래밍 모델 추상화 계층과, 실제의 물리 리소스 및 데이터 센터에서의 가상 리소스를 나타내는 가상화 계층의 블록도.
도 4는, 예를 들어, 요청이 수신될 때, 리소스의 가용성에 부분적으로 기초하여 서비스에 대한 요청을 수행하기 위해 리소스를 할당하는 예시적인 기술의 블록도.
도 5는 다수의 서비스, 서비스 수준 계약 및 이벤트 추적을 포함하는 예시적인 방식의 블록도.
도 6은 리소스 클래스 및 이벤트 추적을 참조하는 프로그래밍 모델 추상화 계층과 대략적인 논리적 표현 응용 프로그램 코드의 블록도.
도 7은 프로그래밍 모델 추상화 계층이, 예를 들어, 응용 프로그램에서의 명령문 또는 참조에 부분적으로 기초하여, 구성요소를 배포하고 및/또는 구성요소의 실행을 병렬로 제공할 수 있는 예시적인 방식의 블록도.
도 8은 예시적인 컴퓨팅 장치의 블록도.
예시적인 프로그래밍 모델은 개발자가 데이터 센터의 프로그래밍 모델 추상화 계층을 대상으로 하는 (예를 들어, 웹 서비스에 대한) 응용 프로그램을 개발할 수 있게 해준다. 이러한 프로그래밍 모델 추상화 계층은 데이터 센터 리소스를 사용하여 응용 프로그램의 실행을 관리할 수 있다. 따라서, 개발자는, 데이터 센터의 서버, 저장 장치 등에 관한 특정의 구체적 사항을 알 필요없이, 데이터 센터에서 호스팅되는 응용 프로그램을 개발할 수 있다.
본 명세서에 기술된 바와 같이, 예시적인 프로그래밍 모델 및 관련 추상화 계층은 데이터 센터 리소스를 추상화하고 그로써 응용 프로그램 개발자를 데이터 센터 리소스 및 그의 동작, 유지 관리 등의 다양한 측면으로부터 격리시킨다. 이러한 시스템은 또한 서비스와 데이터 센터 운영자 간의 협상을 용이하게 해주고 서비스 품질을 향상시키며 비용을 절감할 수 있다.
도 1은 호스팅되는 서비스에 대한 종래의 방식(101) 및 예시적인 방식(201)을 나타낸 것이다. 응용 프로그램 개발 단계(103), 응용 프로그램 배포 단계(105), 응용 프로그램 호스팅 단계(107) 및 응용 프로그램 사용 단계(109)와 관련하여, 이들 방식 각각에 대해 설명한다.
종래의 방식(101)의 경우, 개발 단계(103)에서, 개발자는 프로그래밍 모델(110)에 따라 응용 프로그램(120)을 선택하고 개발한다. 도시된 바와 같이, 프로그래밍 모델(110)은 개발된 응용 프로그램(120)에서 특정 기능을 수행하기 위해 의존할 수 있는 다양한 클래스(115)를 포함한다. 클래스(115)는 컴퓨터(140)를 동작시키는 운영 체제(OS)(130)를 대상으로 할 수 있다. 다른 대안으로서, 클래스(115)는 응용 프로그램(120)과 OS(130) 간에 존재할 수 있는 소프트웨어 계층인 런타임 엔진 또는 가상 컴퓨터를 대상으로 할 수 있다.
배포 단계(105)에서, 서비스 운영자는 개발된 응용 프로그램(120)을 데이터 센터(150)에 배포한다. 도시된 바와 같이, 데이터 센터(150)는 다양한 리소스(152-1, 152-2, … , 152-n)를 포함한다. 배포 단계(105) 동안에, 데이터 센터 운영자는 통상적으로 응용 프로그램(120)을 특정 리소스에 할당한다. 표시된 바와 같이, 호스팅 단계(107)에서, 전용 리소스(152-2)는 응용 프로그램(120)을 호스팅한다.
호스팅된 경우, 사용 단계(109)에서, 사용자는 사용자 컴퓨터(160)를 통해 응용 프로그램(즉, 서비스)의 사용을 요청할 수 있다. 데이터 센터(150)에서 요청을 수신할 시에, 전용 리소스(152-2) 상에서 응용 프로그램(120)을 실행함으로써 요청이 충족된다.
"호스트 비용" 블록으로 표시된 바와 같이, 종래의 방식(101)에서는, 서비스를 위해 독점적으로 예비되어 있는 리소스(152-2)의 사용에 대해 서비스 운영자에게 요금이 청구된다.
종래의 방식(101)에서는, 데이터 센터 운영자가 리소스(152-2)에 영향을 주는 하드웨어 업그레이드를 수행하는 경우, 이 변화의 영향을 서비스 운영자가 느낄 수 있다. 예를 들어, 데이터 센터 운영자가 서버 하드웨어 및/또는 소프트웨어를 업그레이드하는 경우, 응용 프로그램(120)이 올바르게 또는 가급적 효율적으로 실행되지 않을 수 있다. 이러한 상황에서, 데이터 센터 운영자가 결함 또는 최종 사용자에 대한 서비스의 지연에 대해 서비스 운영자에게 곧바로 통지하지 못할지도 모른다. 그 대신에, 서비스 운영자가 불만을 품은 최종 사용자로부터 불만 사항을 수신할 수 있다. 차례로, 서비스 운영자가 데이터 센터 운영자에게 불평을 할 수 있고 그로써 관계가 불편해질 수 있으며 심지어 호스트 비용의 재협상을 요구하거나 계약 위반을 주장할 수 있다. 서비스 운영자와 데이터 센터 운영자 간의 서비스 수준 계약이 업그레이드로 인한 서비스 중단을 고려할 수 있지만, 궁극적으로 양 당사자의 목표는 만족할만한 서비스를 제공하는 데 있다.
이와 달리, 예시적인 방식(201)은 다양한 역할 및 의무를 데이터 센터 운영자에게 전가하는 예시적인 프로그래밍 모델(210) 및 관련 프로그래밍 모델 추상화 계층(255)에 의존하며, 부대적인 책임이 서비스 공급자에게 부과된다. 도 1에 도시된 바와 같이, 개발 단계(103)에서, 개발자는 예시적인 프로그래밍 모델(210)을 사용하여 예시적인 응용 프로그램(220)을 개발하고, 배포, 호스팅 및 사용 단계(105, 107, 109)에서, 예시적인 데이터 센터(250)는 응용 프로그램(220)에 대한 리소스를 관리하는 데 프로그래밍 모델 추상화 계층(255)에 의존한다.
예시적인 방식(201)에서, 프로그래밍 모델(210)은 응용 프로그램(220)에 대한 응용 프로그램 코드에 적절히 위치될 수 있는 클래스(215)를 포함한다. 클래스(215)는 프로그래밍 모델 추상화 계층(255)에 의한 리소스 관리에 관련된 다양한 클래스를 포함한다. 예를 들어, 클래스(215)는 단위 시간당 비용을 제한하는 비용 클래스, 요청당 최소량의 CPU 능력을 설정하는 CPU 클래스, 요청당 최소량의 RAM을 설정하는 메모리 클래스 등을 포함할 수 있다. 따라서, 프로그래밍 모델(210)은 요청당 어떤 요건을 설정하는 클래스(215) 중 하나 이상의 클래스를 포함할 수 있다. 요청의 수가 변하거나 그에 대해 알지 못할 수 있기 때문에, 이 방식은 서비스 운영자 및 데이터 센터 운영자에게 얼마간의 협상 유연성을 부여한다, 즉 이러한 방식은 서비스 운영자에게 리소스를 전용시킬 필요성을 완화시킬 수 있다.
본 명세서에 기술된 바와 같이, 데이터 센터(250)에서의 응용 프로그램(220)의 관리와 관련된 클래스는 집중되어 있거나(예를 들어, 특정의 코드 섹션으로 나타남) 응용 프로그램(220)에 대한 코드 전체에 걸쳐 분산되어 있을 수 있다. 게다가, 이러한 클래스에 한번[예를 들어, 추상화 계층(255)에 의한 초기 평가 동안에] 또는 여러번[예를 들어, 주기적으로 또는 데이터 센터(250)에서 상황이 변할 때마다] 의존할 수 있다. 예를 들어, 통상적인 사용자 요청이 있는 경우, 응용 프로그램(220)의 코드의 일부분이 특정 기능을 요청하고 이어서, 그 기능에 대한 대략적인 메모리를 지정하는 일련의 클래스(215) 내의 리소스 클래스를 참조하는 명령문이 올 수 있다.
배포 단계(105)에서, 응용 프로그램(220)의 수신 시에, 프로그래밍 모델 추상화 계층(255)은 각각의 사용자 요청에 응답하여 요구되는 리소스의 리소스 요구사항 및 성질을 결정 또는 추정하기 위해 리소스 클래스에 대한 모든 명령문을 실행할 수 있다. 이러한 분석은 또한, "모델-기반" 비용 방식을 참조하는 "호스트 비용"으로 나타낸 바와 같이, 데이터 센터 운영자가 응용 프로그램(220)을 호스팅하는 비용을 결정하는 데 도움을 줄 수 있다.
호스팅 단계(107)에서, 프로그래밍 모델 추상화 계층(255)은 호스팅 특성을 응용 프로그램(220)에 할당하는 데 리소스 클래스에 의존할 수 있다. 사용 단계(109)에서, 데이터 센터(250) 내의 특정의 전용된 리소스에서 응용 프로그램(220)을 호스팅해야 한다는 요구사항이 없을 수 있기 때문에, 데이터 센터(250)가 요청을 수신할 때 요청을 충족시키기 위해 호스팅 특성에 의존하여 응용 프로그램(220)을 실행하기 위한 "가용" 리소스를 제공할 수 있다. 호스팅 특성에 따라, "가용" 리소스는 [예를 들어, 개발 단계(103)에서 코드에 직접 프로그램되는 바와 같이] 서비스 운영자의 기대를 충족시키는 저비용, 고비용 등일 수 있다. 이러한 일례에서, "가용" 리소스가 데이터 센터 운영자에 의해 결정될 수 있으며, 이는 (예를 들어, 최저 비용, 유지 관리 등을 위해) 리소스의 관리에 더 많은 유연성을 부여한다.
사용 단계(109)에서, 응용 프로그램(220)의 실제 실행 동안에, 리소스 명령문이 무시되거나 때로는 실제의 리소스 수요에 대해 태깅되어 벤치마킹될 수 있다. 프로그래밍 모델 추상화 계층(255)은, 응용 프로그램(220)을 관리하는 데 또는 하나 이상의 다른 응용 프로그램을 관리하는 데 사용하기 위해, 이러한 정보를 로그에 저장할 수 있다.
전반적으로, 예시적인 방식(201)은 데이터 센터 운영자가, 종래의 유연하지 않은 전용 리소스 방식(101)에 꼭 구속될 필요없이, 서비스와 관련하여 그의 의무를 관리할 수 있게 해준다.
도 2는 도 1의 프로그래밍 모델(210) 및 추상화 계층(255)에 대한 예시적인 아키텍처(280)를 나타낸 것이다. 프로그래밍 모델(210)은 클래스(215)를 포함하고, 이는 종래의 클래스(216) 및 리소스 클래스(217)를 추가로 포함한다. 작성 또는 개발 단계(283)에서, 응용 프로그램(220)이 프로그래밍 모델(210)에 따라 작성되고 종래의 클래스에 대한 명령문(221) 및 리소스 클래스에 대한 명령문(223)을 포함한다. 배포 단계(285)에서, 응용 프로그램(220)은 데이터 센터 리소스(252)[적어도 일부 리소스가 프로그래밍 모델 추상화 계층(255)을 지원함]를 포함하는 데이터 센터에 배포된다. 도 2의 일례에 도시된 바와 같이, 프로그래밍 모델 추상화 계층(255)은 클래스 라이브러리 모듈(256), 데이터 센터 정보 모듈(257) 및 호스트 비용 모듈(258)을 포함한다. 전파 단계(286)에서, 데이터 센터 정보 모듈(257)은 중요한 데이터 센터 정보를 클래스 라이브러리 모듈(256) 및/또는 호스트 비용 모듈(258)로 전파하는 동작을 한다. 차례로, 프로그래밍 모델(210) 내의 클래스(215)에 대해 업그레이드(예를 들어, 수정, 추가 등)가 필요한 것으로 클래스 라이브러리 모듈(256)이 결정하는 경우, 프로그래밍 모듈(210)이 프로그래밍 모델 추상화 계층(252) 및 그의 하부 데이터 센터 리소스에 대해 계속 유효하도록 하기 위해 이러한 변경이 행해진다.
본 명세서에 기술된 바와 같이, 예시적인 방법은 데이터 센터에서 서비스를 호스팅하는 단계 - 이 서비스는 프로그래밍 모델에 따라 개발된 적어도 하나의 소프트웨어 구성요소에 의존하고 데이터 센터는 데이터 센터의 리소스를 추상화하는 대응하는 프로그래밍 모델 추상화 계층을 포함함[예를 들어, 도 1의 프로그래밍 모델(210), 응용 프로그램(220), 데이터 센터(250) 및 추상화 계층(255)을 참조] - 서비스에 대한 요청을 수신하는 단계 [예를 들어, 도 1의 사용 단계(109)를 참조], 및 요청에 응답하여, 요청을 수행할 수 있도록 데이터 센터의 리소스의 적어도 일부를 서비스에 할당하는 단계를 포함하고, 프로그래밍 모델 추상화 계층은 적어도 하나의 소프트웨어 구성요소에서의 리소스 클래스에 대한 참조에 부분적으로 기초하여 할당하는 단계를 수행하고, 리소스 클래스는 데이터 센터의 하나 이상의 리소스의 변화를 고려하기 위해 수정될 수 있다[예를 들어, 도 1의 프로그래밍 모델(210)의 클래스(215)를 참조]. 예를 들어, 리소스 클래스는 프로세서 리소스 클래스, 메모리 리소스 클래스, 대역폭 리소스 클래스 또는 다른 유형의 리소스에 대한 클래스일 수 있다.
이하에서 더 상세히 기술하는 바와 같이, 프로그래밍 모델 추상화 계층은, 요청을 수행하기 위해 리소스를 할당한 경우, 요청의 수신 시에, 데이터 센터 내의 가용 리소스를 고려할 수 있다. 다양한 일례에서, 서비스에 대한 제1 요청에 응답하여 할당된 리소스의 적어도 일부가 서비스에 대한 제2 요청에 응답하여 할당된 리소스와 다를 수 있다. 예를 들어, 이러한 차이는 제1 시각에서와 제2 시각에서의 데이터 센터에서의 리소스 사용률에 의존할 수 있다. 게다가, 이러한 차이는 실제 리소스, 가상 리소스, 또는 실제 리소스와 가상 리소스에서의 차이일 수 있다.
언급한 바와 같이, 예시적인 프로그래밍 모델 및 프로그래밍 모델 추상화 계층은 서비스를 리소스에 대한 변화로부터 격리시킬 수 있다. 예를 들어, 서비스에 대한 코드를 수정하는 대신에, 데이터 센터 운영자는, 데이터 센터의 하드웨어 리소스 또는 기타 리소스에 대한 변화에 기초하여, 리소스 클래스를 수정할 수 있다. 이러한 방식으로, 서비스에 대한 코드(예를 들어, 서비스의 소프트웨어 구성요소)가, 어떤 수정도 필요로 하지 않고, 변경된 하드웨어 리소스 또는 다른 리소스를 부분적으로 사용하여 실행될 수 있다. 이 방식은 사실상 서비스 운영자가 데이터 센터 리소스에 대한 변화를 처리할 필요가 없게 해줄 수 있다. 예를 들어, 예시적인 프로그래밍 모델 및 프로그래밍 모델 추상화 계층 방식은 서비스의 소프트웨어 구성요소를 데이터 센터 내의 서버의 수의 변화로부터, 데이터 센터 내의 프로세서의 유형의 변화로부터, 기타로부터 격리시킬 수 있다.
본 명세서에 기술된 바와 같이, 예시적인 방법은 서비스에 대한 요청에 응답하여 데이터 센터에 의해 호스팅되는 서비스에 실제 리소스의 유형을 할당하는 데 사용하기 위한 리소스 클래스를 제공하는 단계, 실제 리소스의 유형을 사용하여 소프트웨어 구성요소를 실행하는 단계, 실제 리소스의 유형의 특성을 변경하는 단계, 리소스 클래스를 수정하는 단계, 및 실제 리소스의 변경된 유형을 사용하여 소프트웨어 구성요소를 실행하는 단계를 포함하고, 리소스 클래스를 수정하는 단계가 변경하는 단계로부터 소프트웨어 구성요소를 격리시킨다.
이하에서 더 설명하는 바와 같이, 서비스가 데이터 센터에 의해 호스팅되는 또는 심지어 외부에서 호스팅되는 다른 서비스에 의존할 수 있다. 이러한 상황에서, 다른 서비스에 대해 서비스 수준 계약이 존재할 수 있다. 예시적인 방법은, 다른 서비스가 서비스 수준 계약의 하나 이상의 조건을 준수하는지를 판정하기에 충분한 정보를 수집하기 위해, 다른 서비스의 실행 동안에 이벤트 추적을 수행하는 단계를 포함할 수 있다. 이벤트 추적이, 서비스 수준 계약과 관련하여 설명되고 있지만, (예를 들어, 서비스의 소프트웨어 구성요소 내의 하나 이상의 명령문에 따라) 하나 이상의 다른 상황에서도 사용될 수 있다.
도 1의 예시적인 방식(201)은 서비스에 대한 아키텍처인 것으로 생각될 수 있으며, 이 아키텍처는 데이터 센터에 의해 구현되는 프로그래밍 모델 및 대응하는 프로그래밍 모델 추상화 계층, 및 프로그래밍 모델에 따라 개발되고 데이터 센터에 의해 호스팅되는 서비스를 포함하고, 프로그래밍 모델 추상화 계층은 서비스에 대한 요청에 응답하여, 예를 들어, 서비스의 적어도 하나의 소프트웨어 구성요소에서의 리소스 클래스에 대한 참조에 부분적으로 기초하여, 데이터 센터의 적어도 일부 리소스를 서비스에 할당하며, 데이터 센터의 하나 이상의 리소스의 변화를 고려하기 위해 리소스 클래스가 수정될 수 있다.
도 3은 프로그래밍 모델 추상화 계층(355)이 실제 리소스(352) 및/또는 실제 리소스(354)에 의존하는 가상화 계층과 인터페이스할 수 있는 예시적인 구성(300)을 나타낸 것이다. 가상화 계층(354)은 실제 리소스들(352) 중 하나 이상에 의존하는 하나 이상의 가상 컴퓨터 또는 기타 가상 리소스를 작동시킬 수 있다. 예를 들어, 프로그래밍 모델 추상화 계층(355)은 요청에 응답하여 응용 프로그램을 실행하기 위해 하나 이상의 가상 컴퓨터를 인스턴스화할 수 있다. 다른 일례에서, 프로그래밍 모델 추상화 계층(355)은, 적어도 일부 실제 리소스(352)를 직접 관리하는 것과 그에 부가하여 실제 리소스(352)를 가상화 계층(354)을 통해 간접적으로 관리하는 것에 의해, 요청을 충족시킬 수 있다.
도 4는 리소스에 대한 수요의 변동이 있는 예시적인 데이터 센터(450)를 나타낸 것이다. 도 4의 일례에서, 플롯(451)은 CPU 및 RAM 리소스에 대한 시변 수요(이들이 반드시 시간에 대해 비슷하게 변하는 것은 아님)를 나타낸다. 플롯(451)은 2개의 시각, 즉 시각 A 및 시각 B를 나타내고 있다. 시각 A에서, CPU 수요는 높지만 RAM 수요는 보통이며, 시각 B에서 CPU 수요는 낮지만 RAM 수요는 비교적 높다. 데이터 센터(450)의 예시적인 프로그래밍 모델 추상화 계층(455)은 현재의 리소스 수요를 고려하는 방식으로 요청에 리소스를 할당할 수 있다. 사용자 컴퓨터(460)가 데이터 센터(450)에 의해 호스팅되는 응용 프로그램(420)에 대한 요청을 발생하는 것을 생각해보자. 할당 블록(490)에 나타낸 바와 같이, 시각 A에서, 프로그래밍 모델 추상화 계층(455)은 응용 프로그램(420)에 블레이드(452-4) 및 가상 컴퓨터(454-4)를 할당하고, 시각 B에서, 프로그래밍 모델 추상화 계층(455)은 응용 프로그램(420)에 3개의 블레이드(452-2, 452-3, 452-4)를 할당한다. 따라서, RAM 사용량이 낮은 경우, 프로그래밍 모델 추상화 계층(455)은 가상화 계층(454)에 더 의존하기로 결정할 수 있고, RAM 사용량이 높고 CPU 사용량이 낮은 경우, 프로그래밍 모델 추상화 계층(455)은 실제 하드웨어(예를 들어, 블레이드)에 더 의존하기로 결정할 수 있다.
도 5는 응용 프로그램(520)이 다른 응용 프로그램 또는 서비스(525)에 의존하는 예시적인 시나리오를 나타낸 것이다. 이 일례에서, 응용 프로그램(520)은 클라이언트측 구성요소(521), 서버측 구성요소(522), 및 응용 프로그램(525)에 의존하는 서버측 구성요소(523)를 포함한다. 도시된 바와 같이, 응용 프로그램(520)의 개발자[예를 들어, 응용 프로그램(520)에 의해 제공되는 서비스의 소유자]와 응용 프로그램(525)의 개발자[예를 들어, 응용 프로그램(525)에 의해 제공되는 서비스의 소유자] 간에 서비스 수준 계약(570)이 존재한다. 서비스 수준 계약(570)은 통상적으로 특정 조건에 대한 응용 프로그램(525)의 최소 표준 및 응용 프로그램(525)의 사용량에 대한 로열티를 명시한다. 응용 프로그램(525)은 다른 응용 프로그램이 서비스 번들(services bundle)에 통합시킬 수 있는 일부 기능(예를 들어, GPS 정보)을 제공하는 주문형 응용 프로그램 또는 서비스인 것으로 생각될 수 있다.
도 5의 일례에 도시된 바와 같이, 응용 프로그램(520)의 2개의 서버측 구성요소(522, 523)는 데이터 센터(550)에 의해 호스팅되고 프로그래밍 모델 추상화 계층(555)에 등록된다. 게다가, 응용 프로그램(525)도 데이터 센터(550)에 의해 호스팅되고 프로그래밍 모델 추상화 계층(555)에 등록된다. 따라서, 프로그래밍 모델 추상화 계층(555)이 응용 프로그램(520)과 응용 프로그램(525) 간의 관계를 이미 알고 있을 수 있다.
또한, 데이터 센터(550)에서 이벤트를 추적하는 데 다양한 하드웨어 및/또는 소프트웨어에 의존할 수 있는 이벤트 추적(ET) 모듈(595)도 데이터 센터(550)에 포함되어 있다. 예를 들어, ET 모듈(595)은 주어진 요청에 대한 이벤트의 순서에 관한 정보를 수집하기 위해 리소스(552) 및/또는 가상화 계층(554)과 통신할 수 있다. 사용자가 사용자 장치(560)를 통해 응용 프로그램(520)의 클라이언트측 구성요소(521)로부터 요청을 발행하는 것을 생각해보자. 발행된 요청을 프로그래밍 모델 추상화 계층(555)에서 수신할 시에, 구성요소(522, 523)는 물론 응용 프로그램(525)의 실행을 가능하게 해주기 위해 리소스가 할당된다. 프로그래밍 모델 추상화 계층(555)은 응용 프로그램(525)에 대한 서비스 수준 계약을 알고 있고 [예를 들어, SLA(570)를 준수하도록 하기 위해] 리소스를 할당할 때 이것을 고려할 수 있다.
구성요소/응용 프로그램 대 시간의 이벤트 플롯으로 나타낸 바와 같이, 이벤트 추적 모듈(595)에 의해 수집된 데이터에 기초하여, 구성요소(522)가 먼저 할당된 가상 계층 리소스(554-2)를 사용하여 실행되고, 이어서 응용 프로그램(525)이 할당된 실제 리소스(552-1)를 사용하여 실행되며, 이어서 구성요소(523)가 할당된 가상 계층 리소스(554-3)를 사용하여 실행된다. 이들 실행 각각 사이에, (예를 들어, 한 구성요소/응용 프로그램으로부터 다른 구성요소/응용 프로그램으로) 정보를 전달하기 위한 통신 시간을 나타내거나 적어도 이를 포함하는 시간 간격이 존재한다.
응용 프로그램(525)에 의해 제공되는 서비스가 구성요소(522, 523)보다 빈번하게 요청될 수 있기 때문에, 프로그래밍 모델 추상화 계층(555)은 이 서비스를 구성요소(522, 523)와 다르게 처리할 수 있다. 예를 들어, 응용 프로그램(525)은, 필요에 따라 생성되고 소멸될 수 있는 가상 계층 리소스(554)와 달리, 그의 할당을 보다 영구적인 실제 리소스(552)로 바이어싱하는 특성을 갖는 것으로 생각될 수 있다. 응용 프로그램(525)이 위성 시스템 등 외부 입력에 의존하는 경우, 특정 실제 리소스(552)는 영구적으로 외부 입력에 연결될 수 있고 응용 프로그램(525)을 실행할 수 있는 일련의 리소스를 형성할 수 있다.
잘 알 수 있는 바와 같이, 응용 프로그램(또는 구성요소)이 상호종속적인 경우, 프로그래밍 모델 추상화 계층(555)은 이러한 상호종속성을 고려하고 하나 이상의 이벤트 추적 모듈(595)을 사용하여 이벤트 추적을 요청할 수 있다. 이벤트 추적 정보는 또한 서비스 수준 계약이 충족되는지 여부를 판정하는 데 사용될 수 있다. 예시적인 프로그래밍 모델에서, 클래스는 선택적으로 이벤트 추적을 요청하는 하나 이상의 클래스를 포함한다. 이러한 이벤트 추적은 프로그래밍 모델 추상화 계층에 독립적으로 행해질 수 있거나, 프로그래밍 모델 추상화 계층에 의해 관리될 수 있다. 이벤트 추적이 얼마간의 오버헤드를 유발시키지만, 수집된 정보가 시스템을 개선시키기 위한(예를 들어, 성능 개선, 문제 해결, 비용 절감, 서비스 수준 유효성 검사 등을 위한) 임의의 다양한 유익한 목적으로 사용될 수 있다.
도 6은 예시적인 응용 프로그램 코드(620) 및 대응하는 프로그래밍 모델 추상화 계층(PMAL)(655)을 나타낸 것이다. 코드(620)는 도 5의 장치(560)와 같은 모바일 컴퓨팅 장치에 대한 매핑 서비스 등의 서비스를 구현하는 데 사용될 수 있는 일부 코드의 대략적인 논리적 표현이다. 코드(620)는 일반적으로 데이터 센터에 있는 또는 데이터 센터를 통해 다른 방식으로 액세스가능한 리소스[예를 들어, 도 2의 리소스 클래스(217)를 참조]에 관련된 프로그래밍 모델 클래스에 의존하는 PMAL 부분을 포함한다. 도 6의 일례에서, 코드(620)는, 알려진 경우, 구성요소의 수를 나타내는 클래스 PMAL.Comps, 코드(620)가 의존하는 외부 응용 프로그램 또는 서비스의 수를 나타내는 클래스 PMAL.Ext, 코드(620)가, 적어도 부분적으로, 서비스 수준 계약에 따라 동작한다는 것을 나타내는 클래스 PMAL.SLA, 및 응용 프로그램 코드(620)가 광고를 포함할 수 있다는 것을 나타내는 클래스 PMAL.Advertising을 참조한다. 본 명세서에 기술된 바와 같이, 광고는 PMAL(655)을 사용하여 동작하는 데이터 센터에서의 코드(620)의 호스팅 및 실행과 연관된 비용을 상쇄하는 데 도움이 될 수 있다.
코드(620)는 2개의 구성요소(622, 623)를 포함한다. 구성요소(622)는 클라이언트측 구성요소(621)가 설치되어 있을 수 있는 사용자 장치를 통해 사용자로부터 수신되는 맵 요청을 파싱한다. 구성요소(622)는 외부 응용 프로그램(625)을 호출하는 것을 비롯한 다양한 작업을 수행한다. SLA(ID 34256)가 외부 응용 프로그램(625)의 사용에 관련되어 있기 때문에, 응용 프로그램 코드(620)의 개발자는 데이터 센터에 의한 이벤트 추적을 요청하는 PMAL.ET 명령문을 삽입하였다. SLA의 하나 이상의 조건이 충족되는지 여부를 판정하기 위해(즉, 제공되는 실제 서비스 수준이 서비스 수준 계약에 명시된 서비스 수준을 충족시키는지를 판정하기 위해) (데이터 센터에 의해 호스팅될 수 있는) 외부 응용 프로그램(625)의 성능에 관한 정보를 수집하는 데 이벤트 추적이 사용될 수 있다.
구성요소(623)는 사용자의 장치의 클라이언트측 구성요소(621)로 전송하기 위한 그래픽을 발생한다. 그에 부가하여, 이는 발생된 그래픽에 광고를 삽입한다. 본 명세서에 기술된 바와 같이, 코드(620)의 PMAL.Advertising 참조에 의해 PMAL(655)이 구성요소(623)를 광고 배치 서비스와 연관시키게 될 수 있다. 따라서, 사용자에 의한 요청에 응답하여 코드(620)를 실행하는 동안, PMAL(655)은 광고가 구성요소(623)에 의해 수신되도록 한다.
그래픽의 발생과 관련하여, 구성요소(623)는 특정량의 메모리 및 CPU 리소스를 필요로 한다. PMAL(655)이 리소스를 관리하여 응용 프로그램 구성요소(623)에 할당하는 것을 돕기 위해, 코드(620)는 메모리 및 CPU를 많이 사용하는 하나 이상의 명령문(예를 들어, "generate bitmap")과 연관된 PAML.Mem 클래스 및 PMAL.CPU 클래스를 참조한다.
응용 프로그램 코드를 분석하여 실행을 위해 요구되는 리소스의 양을 결정하는 종래의 기술이 존재하지만, 이러한 사후 기법(post hoc technique)은 구현하기 번거로울 수 있다. 그 대신에, 구성요소(623)에서 참조된 리소스 클래스는 응용 프로그램 코드(620)의 개발자에 의해 추정되는 대략적인 수준에서 리소스를 할당하라고 PMAL(655)에 단정적으로 지시할 수 있다. 본질적으로, 이것은 그 부담을 [응용 프로그램 코드(620)에 의해 제공되는] 서비스의 운영자에게 전가하며, 그로써 운영자는 "이 작업을 수행하기 위해, 대략 X 메모리 리소스 및 Y CPU 리소스를 원한다"라고 말한다. 또한, PMAL(655)은 (예를 들어, 사용자와 관련한) 서비스 운영자의 요구 및 데이터 센터의 운영 요구(예를 들어, 데이터 센터 효율을 최적화하는 것)를 관리하는 데 적절하다고 생각하는 어느 방식으로도 리소스를 할당할 수 있다.
코드(620) 및 그의 리소스 참조가 주어진 경우, PMAL(655)은 요청당 비용을 추정하고, 응용 프로그램 코드(620)의 실행을 통해 제공되는 서비스를 운영하는 서비스 운영자로, 이 추정을 전송할 수 있다. 이러한 방식은 데이터 센터 관리를 용이하게 해주고, 리소스 비용 및 리소스의 전용을 협상할 필요성을 완화시킬 수 있다. 이러한 방식은 서비스를 배포, 호스팅 및 사용하는 사업 모델을 제공하고, 심지어 광고를 통합시켜 광고 수입(예를 들어, 서비스 운영자에 대한 지불, 광고를 지원하는 서비스에 대한 호스팅 할인 등)을 고려할 수 있다.
도 7은 복잡한 쿼리(701)가 이러한 쿼리에 서비스를 제공하기 위해 응용 프로그램(720)을 호스팅하는 데이터 센터(750)에 의해 수신되는 예시적인 시나리오를 나타낸 것이다. 이 일례에서, 프로그래밍 모델 추상화 계층(755)은 쿼리를 수신하고, 응용 프로그램 리소스(752-1, 752-2, 752-3)를 할당함으로써 쿼리가 충족될 수 있는지를 판정한다. 예를 들어, 프로그래밍 모델 추상화 계층(755)은 응용 프로그램(720)이 복잡한 쿼리(701)를 신속하게 처리하기 위해 적어도 부분적으로 병렬로 동작할 수 있게 해줄 수 있다. 또한, 응용 프로그램(720)은 쿼리(701)의 일부분을 처리한 다음에 결과를 통합하여 쿼리 결과(703)를 발생하기 위해 분산 방식으로 동작한다. 응용 프로그램(720)의 개발자는, 응용 프로그램(720)의 적어도 일부 구성요소의 병렬 실행을 가능하게 해주는 방식으로 리소스를 할당하라고 프로그래밍 모델 추상화 계층(755)에 지시하는 하나 이상의 리소스 클래스를 참조함으로써, 이러한 병렬 처리를 가능하게 해줄 수 있다.
도 7의 일례에서, 개발자는 응용 프로그램(720)의 사용자로부터의 입력과 관련하여 특정 클래스를 참조할 수 있다. 예를 들어, X > 3(여기서 X는 조건임)인 경우, 응용 프로그램(720)의 구성요소의 다수의 사본을 실행하기 위해 리소스를 할당한다. 본 명세서에 기술된 바와 같이, 병렬 처리의 사용을 용이하게 해주는 다양한 기회가 존재한다. 데이터 센터 운영자가 통상적으로 가용 리소스의 전체 사용을 유지하고자 하고 그렇게 하는 것이 통상적으로 서비스 시간을 줄여주기 때문에, 이러한 방식은 서비스 운영자 및 데이터 센터 운영자 둘다에 유익할 수 있다. 예를 들어, 사용자 요청의 수신 시에, 예를 들어, 4개의 가용 블레이드를 사용할 기회의 창이 존재하는 경우, 데이터 센터는 이 기회를 충분히 활용해야만 한다.
본 명세서에 기술된 바와 같이, 예시적인 프로그래밍 모델 및 관련 프로그래밍 모델 추상화 계층은 사용자 경험과 데이터 센터의 성능 및 사용률 모두를 향상시키기 위해 동적으로 기능할 수 있다. 서비스가 전용 리소스를 가질 때[이는 통상적으로 오버-스펙(over specified)임] 종래의 방식은 제약이 있다. 차례로, 리소스가 종종 대기중(in-waiting)이다. 이러한 종래의 방식과 연관된 비용은 - 종종 해결을 혼란케 하는 방식으로 - 하나 이상의 당사자에게 부담시킨다. 본 명세서에 기술된 예시적인 방식은 데이터 센터 및 서비스 운영의 다양한 측면들을 통합시키며, 이는 또한 프로그래밍 모델 및/또는 프로그래밍 모델 추상화 계층을 조정함으로써 상승효과적 해결책을 용이하게 해준다. 전술한 바와 같이, 이러한 방식은 사용자 및 서비스 운영자를 일상적인 데이터 센터 인프라 유지 관리 및 업그레이드로부터 분리시키는 데 도움이 될 수 있다.
데이터 센터가 이벤트 추적 기술을 포함하는 경우, 이벤트 추적을 통해 수집된 정보는 리소스 확보 및 처분(예를 들어, 프로비전 작업)을 용이하게 해줄 수 있다. 게다가, 이벤트 추적은 보다 정확한 비용 평가, 벤치마킹, 및 서비스 수준 계약이 충족되는지 여부의 결정을 가능하게 해줄 수 있다.
다양한 일례가 하나의 데이터 센터와 관련하여 설명되어 있지만, 서비스 운영자는 응용 프로그램을 다수의 데이터 센터에 배포할 수 있다. 본 명세서에 기술된 바와 같이, 본질적으로 동일한 프로그래밍 모델에 의존하지만 데이터 센터 간의 실제 차이점을 고려하기 위해 프로그래밍 모델 추상화 계층에 적절한 변형을 하는 것이 서비스 운영자 및 다수의 운영자 또는 운영자들에 유익하다. 이러한 방식으로, 개발자는 데이터 센터 간의 차이점에 대해 부담을 갖지 않는다.
몇몇 상호관련된 응용 프로그램 또는 구성요소를 통해 서비스를 확장하고자 하는 서비스 운영자의 경우, 예시적인 프로그래밍 모델 추상화 계층은 확장을 용이하게 해줄 수 있는데, 그 이유는 전체적인 방식이 본질적으로, 운영자가 서비스를 변경한 것에 의한 것이든 사용자의 서비스 수요의 증가에 의한 것이든 간에, 리소스의 증가를 위해 협상을 필요로 하는 종래의 방식보다 더 확장성이 있기 때문이다.
도 8은 다양한 예시적인 구성요소를 구현하고 예시적인 시스템을 형성하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(800)를 나타낸 것이다. 예를 들어, 도 1의 데이터 센터(150 또는 250)의 컴퓨팅 장치는 장치(800)의 다양한 특징들을 포함할 수 있다.
아주 기본적인 구성에서, 컴퓨팅 장치(800)는 통상적으로 적어도 하나의 처리 장치(802) 및 시스템 메모리(804)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 시스템 메모리(804)는 휘발성(RAM 등), 비휘발성(ROM, 플래시 메모리, 기타 등등), 또는 이 둘의 어떤 조합일 수 있다. 시스템 메모리(804)는 통상적으로 운영 체제(805), 하나 이상의 프로그램 모듈(806)을 포함하고, 프로그램 데이터(807)를 포함할 수 있다. 운영 체제(805)는, 구성요소(속성 및 이벤트를 포함함), 개체, 상속, 다형성, 리플렉션을 지원하고 개체-지향 구성요소-기반 API(application programming interface)(미국 워싱턴주 레드몬드 소재의 Microsoft Corporation에 의해 제작된 .NET™ 프레임워크의 API 등)를 제공하는 구성요소-기반 프레임워크(820)를 포함한다. 장치(800)는 점선(808)으로 구분되어 있는 아주 기본적인 구성을 가진다. 다시 말하지만, 터미널이 더 적은 수의 구성요소를 가질 수 있지만, 이러한 기본적인 구성을 가질 수 있는 컴퓨팅 장치와 상호작용할 것이다.
컴퓨팅 장치(800)는 또한 부가의 특징 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(800)는 또한, 예를 들어, 자기 디스크, 광 디스크 또는 테이프와 같은 부가의 데이터 저장 장치(이동식 및/또는 비이동식)를 포함할 수 있다. 이러한 부가의 저장 장치가 도 8에서 이동식 저장 장치(809) 및 비이동식 저장 장치(810)로 도시되어 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함할 수 있다. 시스템 메모리(804), 이동식 저장 장치(809), 및 비이동식 저장 장치(810)가 모두 컴퓨터 저장 매체의 일례이다. 컴퓨터 저장 매체로는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨팅 장치(800)에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이들로 제한되지 않는다. 임의의 이러한 컴퓨터 저장 매체가 장치(800)의 일부일 수 있다. 컴퓨팅 장치(800)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 기타 등등의 입력 장치(들)(812)를 가질 수 있다. 디스플레이, 스피커, 프린터, 기타 등등의 출력 장치(들)(814)도 역시 포함되어 있을 수 있다. 이들 장치는 공지되어 있으며, 여기에서 상세히 기술할 필요가 없다.
컴퓨팅 장치(800)는 또한 장치가 네트워크 등을 통해 다른 컴퓨팅 장치들(818)과 통신할 수 있게 해주는 통신 연결(816)을 포함할 수 있다. 통신 연결(816)은 통신 매체의 일례이다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 등에 의해 구현될 수 있다. 통신이 유선(예를 들어, 유선 네트워크, 직접-배선 연결 등)을 통해 또는 무선으로(예를 들어, 음향, RF, 적외선 및 기타 무선 전송) 행해질 수 있다.
발명 대상이 구조적 특징 및/또는 방법적 동작과 관련하여 기술되어 있지만, 첨부된 특허청구범위에 정의된 발명 대상이 이상에서 기술한 특정의 특징 또는 동작으로 반드시 제한되는 것은 아니라는 것을 잘 알 것이다. 오히려, 이상에서 기술한 특정의 특징 및 동작은 청구항을 구현하는 예시적인 형태로서 개시되어 있다.

Claims (21)

  1. 데이터 센터에서 서비스를 호스팅하는 단계- 상기 서비스는 프로그래밍 모델에 따라 개발된 상기 서비스의 적어도 하나의 소프트웨어 구성요소에 의존하고, 상기 데이터 센터는 상기 적어도 하나의 소프트웨어 구성요소에서의 상기 프로그래밍 모델의 리소스 클래스에 대한 참조에 적어도 부분적으로 기초하여 상기 서비스에 리소스가 할당될 수 있도록 상기 데이터 센터의 리소스를 추상화하는 대응하는 프로그래밍 모델 추상화 계층을 포함하고, 상기 리소스 클래스에 대한 참조는 리소스의 추상적인 양을 나타냄 -
    상기 서비스에 대한 요청을 수신하는 단계, 및
    상기 요청에 응답하여, 상기 요청을 수행할 수 있도록 상기 데이터 센터의 리소스의 적어도 일부를 상기 서비스에 할당하는 단계- 상기 프로그래밍 모델 추상화 계층은 상기 서비스의 상기 적어도 하나의 소프트웨어 구성요소에서의 상기 리소스 클래스에 대한 추상적 참조에 부분적으로 기초하여 상기 할당하는 단계를 수행하고, 상기 리소스 클래스는 상기 데이터 센터의 하나 이상의 리소스의 변화를 고려하기 위해 수정될 수 있음 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 데이터 센터의 리소스는 하드웨어 리소스를 포함하는 방법.
  3. 제1항에 있어서,
    상기 데이터 센터의 리소스는 하드웨어 리소스에 의존하는 가상 리소스를 포함하는 방법.
  4. 제1항에 있어서,
    상기 리소스 클래스는 프로세서 리소스 클래스를 포함하는 방법.
  5. 제1항에 있어서,
    상기 리소스 클래스는 메모리 리소스 클래스를 포함하는 방법.
  6. 제1항에 있어서,
    상기 리소스 클래스는 대역폭 리소스 클래스를 포함하는 방법.
  7. 제1항에 있어서,
    상기 할당하는 단계는, 상기 요청을 수신할 때의 상기 데이터 센터에 있는 가용 리소스를 고려하는 방법.
  8. 제1항에 있어서,
    상기 요청은 제1 시각에 수신된 제1 요청을 포함하고,
    상기 방법은 제2 시각에 수신된 제2 요청에 대해 상기 수신하는 단계를 반복하는 단계를 더 포함하고,
    상기 할당하는 단계는 적어도 일부 리소스를 상기 제1 요청에 할당하고 적어도 일부 리소스를 상기 제2 요청에 할당하는 방법.
  9. 제8항에 있어서,
    상기 제1 요청에 응답하여 할당된 적어도 일부 리소스는 상기 제2 요청에 응답하여 할당된 리소스와 다른 방법.
  10. 제9항에 있어서,
    상기 제1 요청에 응답하여 할당된 적어도 일부 리소스와 상기 제2 요청에 응답하여 할당된 리소스 사이의 차이는 상기 제1 시각에서와 상기 제2 시각에서의 상기 데이터 센터에서의 리소스 사용에 의존하는 방법.
  11. 제10항에 있어서,
    상기 제1 요청에 응답하여 할당된 적어도 일부 리소스와 상기 제2 요청에 응답하여 할당된 리소스 사이의 차이는 실제 리소스의 차이, 가상 리소스의 차이, 또는 실제 리소스와 가상 리소스의 차이를 포함하는 방법.
  12. 제1항에 있어서,
    상기 데이터 센터의 하드웨어 리소스의 변화에 기초하여 상기 리소스 클래스를 수정하는 단계를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 적어도 하나의 소프트웨어 구성요소는 자신의 코드에 어떠한 수정도 요구하지 않고 상기 변화된 하드웨어 리소스를 부분적으로 사용하여 실행되는 방법.
  14. 제1항에 있어서,
    상기 프로그래밍 모델 및 상기 프로그래밍 모델 추상화 계층은 상기 적어도 하나의 소프트웨어 구성요소를 상기 데이터 센터 내의 서버의 개수의 변화로부터 격리시키는 방법.
  15. 제1항에 있어서,
    상기 프로그래밍 모델 및 상기 프로그래밍 모델 추상화 계층은 상기 적어도 하나의 소프트웨어 구성요소를 상기 데이터 센터 내의 프로세서의 유형의 변화로부터 격리시키는 방법.
  16. 제1항에 있어서,
    상기 서비스는 상기 데이터 센터에 의해 호스팅되는 다른 서비스에 의존하는 방법.
  17. 제16항에 있어서,
    상기 데이터 센터에 의해 호스팅되는 상기 다른 서비스에 대해 서비스 수준 계약(service level agreement)이 존재하는 방법.
  18. 제17항에 있어서,
    상기 다른 서비스가 상기 서비스 수준 계약의 하나 이상의 조건을 준수하는지를 판정하기에 충분한 정보를 수집하기 위해, 상기 다른 서비스의 실행 동안에 이벤트 추적을 수행하는 단계를 더 포함하는 방법.
  19. 제1항에 있어서,
    상기 적어도 하나의 소프트웨어 구성요소 내의 하나 이상의 명령문에 따라 이벤트 추적을 수행하는 단계를 더 포함하는 방법.
  20. 하나 이상의 프로세서에 의해 실행되는 경우 상기 하나 이상의 프로세스로 하여금 서비스의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 저장 장치로서,
    상기 서비스는
    데이터 센터에 의해 구현되는 프로그래밍 모델 및 대응하는 프로그래밍 모델 추상화 계층, 및
    상기 프로그래밍 모델에 따라 개발되고 상기 데이터 센터에 의해 호스팅되는 서비스
    를 포함하고,
    상기 프로그래밍 모델 추상화 계층은 상기 서비스에 대한 요청에 응답하여, 그리고 상기 서비스의 적어도 하나의 소프트웨어 구성요소에서의 리소스 클래스에 대한 참조에 부분적으로 기초하여, 상기 데이터 센터의 적어도 일부 리소스를 상기 서비스에 할당하고, 상기 프로그래밍 모델의 리소스 클래스는 상기 데이터 센터의 리소스를 추상화하고 상기 데이터 센터의 하나 이상의 리소스의 변화를 고려하기 위해 수정될 수 있으며, 상기 리소스 클래스에 대한 참조는 리소스의 추상적인 양을 나타내는
    컴퓨터 판독가능 저장 장치.
  21. 서비스에 대한 요청에 응답하여 데이터 센터에 의해 호스팅되는 상기 서비스에 물리적 리소스의 유형을 할당하는데 사용하기 위한 프로그래밍 모델의 리소스 클래스를 제공하는 단계- 상기 프로그래밍 모델의 상기 리소스 클래스는 상기 데이터 센터의 리소스를 추상화함 -;
    상기 서비스의 소프트웨어 구성요소를 실행하는 단계- 상기 소프트웨어 구성요소는 상기 리소스 클래스에 대한 참조를 포함하고, 상기 실행하는 단계는 상기 물리적 리소스의 유형을 사용하고, 상기 리소스 클래스에 대한 참조는 리소스의 추상적인 양을 나타냄 -;
    상기 물리적 리소스의 유형의 특징을 변경시키는 단계;
    상기 리소스 클래스를 수정하는 단계; 및
    상기 변경된 물리적 리소스의 유형을 사용하여 상기 소프트웨어 구성요소를 실행하는 단계
    를 포함하되,
    상기 리소스 클래스를 수정하는 단계는 상기 소프트웨어 구성요소를 상기 변경으로부터 격리시키는
    방법.
KR1020117004277A 2008-08-26 2009-07-28 데이터 센터 프로그래밍 모델 KR101626174B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/198,784 US8443370B2 (en) 2008-08-26 2008-08-26 Method of assigning resources to fulfill a service request by a programming model abstraction layer at a data center based at least in part on a reference of the requested resource class indicative of an abstract amount of resources
US12/198,784 2008-08-26

Publications (2)

Publication Number Publication Date
KR20110057138A KR20110057138A (ko) 2011-05-31
KR101626174B1 true KR101626174B1 (ko) 2016-05-31

Family

ID=41727239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117004277A KR101626174B1 (ko) 2008-08-26 2009-07-28 데이터 센터 프로그래밍 모델

Country Status (5)

Country Link
US (1) US8443370B2 (ko)
EP (1) EP2318942B1 (ko)
KR (1) KR101626174B1 (ko)
CN (1) CN102132268A (ko)
WO (1) WO2010027582A2 (ko)

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458658B2 (en) 2008-02-29 2013-06-04 Red Hat, Inc. Methods and systems for dynamically building a software appliance
US8089168B2 (en) * 2008-04-15 2012-01-03 Claude Chevrette Tire actuated generator for use on cars
US8935692B2 (en) 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
US7886038B2 (en) 2008-05-27 2011-02-08 Red Hat, Inc. Methods and systems for user identity management in cloud-based networks
US20090300423A1 (en) * 2008-05-28 2009-12-03 James Michael Ferris Systems and methods for software test management in cloud-based network
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US8239509B2 (en) * 2008-05-28 2012-08-07 Red Hat, Inc. Systems and methods for management of virtual appliances in cloud-based network
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8943497B2 (en) * 2008-05-29 2015-01-27 Red Hat, Inc. Managing subscriptions for cloud-based virtual machines
US8341625B2 (en) * 2008-05-29 2012-12-25 Red Hat, Inc. Systems and methods for identification and management of cloud-based virtual machines
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US8108912B2 (en) * 2008-05-29 2012-01-31 Red Hat, Inc. Systems and methods for management of secure data in cloud-based network
US10372490B2 (en) * 2008-05-30 2019-08-06 Red Hat, Inc. Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available
US9842004B2 (en) 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
US9910708B2 (en) * 2008-08-28 2018-03-06 Red Hat, Inc. Promotion of calculations to cloud-based computation resources
US8782233B2 (en) * 2008-11-26 2014-07-15 Red Hat, Inc. Embedding a cloud-based resource request in a specification language wrapper
US9037692B2 (en) 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US9870541B2 (en) * 2008-11-26 2018-01-16 Red Hat, Inc. Service level backup using re-cloud network
US9210173B2 (en) * 2008-11-26 2015-12-08 Red Hat, Inc. Securing appliances for use in a cloud computing environment
US8984505B2 (en) * 2008-11-26 2015-03-17 Red Hat, Inc. Providing access control to user-controlled resources in a cloud computing environment
US10025627B2 (en) 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US9930138B2 (en) 2009-02-23 2018-03-27 Red Hat, Inc. Communicating with third party resources in cloud computing environment
US9485117B2 (en) 2009-02-23 2016-11-01 Red Hat, Inc. Providing user-controlled resources for cloud computing environments
US8977750B2 (en) * 2009-02-24 2015-03-10 Red Hat, Inc. Extending security platforms to cloud-based networks
US8468246B2 (en) * 2009-04-13 2013-06-18 Raytheon Company System and method for allocating resources in a distributed computing system
US9311162B2 (en) 2009-05-27 2016-04-12 Red Hat, Inc. Flexible cloud management
US9450783B2 (en) * 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
US9104407B2 (en) * 2009-05-28 2015-08-11 Red Hat, Inc. Flexible cloud management with power management support
US20100306767A1 (en) * 2009-05-29 2010-12-02 Dehaan Michael Paul Methods and systems for automated scaling of cloud computing systems
US9201485B2 (en) * 2009-05-29 2015-12-01 Red Hat, Inc. Power management in managed network having hardware based and virtual resources
US9703609B2 (en) 2009-05-29 2017-07-11 Red Hat, Inc. Matching resources associated with a virtual machine to offered resources
US8832459B2 (en) 2009-08-28 2014-09-09 Red Hat, Inc. Securely terminating processes in a cloud computing environment
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8504443B2 (en) * 2009-08-31 2013-08-06 Red Hat, Inc. Methods and systems for pricing software infrastructure for a cloud computing environment
US8271653B2 (en) * 2009-08-31 2012-09-18 Red Hat, Inc. Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US8769083B2 (en) 2009-08-31 2014-07-01 Red Hat, Inc. Metering software infrastructure in a cloud computing environment
US8862720B2 (en) * 2009-08-31 2014-10-14 Red Hat, Inc. Flexible cloud management including external clouds
US8375223B2 (en) 2009-10-30 2013-02-12 Red Hat, Inc. Systems and methods for secure distributed storage
US10402544B2 (en) * 2009-11-30 2019-09-03 Red Hat, Inc. Generating a software license knowledge base for verifying software license compliance in cloud computing environments
US9389980B2 (en) * 2009-11-30 2016-07-12 Red Hat, Inc. Detecting events in cloud computing environments and performing actions upon occurrence of the events
US9971880B2 (en) 2009-11-30 2018-05-15 Red Hat, Inc. Verifying software license compliance in cloud computing environments
US9529689B2 (en) 2009-11-30 2016-12-27 Red Hat, Inc. Monitoring cloud computing environments
US10268522B2 (en) * 2009-11-30 2019-04-23 Red Hat, Inc. Service aggregation using graduated service levels in a cloud network
US11922196B2 (en) 2010-02-26 2024-03-05 Red Hat, Inc. Cloud-based utilization of software entitlements
US20110214124A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for generating cross-cloud computing appliances
US8606667B2 (en) * 2010-02-26 2013-12-10 Red Hat, Inc. Systems and methods for managing a software subscription in a cloud network
US20110213687A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for or a usage manager for cross-cloud appliances
US9053472B2 (en) 2010-02-26 2015-06-09 Red Hat, Inc. Offering additional license terms during conversion of standard software licenses for use in cloud computing environments
US8402139B2 (en) * 2010-02-26 2013-03-19 Red Hat, Inc. Methods and systems for matching resource requests with cloud computing environments
US8255529B2 (en) * 2010-02-26 2012-08-28 Red Hat, Inc. Methods and systems for providing deployment architectures in cloud computing environments
US10783504B2 (en) * 2010-02-26 2020-09-22 Red Hat, Inc. Converting standard software licenses for use in cloud computing environments
US9436459B2 (en) 2010-05-28 2016-09-06 Red Hat, Inc. Generating cross-mapping of vendor software in a cloud computing environment
US9354939B2 (en) 2010-05-28 2016-05-31 Red Hat, Inc. Generating customized build options for cloud deployment matching usage profile against cloud infrastructure options
US8909783B2 (en) 2010-05-28 2014-12-09 Red Hat, Inc. Managing multi-level service level agreements in cloud-based network
US8606897B2 (en) 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US8954564B2 (en) 2010-05-28 2015-02-10 Red Hat, Inc. Cross-cloud vendor mapping service in cloud marketplace
US8504689B2 (en) 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US9202225B2 (en) 2010-05-28 2015-12-01 Red Hat, Inc. Aggregate monitoring of utilization data for vendor products in cloud networks
US8364819B2 (en) 2010-05-28 2013-01-29 Red Hat, Inc. Systems and methods for cross-vendor mapping service in cloud networks
US8869161B2 (en) * 2010-11-18 2014-10-21 Fujitsu Limited Characterization and assignment of workload requirements to resources based on predefined categories of resource utilization and resource availability
US8909784B2 (en) 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
US8612615B2 (en) 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for identifying usage histories for producing optimized cloud utilization
US8612577B2 (en) 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for migrating software modules into one or more clouds
US8904005B2 (en) 2010-11-23 2014-12-02 Red Hat, Inc. Indentifying service dependencies in a cloud deployment
US9736252B2 (en) 2010-11-23 2017-08-15 Red Hat, Inc. Migrating subscribed services in a cloud deployment
US8825791B2 (en) 2010-11-24 2014-09-02 Red Hat, Inc. Managing subscribed resource in cloud network using variable or instantaneous consumption tracking periods
US8713147B2 (en) 2010-11-24 2014-04-29 Red Hat, Inc. Matching a usage history to a new cloud
US8949426B2 (en) 2010-11-24 2015-02-03 Red Hat, Inc. Aggregation of marginal subscription offsets in set of multiple host clouds
US10192246B2 (en) 2010-11-24 2019-01-29 Red Hat, Inc. Generating multi-cloud incremental billing capture and administration
US8924539B2 (en) 2010-11-24 2014-12-30 Red Hat, Inc. Combinatorial optimization of multiple resources across a set of cloud-based networks
US9442771B2 (en) 2010-11-24 2016-09-13 Red Hat, Inc. Generating configurable subscription parameters
US9606831B2 (en) 2010-11-30 2017-03-28 Red Hat, Inc. Migrating virtual machine operations
US9563479B2 (en) 2010-11-30 2017-02-07 Red Hat, Inc. Brokering optimized resource supply costs in host cloud-based network using predictive workloads
US8832219B2 (en) 2011-03-01 2014-09-09 Red Hat, Inc. Generating optimized resource consumption periods for multiple users on combined basis
US8959221B2 (en) 2011-03-01 2015-02-17 Red Hat, Inc. Metering cloud resource consumption using multiple hierarchical subscription periods
US8566838B2 (en) * 2011-03-11 2013-10-22 Novell, Inc. Techniques for workload coordination
US8667019B2 (en) * 2011-04-01 2014-03-04 Microsoft Corporation Placement goal-based database instance consolidation
US8667020B2 (en) * 2011-04-01 2014-03-04 Microsoft Corporation Placement goal-based database instance dynamic consolidation
US8631099B2 (en) 2011-05-27 2014-01-14 Red Hat, Inc. Systems and methods for cloud deployment engine for selective workload migration or federation based on workload conditions
US10102018B2 (en) 2011-05-27 2018-10-16 Red Hat, Inc. Introspective application reporting to facilitate virtual machine movement between cloud hosts
US8984104B2 (en) 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US10360122B2 (en) 2011-05-31 2019-07-23 Red Hat, Inc. Tracking cloud installation information using cloud-aware kernel of operating system
US8782192B2 (en) 2011-05-31 2014-07-15 Red Hat, Inc. Detecting resource consumption events over sliding intervals in cloud-based network
US9037723B2 (en) 2011-05-31 2015-05-19 Red Hat, Inc. Triggering workload movement based on policy stack having multiple selectable inputs
US10057370B2 (en) * 2012-09-06 2018-08-21 Unisys Corporation Team processing using dynamic licenses
US8972491B2 (en) * 2012-10-05 2015-03-03 Microsoft Technology Licensing, Llc Consistency-based service-level agreements in cloud storage environments
JP6314087B2 (ja) 2012-10-30 2018-04-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 端末装置、基地局装置、受信方法及び送信方法
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10313345B2 (en) * 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9306978B2 (en) * 2013-03-15 2016-04-05 Bracket Computing, Inc. Automatic tuning of virtual data center resource utilization policies
KR20150131359A (ko) 2013-03-15 2015-11-24 브래킷 컴퓨팅, 인크. 데이터의 융통성있는 배치를 위한 다층형 저장 관리
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
GB2519547A (en) * 2013-10-24 2015-04-29 Eaton Ind France Sas Method of controlling a data centre architecture equipment
US9843534B2 (en) * 2014-12-18 2017-12-12 Here Global B.V. Method and apparatus for managing provisioning and utilization of resources
US10410219B1 (en) 2015-09-30 2019-09-10 EMC IP Holding Company LLC Providing automatic self-support responses
US11080632B2 (en) * 2016-11-29 2021-08-03 International Business Machines Corporation Optimization of steady state cost for multi-site high availability application deployment of management and managed intrastructure
US20190332230A1 (en) 2016-12-15 2019-10-31 Nutanix, Inc. User interface view generation
CN109857910B (zh) * 2019-01-07 2024-03-26 平安科技(深圳)有限公司 Xml文件的生成方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149685A1 (en) * 2002-02-07 2003-08-07 Thinkdynamics Inc. Method and system for managing resources in a data center
US20060143617A1 (en) * 2004-12-29 2006-06-29 Knauerhase Robert C Method, apparatus and system for dynamic allocation of virtual platform resources

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366945B1 (en) * 1997-05-23 2002-04-02 Ibm Corporation Flexible dynamic partitioning of resources in a cluster computing environment
EP1245068A4 (en) 1998-12-07 2006-08-09 Elster Electricity Llc LAYER ARCHITECTURE AS AN INTERFACE BETWEEN APPLIANCES AND APPLICATIONS
DE60122691T2 (de) 2000-03-30 2007-10-04 Intel Corporation, Santa Clara Verfahren und vorrichtung zum verteilten cachen
JP4292693B2 (ja) 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7181519B2 (en) 2000-12-11 2007-02-20 Silverback Technologies, Inc. Distributed network monitoring and control system
US6785756B2 (en) 2001-05-10 2004-08-31 Oracle International Corporation Methods and systems for multi-policy resource scheduling
US7134122B1 (en) * 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
US7243137B2 (en) 2001-09-28 2007-07-10 Sun Microsystems, Inc. Remote system controller and data center and methods for implementing the same
CN1172496C (zh) 2002-09-29 2004-10-20 奥迪坚通讯系统(上海)有限公司 基于因特网协议的分布式呼叫中心
US7743127B2 (en) 2002-10-10 2010-06-22 Hewlett-Packard Development Company, L.P. Resource allocation in data centers using models
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
AU2004280976A1 (en) 2003-10-08 2005-04-21 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
JP3896111B2 (ja) 2003-12-15 2007-03-22 株式会社日立製作所 リソース割り当てシステム、方法及びプログラム
US20060069774A1 (en) 2004-06-17 2006-03-30 International Business Machine Corporation Method and apparatus for managing data center using Web services
US20060209695A1 (en) * 2005-03-15 2006-09-21 Archer Shafford R Jr Load balancing in a distributed telecommunications platform
CN101015171A (zh) 2004-06-30 2007-08-08 建利尔电子公司 分布式电信平台中的负载平衡
JP4722944B2 (ja) 2005-01-07 2011-07-13 トムソン ルーターズ グローバル リソーシーズ データベースの分散ロードのためのシステム、方法およびソフトウェア
US20060184937A1 (en) 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060203722A1 (en) 2005-03-14 2006-09-14 Nokia Corporation System and method for managing performance of mobile terminals via remote diagnostics
CN1967523B (zh) 2005-11-15 2010-07-28 日电(中国)有限公司 路况信息查询系统及路况信息查询方法
US7600005B2 (en) * 2005-11-23 2009-10-06 Sun Microsystems, Inc. Method and apparatus for provisioning heterogeneous operating systems onto heterogeneous hardware systems
US7861244B2 (en) 2005-12-15 2010-12-28 International Business Machines Corporation Remote performance monitor in a virtual data center complex

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149685A1 (en) * 2002-02-07 2003-08-07 Thinkdynamics Inc. Method and system for managing resources in a data center
US20060143617A1 (en) * 2004-12-29 2006-06-29 Knauerhase Robert C Method, apparatus and system for dynamic allocation of virtual platform resources

Also Published As

Publication number Publication date
EP2318942B1 (en) 2017-11-29
WO2010027582A3 (en) 2010-05-14
EP2318942A2 (en) 2011-05-11
US8443370B2 (en) 2013-05-14
WO2010027582A2 (en) 2010-03-11
KR20110057138A (ko) 2011-05-31
EP2318942A4 (en) 2012-08-08
US20100058347A1 (en) 2010-03-04
CN102132268A (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
KR101626174B1 (ko) 데이터 센터 프로그래밍 모델
US11237810B2 (en) Cloud-based deployment using templates
US20220247633A1 (en) Methods, systems and apparatus to improve cluster efficiency
US20220043693A1 (en) Methods, systems and apparatus for client extensibility during provisioning of a composite blueprint
Albert et al. Formal modeling and analysis of resource management for cloud architectures: an industrial case study using real-time ABS
JP6329547B2 (ja) クラウドコンピューティング環境で使用するサービス管理エンジンを提供するためのシステムおよび方法
US8271653B2 (en) Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US9450783B2 (en) Abstracting cloud management
US8863138B2 (en) Application service performance in cloud computing
US7730183B2 (en) System and method for generating virtual networks
US20150186129A1 (en) Method and system for deploying a program module
KR101578189B1 (ko) 클라우드 컴퓨팅 서비스를 제공하는 관리 서버 및 방법
US20100306767A1 (en) Methods and systems for automated scaling of cloud computing systems
US7996820B2 (en) Determining proportionate use of system resources by applications executing in a shared hosting environment
US8429187B2 (en) Method and system for dynamically tagging metrics data
US20060075407A1 (en) Distributed system interface
US20130007244A1 (en) Optimizing provisioning workflows in cloud computing
US20090307094A1 (en) Data center programming and application distribution interface
JP2010521726A (ja) カスタマイズされたソフトウェア製品を配布する方法、システム、およびコンピュータ・プログラム
EP2630576B1 (en) Goal state communication in computer clusters
US20080282242A1 (en) Simulation management within a grid infrastructure
JP2023038909A (ja) コンピュータ実装方法、コンピュータプログラム製品およびシステム(帰属グラフ埋め込みによるモノリスアプリケーションの制約ベースのリファクタリング)
Sáez et al. Cloud adaptation and application (re-) distribution: bridging the two perspectives
KR20160122959A (ko) 클라우드 관리 시스템 및 방법
Shtern et al. Performance Management and Monitoring

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20190429

Year of fee payment: 4