KR20120085772A - 하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법 - Google Patents

하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20120085772A
KR20120085772A KR1020127009878A KR20127009878A KR20120085772A KR 20120085772 A KR20120085772 A KR 20120085772A KR 1020127009878 A KR1020127009878 A KR 1020127009878A KR 20127009878 A KR20127009878 A KR 20127009878A KR 20120085772 A KR20120085772 A KR 20120085772A
Authority
KR
South Korea
Prior art keywords
usage
image
hypervisors
licensing
instances
Prior art date
Application number
KR1020127009878A
Other languages
English (en)
Other versions
KR101697269B1 (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 KR20120085772A publication Critical patent/KR20120085772A/ko
Application granted granted Critical
Publication of KR101697269B1 publication Critical patent/KR101697269B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Abstract

하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법. 한 실시예에 따르면, 상기 시스템은 하나 이상의 컴퓨터들을 포함하며, 각 컴퓨터는 그 컴퓨터 상에서 동작하며 하이퍼바이저 환경을 형성하는 하이퍼바이저를 구비하고, 이와 함께 그 하이퍼바이저 환경 내에서 실행되는 하나 이상의 가상 머신 이미지들을 구비한다. 각 하이퍼바이저는 물리적 자원들에 대한 각 이미지 인스턴스에 의한 사용 통계를 종합하고, 상기 통계를 관리 프레임워크로 보고한다. 관리 프레임워크는 상기 통계를 사용하여 상기 시스템이 사용 유닛들로 적절히 라이센싱되는 것을 보장한다. 사용 유닛들의 초기 할당은 이미지에 기록되고 하이퍼바이저에 의해 실행 동안 액세스된다. 사용 유닛들이 만료에 가까워지면, 하이퍼바이저는 특정한 이미지가 라이센싱되지 않은 상태가 될 것이라는 신호를 보낼 수 있다. 관리 프레임워크는 더 많은 사용 유닛들을 할당하거나, 상기 이미지를 셧다운시키거나, 또는 추후 보상을 위해 라이센싱되지 않은 사용을 감사할 수 있다.

Description

하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법{SYSTEM AND METHOD FOR USAGE-BASED APPLICATION LICENSING IN A HYPERVISOR VIRTUAL EXECUTION ENVIRONMENT}
본 발명은 개괄적으로 애플리케이션 서버 및 가상 머신에 관한 것이며, 상세하게는 하이퍼바이저 또는 다른 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 제공하는 시스템 및 방법에 관한 것이다.
서버 가상화(server virtualization)는 예를 들어 시스템 프로세서(CPU), 메모리, 입력/출력(I/O), 및 네트워킹과 같은 시스템의 물리적 자원들을 다수의 애플리케이션들 간에 애플리케이션들을 변경함이 없이 고도의 애플리케이션 간의 격리(inter-application isolation), 자원 모니터링(resouce monitoring), 및 제어를 이용하여 공유함으로써 컴퓨터 시스템이 그들 자원들을 이용하는 것을 동적으로 최적화할 수 있게 한다. 이러한 컴퓨터 시스템들의 무리가 함께 작업하는 것은 종종 가상 실행 환경(virtual execution environment) 또는 클라우드(cloud)로 지칭된다.
가상 실행 환경의 각 컴퓨터 시스템 내에서, 자원의 공유, 제어, 및 격리는 시스템의 운영체제(O/S)와 운영체제 아래의 물리적 자원들 사이에 하이퍼바이저 계층(hypervisor layer)을 제공함으로써 가능하게 될 수 있다. 하이퍼바이저는 하나 이상의 게스트 O/S 이미지들(guest O/S images) 간에 서버 컴퓨터의 물리적 자원들을 다중화(multiplex)하며, 이는 각 이미지가 그 자원들을 직접적이고 유일하게 액세스한다는 착각을 일으키며 각 이미지들 사이에 격리를 제공할 수 있다.
일반적으로, 하이퍼바이저는 초기에 구성되거나 아니면 명시적으로 구성될 수 있으며, 및/또는 각 이미지의 개별 요구조건들과 각 이미지의 현재 사용을 기반으로 물리적 자원들의 몫을 동적으로 할당하도록 지속적으로 제어될 수 있다. 하이퍼바이저는 게스트 O/S 이미지들에게 하드웨어 추상화 계층(hardware abstraction layer, HAL)으로서 보이기 때문에, 동작 동안 제어가 O/S 이미지에서 하이퍼바이저로 빈번히 이전된다(예를 들어 디바이스 인터럽트(device interrupt), 선점형 스케줄링(preemptive scheduling), 페이지 폴트(page fault), 컨텍스트 스위칭(context switch), I/O, 또는 네트워킹 요청들로 인해). 제어 이전이 빈번히 발생할 때, 하이퍼바이저는 서로 다른 이미지들 간에 다중화하거나 스위칭하며, 스위칭시에 결정된 것과 같이 각 이미지에 요구되는 물리적 자원들의 몫을 스케줄링하거나 할당할 수 있다.
가상 실행 환경의 판매자 및/또는 미들웨어 제공자(미들웨어 제공자는 미들웨어가 가상화된 환경에서 실행될 수 있게 함)가 직면하는 한 가지 난점은 고객들이나 최종 사용자 라이센시(end-user licensee)들에게 가상화된 시스템 및 미들웨어 자원들의 사용에 대해 과금하기 위해서 어떤 라이센싱 모델이 최선인가를 결정하는 것이다. 서버 가상화가 널리 수용되기 전에는, 판매자는 CPU마다 라이센스 요금을 과금하였을 수 있으며, 최종 사용자는 라이센싱된 애플리케이션 이미지에 의한 물리적 자원들의 실제 사용에 관계없이 단일 물리적 프로세서 상에서 그 이미지를 사용할 수 있었다. 다중 프로세서 시스템(Multi Processors System, SMP)은 시스템의 각 CPU마다 라이센스를 요구할 수 있다. 그 후에, 다중-코어 시스템(muti-core system)(칩 다중 프로세싱(Chip Multi Processing))들이 등장하며, 코어당 라이센싱 모델이 부상하였으며, 이 모델에서는 다시 요금이 사용과 독립적으로 코어마다 과금된다.
하지만, 서버 가상화의 동적인 성질 때문에, 상기 모델들 중 어떤 것도 판매자 및 최종 사용자 모두에게 만족스럽지 못하다. 특정한 환경에서 물리적 CPU/코어들의 개수가 고정되거나 최대치가 존재할 수 있지만, 가상화는 최종 사용자가 그 시스템의 물리적 CPU/코어들의 최대 개수를 초과하여 복수의 미들웨어 또는 애플리케이션 카피(copy)들을 실행하는 것을 가능하게 한다. 가상 환경에서 최종 사용자는 전형적으로 복수의 미들웨어 또는 애플리케이션 카피들을 병렬적으로 실행하고 있고, 따라서 단순히 단일의 O/S 이미지의 시스템 하드웨어 상에서 각 미들웨어 또는 애플리케이션 카피를 직접적으로 실행하는 경우에 사용하는 것보다 잠재적으로 더 많은 라이센싱 가능한 자원을 소비하고 있기 때문에, 미들웨어 또는 애플리케이션 판매자들은 최종 사용자들에게 미들웨어 또는 애플리케이션의 각 카피에 대해 라이센싱하는 것을 선호할 것이다.
반면에, 최종 사용자들은 실제로 모든 시간 동안 미들웨어 또는 애플리케이션의 가상 카피들 모두를 사용하지 않을 수 있고 이러한 카피들은 배포 플랫폼(deployment platform)의 실제 물리적 자원들을 100% 소비할 수 없을 것이기 때문에, 최종 사용자는 미들웨어 또는 애플리케이션의 매 가상 카피마다 CPU당 라이센스 또는 코어당 라이센스를 획득해야할 필요가 없는 것을 아마도 선호할 것이다. 따라서, 최종 사용자는 오직 그들이 실제로 사용하는 미들웨어 또는 애플리케이션의 양만큼만 라이센싱하는 것을 선호할 것이다. 이는 본 발명의 실시예들이 다루고자 하는 일반적인 분야이다.
본 명세서에서는 하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법이 개시된다. 한 실시예에 따르면, 상기 시스템은 하나 이상의 컴퓨터들을 포함하며, 각 컴퓨터는 그 컴퓨터 상에서 동작하며 하이퍼바이저 환경을 형성하는 하이퍼바이저를 구비하고, 이와 함께 그 하이퍼바이저 환경 내에서 실행되는 하나 이상의 가상 머신 이미지들을 구비한다. 각 하이퍼바이저는 특정한 이미지 인스턴스의 수명 동안 프로세서(CPU), 메모리, 입력/출력(I/O) 및 네트워킹과 같은 물리적 자원들에 대한 각 이미지 인스턴스에 의한 사용 통계를 종합하고, 상기 통계를 지속적으로, 또는 요청이 있을 때, 또는 이미지 셧다운/종료시에, 관리 프레임워크로 보고한다. 관리 프레임워크는 상기 통계를 사용하여 상기 시스템이 사용 유닛들로 적절히 라이센싱되는 것을 보장한다. 사용 유닛들의 초기 할당은 이미지에 기록되고 하이퍼바이저에 의해 실행 동안 액세스된다. 사용 유닛들이 만료에 가까워지면, 하이퍼바이저는 특정한 이미지가 라이센싱되지 않은 상태가 될 것이라는 신호를 보낼 수 있다. 관리 프레임워크는 더 많은 사용 유닛들을 할당하거나, 상기 이미지를 셧다운시키거나, 또는 추후 보상을 위해 라이센싱되지 않은 사용을 감사할 수 있다.
도 1은 한 실시예에 따라 하이퍼바이저 또는 다른 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템의 예시를 도시한 것이다.
도 2는 한 실시예에 따라 부팅가능한 머신 이미지에서 컴포넌트 정보와 사용-기반 라이센싱 메타데이터를 제공하기 위해 어플라이언스 빌더가 어떻게 사용될 수 있는지의 예시를 도시한 것이다.
도 3은 한 실시예에 따라 사용-기반 라이센싱으로 관리 프레임워크를 사용하는 예시를 도시한 것이다.
도 4는 한 실시예에 따라 하이퍼바이저 가상 실행 환경에서 사용-기반 라이센싱을 제공하는 방법의 순서도를 도시한 것이다.
도 5는 한 실시예에 따라 BMI 어셈블리에서 컴포넌트 정보와 사용-기반 라이센싱 메타데이터를 제공하기 위해 시스템이 어떻게 사용될 수 있는지를 예시하는 한 예를 도시한 것이다.
도 6은 한 실시예에 따라 사용-기반 라이센싱의 프로비저닝 및 이용의 한 예를 도시한 것이다.
전술된 바와 같이, 서버 가상화의 동적 성질 때문에, 미들웨어 또는 애플리케이션 판매자와 그들의 고객 또는 최종 사용자들 모두는 현재 이용가능한 라이센싱 모델들 중 어떠한 것에 대해서도 만족스럽지 못하다. 가상화는 최종 사용자가 그 시스템의 물리적 프로세서들(CPU/코어들)의 최대 개수를 초과하여 복수의 미들웨어 또는 애플리케이션 카피(copy)들을 실행하는 것을 가능하게 하며; 가상 환경에서 최종 사용자는 전형적으로 복수의 미들웨어 또는 애플리케이션 카피들을 병렬적으로 실행하고 있고, 따라서 단순히 단일의 운영체제(O/S) 이미지의 시스템 하드웨어 상에서 각 미들웨어 또는 애플리케이션 카피를 직접적으로 실행하는 경우에 사용하는 것보다 잠재적으로 더 많은 라이센싱 가능한 자원을 소비하고 있기 때문에, 이러한 미들웨어 또는 애플리케이션 판매자들은 최종 사용자들에게 미들웨어 또는 애플리케이션의 각 카피에 대해 라이센싱하는 것을 선호할 것이다. 반면에, 최종 사용자들은 실제로 모든 시간 동안 미들웨어 또는 애플리케이션의 가상 카피들 모두를 사용하지 않을 수 있고 이러한 카피들은 배포 플랫폼(deployment platform)의 실제 물리적 자원들을 100% 소비할 수 없을 것이기 때문에, 최종 사용자는 미들웨어 또는 애플리케이션의 매 가상 카피마다 CPU당 라이센스 또는 코어당 라이센스를 획득해야할 필요가 없는 것을 아마도 선호할 것이다.
이들 모델들 모두는 미들웨어 또는 애플리케이션의 라이센서(licensor)(판매자)와 라이센시(licensee)(최종 사용자) 모두에게 적합하지 않기 때문에, 가상화 솔루션 상에서 최종 사용자가 사용하는 카피들 각각이 라이센싱된 자원(미들웨어 또는 애플리케이션)을 실제로 소비하는 것을 기반으로 가상 실행 환경 판매자가 최종 사용자들을 라이센싱할 수 있는 모델로 옮겨가는 것이 바람직하다. 본 명세서에서는 미들웨어나 애플리케이션 또는 그것이 사용되는 게스트 O/S에 대한 수정을 필요로 함이 없이 이러한 사용-기반 라이센싱 모델을 가능하게 하는 시스템 및 방법이 서술된다.
도 1은 한 실시예에 따라 하이퍼바이저 또는 다른 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템의 예시를 도시한 것이다. 도 1에 도시된 바와 같이, 상기 시스템은 하나 이상의 물리적 컴퓨터들, 컴퓨터 시스템들, 서버 컴퓨터들, 또는 유사한 컴퓨팅 디바이스들(101, 102)을 포함하며, 이들은 함께 동작하여 가상 실행 환경 또는 클라우드(104)를 제공한다. 도 1에 또한 도시된 바와 같이, 각 컴퓨터 시스템은 하나 이상의 프로세서들(CPU)(110), 메모리(112), 입력/출력(I/O)(114), 및 네트워킹 자원들(116)과 같은 물리적 자원들(108, 109)을 포함하며, 고속의 물리적 네트워킹, 인터넷, 또는 유사한 통신 기술(117)을 통해 다른 컴퓨터 시스템들과 상호 연결된다. 각 컴퓨터 시스템은 또한 하이퍼바이저(120, 121)를 포함하며, 하이퍼바이저(120, 121)는 그 컴퓨터 시스템 상에서 동작하고 있는 하나 이상의 부팅가능한 머신 이미지(bootable machine image, BMI) 인스턴스들(122, 124, 126, 128) 간에 컴퓨터 시스템의 물리적 자원들을 다중화하여, 각 이미지가 자원들을 직접적이고 유일하게 액세스한다는 착각을 일으키며 그들 이미지들 사이에 격리(isolation)를 제공할 수 있다.
한 실시예에 따르면, 각 컴퓨터 시스템에 있는 하이퍼바이저는 원격계측 정보(telemetric information)(140)를 수집하거나, 또는 그 컴퓨터 시스템 상의 각 특정한 이미지 인스턴스의 수명(lifecycle) 동안 프로세서, 메모리, I/O, 및 네트워킹 자원들과 같은 그 시스템의 물리적 자원들에 대한 그 특정한 이미지 인스턴스의 사용에 관한 통계를 종합한다. 하이퍼바이저는 원격계측 정보 또는 통계를 지속적으로, 또는 요청이 있을 때, 또는 이미지 셧다운/종료시에, 관리 프레임워크(management framework)(150)로 보고한다. 그러면, 관리 프레임워크는 그 통계를 사용하여 그 시스템이 사용 유닛(usage unit)으로 적절히 라이센싱되는 것을 보장하거나, 및/또는 사용에 대해 최종 사용자들에게 과금하는 수단을 제공한다. 한 실시예에 따르면, 시스템은 어플라이언스 빌더(appliance builder)(160) 및/또는 어셈블리 관리자(assembly manager)(170) 중 하나 이상을 더 포함할 수 있으며, 이들 각각의 특징은 아래에서 더 상세히 서술된다.
한 실시예에 따르면, 사용 유닛 또는 크레디트(usage unit or credit)의 초기 할당(132, 134, 136, 138)은 가상 실행 환경에서 그 사용에 대해 라이센싱될 각 이미지 인스턴스 내에 메타데이터로서 기록되거나, 또는 각 이미지 인스턴스와 관련된다. 특정한 인스턴스에 대한 사용 유닛들은 그 뒤에 하이퍼바이저에 의해 그 인스턴스를 실행하는 동안 액세스되거나, 증가되거나, 또는 삭제된다. 사용에 대한 통계 정보는 또한 각 컴퓨터 시스템 및/또는 관리 프레임워크에 있는 원격계측 데이터베이스(telemetry database)(142, 143, 144)에 기록될 수 있다. 사용 유닛이 만료에 가까울 때, 하이퍼바이저는 예를 들어 특정한 이미지 인스턴스가 라이센싱되지 않은 상태가 될 것이라는 신호를 보낼 수 있다. 그러면, 관리 프레임워크는 더 많은 사용 유닛들을 할당하거나, 이미지 인스턴스를 셧다운시키거나, 또는 추후 최종 사용자에게 과금하거나 다른 형태의 보상을 받기 위해 라이센싱되지 않은 사용을 감사(audit)할 수 있다.
어플라이언스 빌더(Appliance Builder)
도 2는 한 실시예에 따라 부팅가능한 머신 이미지의 컴포넌트 정보 및 사용-기반 라이센싱 메타데이터를 제공하기 위해 어플라이언스 빌더가 어떻게 사용될 수 있는지의 예시를 도시한 것이다. 전술된 바와 같이, 한 실시예에 따르면, 복수의 게스트 O/S 이미지들은 하이퍼바이저 상에서 실행되는 부팅가능한 머신 이미지(BMI)로서 패키징되고 배포(deployment)될 수 있으며, 하이퍼바이저는 구성된 자원 사용 파라미터 및/또는 정책에 따라 물리적 서버 자원들을 임의의 소정의 시간에 하이퍼바이저 상에서 실행되는 각 이미지 또는 BMI로 다중화한다. 특정한 하이퍼바이저/서버 투플(hypervisor/server tuple)로 배포되고 그 상에서 실행되는 BMI들의 세트는 동적이며 시간에 따라 변할 수 있다. 도 2에 도시된 바와 같이, 한 실시예에 따르면, 어플라이언스 빌더 툴(160)은 예를 들어 가상화 제품 슈트(virtualization product suite)의 일부로서 제공될 수 있으며, 선택된 게스트 O/S(162), 부트로더(164), 미들웨어 및 애플리케이션(168), 구성 메타데이터(170), 및 임의의 다른 필수 컴포넌트들을 포함하여 BMI(122)를 적절한 BMI 포맷으로 패키징하여 타겟 하이퍼바이저가 그 콘텐츠를 로드하고 실행하는 것을 가능하게 하도록 사용될 수 있다.
한 실시예에 따르면, 각 게스트 이미지 O/S는 특정한 하이퍼바이저 추상화 계층 API 상에서 실행될 수 있거나 아니면 그 상에서 실행되도록 수정되는 운영체제를 포함한다. 이러한 O/S의 예들은 리눅스(Linux), 유닉스 변종들(UNIX variants), 윈도우즈(Windows), 및 맥OS(MacOS)를 포함한다. 전술된 전통적인 O/S 기술들 이외에도, 예를 들어 정상 실행 모드(normal mode of execution)에서 타겟 O/S 상의 애플리케이션으로서가 아니라 직접적으로 하이퍼바이저 상에서 실행되도록 수정되는 자바 가상 머신(Java Virtual Machine)을 포함하여 다른 게스트 런타임들이 특정한 하이퍼바이저에 의해 호스팅(host)될 수 있다.
한 실시예에 따르면, BMI는 그와 관계하는 하이퍼바이저에게 알려져 있는 파일 포맷으로서, 지원되는 게스트 O/S, 미들웨어, 최종 사용자 애플리케이션, 및 관련 구성 메타데이터 아티팩트들의 인스턴스를 인캡슐레이션(encapsulate)하고, 결국 하이퍼바이저가 게스트 O/S 및 그 안의 애플리케이션들을 로드하고 실행하는 것을 가능하게 하는 파일 포맷으로 제공된다. BMI는 게스트 O/S, 애플리케이션, 및 구성 정보의 디스크 파일시스템 표현으로서 제공되거나, 또는 그 표현을 포함할 수 있으며, 이는 게스트 O/S가 하이퍼바이저의 존재에 대하여 투명하게(transparently) 부팅하는 것을 가능하게 한다.
특정한 BMI 인스턴스를 어셈블리하는 동안, 어플라이언스 빌더는 컴포넌트 메타데이터(172)를 BMI로 삽입할 수 있으며, 이는 본 명세서에서는 사용-기반 라이센싱될 BMI의 컴포넌트들(173)을 식별하며, BMI 컴포넌트들(173)은 본 예에서 컴포넌트 A 내지 컴포넌트 C(174, 176, 178)로서 예시되어 있다. 한 실시예에 따르면, 이는 서명된 메타데이터 파일(signed metadata file)을 가상 디스크 파일시스템 또는 이미지에 포함함으로써 수행될 수 있다. 그런 다음, 메타데이터는 사용 유닛들을 계산하고 사용 유닛들을 그 안의 컴포넌트들에 적용하기 위해 하이퍼바이저 및/또는 관리 프레임워크에 의해 사용될 수 있다.
특히 복수의 BMI들의 어셈블리들을 패키징하여 컴포지트 애플리케이션(composite application)들을 형성하는 일부 실시예들에 따르면, 컴포넌트 가중치를 제공하기 위해 조합 기여도 가중치(combinatorial contribution weighting) (180)가 사용될 수 있다. 조합 기여도 가중치의 특징은 이미지 어셈블리들과 관련하여 아래에서 더 상세히 서술된다.
일반적으로 하이퍼바이저는 게스트 O/S 내부와 그 안에서 실행되는 애플리케이션들에 대해서 알지 못하기 때문에, 게스트 O/S 구현에 대한 지식(하이퍼바이저는 그 지식을 이용하여 사용 정보를 추출하기 위해 그 데이터 구조들을 검사할 수 있음)을 제공받지 않았다면, 하이퍼바이저는 유사하게 BMI를 구성하는 개별 컴포넌트/프로세스들에 대한 통찰을 가지지 못한다. 따라서, 한 실시예에 따르면, 하이퍼바이저는 BMI 사용을 "블랙 박스(black box)"의 형태로 계측하는데, 다시 말해 각 이미지 인스턴스에 의해 소비되는 자원들은 전체 이미지 인스턴스와 그 안에서 실행되는 컴포넌트들에 대하여 거시적으로 결정된다. 하이퍼바이저 상의 게스트 O/S에서 실행되는 개별 애플리케이션 컴포넌트들에 의해 소비되는 자원들은 게스트 O/S 및/또는 애플리케이션들 자체에 대한 주입적 변화(intrusive change) 없이 그 자체로는 결정가능하지 않다.
관리 프레임워크(Management Framework)
도 3은 한 실시예에 따라 사용-기반 라이센싱으로 관리 프레임워크를 사용하는 예시를 도시한 것이다. 전술된 바와 같이, 한 실시예에 따르면, 하이퍼바이저는 원격계측 정보 또는 통계를 지속적으로, 또는 요청이 있을 때, 또는 이미지 셧다운/종료시에, 관리 프레임워크로 보고하고, 그러면 관리 프레임워크는 그 통계를 사용하여 그 시스템이 사용 유닛으로 적절히 라이센싱되는 것을 보장하거나, 및/또는 사용에 대해 최종 사용자들에게 과금하는 수단을 제공한다. 이런 방식으로, 관리 프레임워크는 하나 이상의 물리적 서버들과 관련된 하이퍼바이저의 인스턴스를 실행함으로써 가상화된 하나 이상의 물리적 서버들의 수명 관리를 책임진다. 관리 프레임워크는 관리 콘솔 사용자 인터페이스(UI)를 포함하는 명령 및 제어 프레임워크로서 제공될 수 있으며, 이는 프레임워크에 의해 관리되는 개별 하이퍼바이저 인스턴스들이 로드되고, 시작되고, 정지(suspend)되고, 재시작되고, 구성되는 등을 가능하게 하고, 또한 가상 실행 환경 또는 클라우드와 같은 서버들의 관리되는 도메인(managed domain)에 걸쳐 타겟 BMI 인스턴스들의 관리를 가능하게 한다.
한 실시예에 따르면, 관리 프레임워크는 또한 개별 하이퍼바이저들 각각으로부터 그 하이퍼바이저들 상에서 실행되는 BMI 인스턴스들에 대한 원격계측 정보 또는 통계를 추출하고, 그런 다음 그 통계들을 가상화된 환경 내에서 관리 프레임 및/또는 컴퓨터 시스템에 있는 관리 콘솔(management console) 및/또는 영속적 로그(persistent log)에 기록한다.
도 3에 도시된 바와 같이, 관리 프레임워크는 각 BMI와 관련되는 초기 사용 크레디트(190)를 제공할 수 있다. 하이퍼바이저에 있는 원격계측 로직(192)은 초기 크레디트들(194, 196)을 그 하이퍼바이저 상에서 실행되는 인스턴스들 각각과 관련시킨다. 그러면 관리 프레임워크는 하이퍼바이저들의 관리되는 도메인으로부터 다중 BMI 인스턴스들에 대한 부인할 수 없는(non-repudiatable) 사용 통계(202)를 사전적으로(proactively) 또는 동적으로 소비할 수 있고, 각 BMI 인스턴스 내에 있는 라이센싱가능한 컴포넌트들의 사용을 안전하게 감사할 수 있다. 예를 들어, 관리 프레임워크는 특정한 호스팅 하이퍼바이저에 대해 또는 특정한 인스턴스의 종료시에 추가적인 "사용(usage)" 크레디트들(204) 또는 다른 지시들로 응답할 수 있다. 관리 프레임워크는 그 뒤에 판매자가 라이센싱된 컴포넌트들에 대한 사용 통계를 적절히 추출할 수 있도록 사용 정보를 라이센스 사용 데이터베이스(license usage database)(206)에 확보한다.
한 실시예에 따르면, 관리 프레임워크는 어떤 라이센싱가능한 컴포넌트들이 특정한 BMI 인스턴스에 포함되어 있는지와, 만일 필요하다면 그 컴포넌트들이 그 BMI의 인스턴스의 실행 수명 동안 하이퍼바이저 자원들의 전반적인 사용에 기여하는 상대적 가중치 또는 기여도를 결정하기 위해 BMI 어플라이언스 빌더에 의해 앞서 그 BMI 인스턴스로 내장된 메타데이터 정보를 사용한다.
도 4는 한 실시예에 따라 하이퍼바이저 가상 실행 환경에서 사용-기반 라이센싱을 제공하는 방법의 순서도를 도시한 것이다. 도 4에 도시된 바와 같이, 단계(220)에서, 이미지 컴포넌트 리스트가 결정되며, 이는 선택사항으로서 적절한 데이터베이스 또는 판매자 입력으로부터 조합 기여도 가중치를 사용하는 것을 포함한다. 단계(222)에서, 사용자 애플리케이션 및 컴포넌트 리스트를 구비한 부팅가능한 머신 이미지가 생성되거나, 또는 대체가능한 것으로 컴포지트 애플리케이션을 구비한 이미지 어셈블리가 생성된다. 단계(224)에서, BMI 또는 이미지 어셈블리가 만일 적용가능하다면 초기 사용 크레디트들과 함께 인스턴스로서 하이퍼바이저 환경으로 배포된다. 단계(226)에서, 관리 프레임워크는 각 컴퓨터 시스템 및/또는 하이퍼바이저로부터 그 하이퍼바이저 상의 BMI 또는 이미지 어셈블리 사용에 대한 원격계측 정보를 주기적으로 또는 온-디맨드(on-demand) 방식으로 수신하거나 결정한다. 단계(228)에서, 관리 프레임워크와 하이퍼바이저는 선택사항으로서 기존의 사용된 크레디트들을 비교하거나, 및/또는 추가적인 사용에 대한 새로운 크레디트들을 제공하거나, 및/또는 그 뒤의 라이센스 요금 계산에 사용되는 사용 또는 크레디트를 보고한다.
어셈블리 관리자(Assembly Manager)
도 5는 한 실시예에 따라 BMI 어셈블리에 대한 컴포넌트 정보 및 사용-기반 라이센싱 메타데이터를 제공하기 위해 시스템이 어떻게 사용될 수 있는지를 예시하는 한 예를 도시한 것이다. 전술된 바와 같이, 한 실시예에 따르면, 상기 시스템은 어셈블리 관리자(170)를 포함할 수 있으며, 이는 가상 어셈블리 관리 프레임워크, 툴, 콘솔로서 관련 사용자 인터페이스(UI)를 구비할 수 있다. 서비스 지향 아키텍처(Service Oriented Architecture, SOA)의 맥락에서, 애플리케이션들은 종종 컴포지트 애플리케이션들 또는 컴포지트들이며, 즉 최종 사용자 관점에서 단일 애플리케이션들로 보이지만 복수의 부분들 또는 서비스들로 구성되는 애플리케이션들이다. 각 서비스는 특유의 컴포넌트이며, 다양한 미들웨어 기술들로 구현될 수 있고, 각각의 (고유한) 런타임 컨테이너(runtime container) 또는 환경에 호스팅될 수 있다. 가상화된 SOA 배포에서, 가상 컴포지트 애플리케이션들에 대한 동작 수명(operational lifecycle) 동안 단일의 불가분한 컴포넌트들로서 전체로서 동작하는 것이 바람직하다. 개별 서비스 또는 컴포넌트들은 그것들의 관련 런타임 환경, 구성 메타데이터 아티팩트, 및 다른 관련 데이터와 함께 개별 BMI (파일)로 (어플라이언스 툴을 통해) 패키징될 수 있다.
도 5에 도시된 바와 같이, 한 실시예에 따르면, 일단 각 서비스(236, 256)가 그 안의 임의의 컴포넌트들과 함께 그 자신의 BMI(230, 250)에 패키징되면, 어셈블리 관리자 툴을 사용하여 각 BMI "어플라이언스"의 이미지 어셈블리(228)가 생성되며, 이는 각 컴포넌트 BMI를 포함하는 단일의 이미지를 생성하고, 또한 어셈블리된 컴포지트 애플리케이션(262)을 기술하는 데 요구되는 임의의 초기 사용 라이센스 메타데이터(264)와 다른 메타데이터 아티팩트들을 특정한다. 그런 다음, 이미지 어셈블리는 가상 실행 환경에서 하이퍼바이저로 배포될 수 있다.
한 실시예에 따르면, 하이퍼바이저가 "컴포지트" BMI 어셈블리들(즉, 복수의 라이센싱가능한 컴포넌트들을 포함하는 BMI들)의 내부, 타겟 게스트 O/S들에 대한 지식 없이 그리고 그것들을 조사하지 않고 그것들의 라이센싱을 도모하기 위해, "조합 기여도 가중치" 방식(180)이 사용될 수 있다. 조합 기여도 가중치는 상기 시스템이 컴포지트 BMI에 의해 소비되는 자원들을 그 안의 라이센싱가능한 컴포넌트들에 걸쳐 분산/할당할 수 있게 한다. 어플라이언스 빌더를 사용하여 개별 BMI를 어셈블리하거나, 아니면 어셈블리 관리자를 사용하여 하나 이상의 BMI들을 컴포지트 애플리케이션으로 어셈블리할 때, 관리 프레임워크는 라이센싱 시스템에 의한 후속 사용을 위해 그 안의 각 라이센싱가능한 컴포넌트에 대한 가중치들을 안전하고(secure) 부인할 수 없는(non-repudiatable) 방식으로 병합할 수 있다. 이들 가중치들은 각 개별 라이센싱가능한 컴포넌트에 대하여 판매자에 의해(예를 들어, 안전한 라이센스 상점에서) 할당될 수 있고, 개별 BMI 내에 결합되는 다른 라이센싱가능한 컴포넌트들, 또는 복수의 BMI들을 포함하는 컴포지트 애플리케이션과 연계하여 계산될 수 있다.
원격계측 정보(Telemetric Information)
전술된 바와 같이, 한 실시예에 따르면, 각 컴퓨터 시스템에 있는 하이퍼바이저는 원격계측 정보를 수집하거나, 또는 그 컴퓨터 시스템 상의 각 특정한 이미지 인스턴스의 수명 동안 그 특정한 이미지 인스턴스에 의한 그 시스템의 물리적 자원들의 사용에 관한 통계를 종합한다. 이 원격계측 정보는 네트워크를 통해 원격으로 액세스되거나, 또는 나중의 분석을 위해 일정한 영속적 형태(예를 들어, 로컬/원격 디스크)로 수집될 수 있다. 일부 하이퍼바이저들은 호스팅된/게스트 O/S와 그 상에서 실행되는 애플리케이션들에 대하여 "투명(transparent)"할 수 있는 반면, 다른 것들은 그들의 지원되는 "게스트" 운영체제(들)과의 추가적인 통합을 필요로 할 수 있거나, 및/또는 호스팅 하이퍼바이저 플랫폼들과 더욱 밀접하게 통합하기 위해 애플리케이션들에 대한 API들을 제공할 수 있다. 이러한 추가적인 애플리케이션 레벨의 통합은 전형적으로 애플리케이션들에게 관리 및 원격계측 기능들을 제공하는 반면, O/S 레벨의 통합은 대체로 하이퍼바이저가 가상화하는 하드웨어 디바이스/시스템 인터페이스들과 특정한 게스트 O/S 사이의 인터페이스들에 영향을 주는 하이퍼바이저 아키텍처 및 구현에 의해 이루어진 선택의 결과이다.
전술된 바와 같이, 한 실시예에 따르면, 하이퍼바이저는 특정한 이미지 인스턴스의 수명(시작-종료) 동안 각 BMI 인스턴스 사용에 대하여 (실시간으로) 종합하고, 그것들을 지속적으로, 또는 요청에 의해, 또는 이미지 셧다운/종료시에, 관리 프레임워크로 보고하며, 일부 인스턴스들에서는 BMI에 기록되며 부인할 수 없는 포맷으로(예를 들어, 셧다운 시에 암호화(encrypt)된 파일 포맷으로) 보고한다. 추적될 수 있는 통계의 예들은 타임스탬프 방식으로 스타트업 이후로 소비된 실제 CPU (초); 타입스탬프 방식으로 스타트업 이후로 소비된 평균 메모리; 타임스탬프 방식으로 스타트업 이후로 총 I/O 동작들; 타임스탬프 방식으로 스타트업 이후로 총 네트워크 I/O를 포함한다.
원격계측 정보는 BMI당 사용이 관리 프레임워크의 라이센싱 컴포넌트에 의해 소급적으로(retro-actively), 아니면 사전적으로 계산될 수 있게 하고, 예를 들어 소급적 감사 기반의 사용 라이센싱 모델(retroactive audit based usage licensing model); 사전적, 동적 "페이-애즈-유-고(pay-as-you-go)" 모델(이 모델에서는 사용 정보가 하이퍼바이저로부터 관리 프레임워크와 교환되고, 관리 프레임워크는 다시 특정한 BMI 인스턴스에 의해 소비되는 자원들에 대해 하이퍼바이저에 의해 적용될 추가적인 사용 "크레디트"로 응답한다); 사용 유닛들의 사전적, 정적, 초기 할당((관리 프레임워크의 라이센싱 컴포넌트에 의해) BMI에 기록되고 하이퍼바이저에 의해 실행되는 동안 액세스되는)이 가능하다. 만료시에 또는 "로우 워터마크(low watermark)" 지정시에, 하이퍼바이저는 특정한 BMI가 라이센싱되지 않은 상태가 될 것(그것에 할당된 것을 전부 사용함으로써)이라는 것을 라이센싱 컴포넌트에게 신호를 보낼 수 있고, 관리 프레임워크는 더 많이 할당하거나, 또는 BMI를 셧다운시키거나, 또는 추후 보상을 위해 라이센싱되지 않은 사용을 감사할 수 있다.
자바 가상 머신(JVM)이 "게스트" O/S의 애플리케이션으로서 정상 실행 모드가 아니라 직접적으로 하이퍼바이저 상에서 실행되도록 수정된 경우와 같은 일정한 환경들에서, JVM의 런타임은 원격계측 로직으로 수정되어 호스팅 하이퍼바이저와 그것의 관리 하부구조(infrastructure)에 있는 원격계측 능력들과 관련 API들을 알고 있도록 수정될 수 있으며, 이러한 경우들에서, JVM은 하이퍼바이저 안에서 실행되는 자바 미들웨어 및 애플리케이션들과 그들의 자원 소비에 대하여 추가적인 "실시간(real time)" 원격계측을 하이퍼바이저에게 제공할 수 있다. 이 추가적인 원격계측에 의해 사용-기반 라이센싱은 라이센싱 목적으로 더 충실한 사용 보고를 제공할 수 있다.
예시적인 예
도 6은 한 실시예에 따라 사용-기반 라이센싱의 프로비저닝(provisioning) 및 이용의 한 예를 도시한 것이다. 도 6에 도시된 바와 같이, 이 특정한 예에서, 하이퍼바이저를 포함하는 가상 실행 환경을 사용하는 고객은 다음의 컴포넌트들로부터 애플리케이션 어플라이언스를 생성하기를 원할 수 있으며 또한 일부 미드-티어(mid-tier) 애플리케이션 코드(예를 들어 웹로직에서)를 더 포함하기를 원할 수 있다.
(a) HTTP 서버
(b) 애플리케이션 서버(예컨대, 웹로직(WebLogic) 또는 WLS)
(c) JVM
(d) 관계형 데이터베이스(relational database, RDBMS)
(e) 운영체제(O/S, 예컨대 리눅스)
어플라이언스 빌더와 어셈블리 관리자를 사용하여, 이들 컴포넌트들, 애플리케이션, 및 임의의 구성 메타데이터 아티팩트들의 BMI를 생성하고, 이 이미지를 "MyAppAppliance"(280)로 명명할 수 있다.
이미지를 어셈블리하는 과정에서, 어셈블리 관리자는 상기 라이센싱가능한 컴포넌트들의 리스트와 함께 관련 "조합 기여도 가중치"를 포함하는 아티팩트를 생성한다. 조합 기여도 가중치 데이터베이스로부터 정보를 얻어, 어셈블리 툴은 컴포넌트들과 그들의 가중치 리스트를 포함하는 라이센싱 아티팩트와 BMI 이미지를 어셈블리하며, 이 예에서는 다음과 같을 수 있다.
(a) HTTP 서버 5%
(b) 애플리케이션 서버(WLS) 40% (사용자 애플리케이션 코드를 포함하여)
(c) JVM 5%
(d) 관계형 데이터베이스(RDBMS) 40%
(e) 운영체제(O/S) 10%
최종 사용자는 이 BMI의 인스턴스들(288, 290)을 그것들의 서버팜(server farm), 가상 실행 환경, 또는 클라우드 상에 배포하고, 그들의 애플리케이션을 실행한다.
이 예에서는, 사용에 대한 체납액을 판매자가 매월 청구하는 옵션이 선택되었다. 원격계측 정보 또는 통계(292)는 지난달 동안 복수의 서버들 상에서 "MyAppAppliance" BMI의 복수의 인스턴스를 시작하였고 정지하였다. 하이퍼바이저들은 각 인스턴스 수명 동안 CPU, I/O, 메모리, 및 네트워크 통계를 지속적으로 수집하고 보고하였고, 관리 프레임워크는 그것들을 그에 따라 기록하였다. (부인할 수 없는) 로그는 도 6에 도시된 것과 같은 것으로 보일 수 있다. 30일 기간 종료시에, 관리 프레임워크는 이 사용 정보(294)를 그에 따라 총합할 수 있다. 이 예에서, "MyAppAppliance"는 총 26208 CPU 분(minute)만큼의 자원을 사용한 것으로 나타나 있다. 오라클의 현재 사용 라이센싱은 오로지 CPU 사용에 대해서만 라이센싱하는 것으로 가정한다. 그런 다음, 라이센싱 프레임워크는 이 총 CPU 사용에 라이센싱된 컴포넌트의 조합 기여도 가중치를 적용하였다.
(a) HTTP 서버 사용 1310 cpu/분
(b) 애플리케이션 서버(WLS) 사용 10483
(c) JVM 사용 1310
(d) 관계형 데이터베이스(RDBMS) 사용 10483
(e) 운영체제(O/S) 2620
그런 다음, 판매자는 최종 사용자에게 해당 라이센스 요금(296)을 과금하기 위해 현재 가격/사용 유닛 요금과 수량 할인(volume discount)이나 결합 할인(combination discount)을 적용할 수 있다.
본 발명은 본 개시의 가르침에 따라 프로그램되는 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능한 저장 매체를 포함하는 하나 이상의 종래의 범용 또는 전용 디지털 컴퓨터, 컴퓨팅 디바이스, 머신, 또는 마이크로프로세서를 사용하여 편리하게 구현될 수 있다. 소프트웨어 기술분야의 통상의 기술자들에게 명백할 것인 바와 같이, 본 개시의 가르침을 토대로 통상의 프로그래머들에 의해 적절한 소프트웨어 코드가 쉽게 마련될 수 있다.
일부 실시예들에서, 본 발명은 컴퓨터 프로그램 제품을 포함하며, 이 제품은 본 발명의 절차들을 수행하도록 컴퓨터를 프로그램하기 위해 사용될 수 있는 명령어들이 저장된 저장 매체 또는 컴퓨터 판독가능한 매체(들)이다. 이 저장 매체는 플로피 디스크(floppy disk), 광학 디스크, DVD, CD-ROM, 마이크로드라이브, 광자기 디스크(magneto-optical disk)를 포함하는 임의의 유형의 디스크, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, 플래쉬 메모리 디바이스, 자기적 또는 광학적 카드, 나노시스템(nanosystem)(분자 메모리 IC를 포함), 또는 명령어 및/또는 데이터를 저장하는 데 적합한 임의의 유형의 매체 또는 디바이스를 포함할 수 있는데, 다만 이들로만 제한되는 것은 아니다.
전술된 본 발명의 상세한 설명은 예시 및 설명의 목적으로 제공된 것이다. 본 발명의 상세한 설명은 본 발명을 빠짐없이 완전히 개시한 것이라거나 본 발명을 개시된 특정 형태들로 제한하고자 의도된 것이 아니다. 많은 수정 및 변형들이 당해 기술분야의 통상의 기술자들에게 명백할 것이다. 실시예들은 본 발명의 원리들과 그 실제적인 응용을 가장 잘 설명하여 당해 기술분야의 통상의 기술자들이 다양한 실시예들에 대해 그리고 고려되는 특정한 용도에 적합한 다양한 수정들로 본 발명을 이해할 수 있게 하기 위해 선택되고 서술되었다. 본 발명의 범위는 첨부된 특허청구범위와 그 균등물에 의해 정해지도록 의도하는 바이다.

Claims (18)

  1. 하이퍼바이저 가상 실행 환경(hypervisor virtual execution environment)에서 사용-기반 애플리케이션 라이센싱(usage-based application licensing)을 위한 시스템으로서,
    프로세서, 메모리, 및 운영체제를 포함하는 컴퓨터와;
    가상 실행 환경 또는 클라우드(cloud)의 하나 이상의 하이퍼바이저들 상에서 실행될 이미지 인스턴스들로서 이미지들의 배포(deployment)를 위해 가상 머신 이미지들의 생성에 사용되는 어플라이언스 빌더 소프트웨어(appliance builder software)와;
    상기 하나 이상의 하이퍼바이저들 각각으로부터 상기 하이퍼바이저들에서 이미지 인스턴스들에 의한 상기 하이퍼바이저들에 의해 가상화된 컴퓨터 자원들의 사용을 기술하는 원격계측 정보(telemetric information)를 수신하는 관리 프레임워크 소프트웨어(management framework software)를 포함하며,
    상기 관리 프레임워크는 상기 원격계측 정보를 수신하는 것에 응답하여 상기 이미지 인스턴스들에게 사용 크레디트를 할당하거나 및/또는 그 사용에 대해 라이센싱할 목적으로 상기 이미지 인스턴스들에 의한 사용을 기록하는
    사용-기반 애플리케이션 라이센싱 시스템.
  2. 제1항에 있어서,
    상기 어플라이언스 빌더 또는 상기 관리 프레임워크는 각 이미지 인스턴스에게 초기 사용 크레디트를 할당하고, 후속으로 상기 인스턴스들이 실행되고 있는 동안 필요에 따라 추가적인 사용 크레디트 또는 추가 지시들을 할당하는
    사용-기반 애플리케이션 라이센싱 시스템.
  3. 제2항에 있어서,
    상기 추가 지시들은 만일 사용 크레디트가 초과된 경우 인스턴스의 실행을 종료하라는 요청을 포함할 수 있는
    사용-기반 애플리케이션 라이센싱 시스템.
  4. 제1항에 있어서,
    상기 원격계측 정보는 상기 하이퍼바이저들에서 이미지 인스턴스들에 의한 상기 하이퍼바이저들에 의해 가상화된 컴퓨터 자원들의 사용을 커버하는 라이센스 요금을 결정하는 데 사용되는
    사용-기반 애플리케이션 라이센싱 시스템.
  5. 제1항에 있어서,
    상기 가상 실행 환경 또는 클라우드에서 상기 하나 이상의 하이퍼바이저들 상에서 실행될 이미지 인스턴스들로서 이미지 어셈블리들의 배포를 위해 컴포지트 애플리케이션들의 가상 머신 이미지 어셈블리들의 생성에 사용되는 어셈블리 관리자(assembly manager)를 더 포함하는
    사용-기반 애플리케이션 라이센싱 시스템.
  6. 제1항에 있어서,
    특정한 이미지에서 복수의 라이센싱가능한 컴포넌트에 대한 가중치를 정의하는 조합 기여도 가중치(combinatorial contribution weighting)를 더 포함하며, 상기 관리 프레임워크는 상기 라이센싱가능한 컴포넌트들 각각에 의한 사용에 대해 라이센싱할 목적으로 상기 이미지 인스턴스에 의한 전체 사용을 상기 조합 기여도 가중치에 의해 수정한 것으로 결정함으로써 각 라이센싱가능한 컴포넌트에 의한 사용을 결정하는
    사용-기반 애플리케이션 라이센싱 시스템.
  7. 하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 방법으로서,
    프로세서, 메모리, 및 운영체제를 포함하는 컴퓨터를 제공하는 단계와;
    가상 실행 환경 또는 클라우드의 하나 이상의 하이퍼바이저들 상에서 실행될 이미지 인스턴스들로서 이미지들의 배포를 위해 가상 머신 이미지들의 생성에 사용되는 어플라이언스 빌더 소프트웨어를 제공하는 단계와;
    상기 하나 이상의 하이퍼바이저들 각각으로부터 상기 하이퍼바이저들에서 이미지 인스턴스들에 의한 상기 하이퍼바이저들에 의해 가상화된 컴퓨터 자원들의 사용을 기술하는 원격계측 정보를 수신하는 관리 프레임워크 소프트웨어를 제공하는 단계를 포함하며,
    상기 관리 프레임워크는 상기 원격계측 정보를 수신하는 것에 응답하여 상기 이미지 인스턴스들에게 사용 크레디트를 할당하거나 및/또는 그 사용에 대해 라이센싱할 목적으로 상기 인스턴스들에 의한 사용을 기록하는
    사용-기반 애플리케이션 라이센싱 방법.
  8. 제7항에 있어서,
    상기 어플라이언스 빌더 또는 상기 관리 프레임워크는 각 이미지 인스턴스에게 초기 사용 크레디트를 할당하고, 후속으로 상기 인스턴스들이 실행되고 있는 동안 필요에 따라 추가적인 사용 크레디트 또는 추가 지시들을 할당하는
    사용-기반 애플리케이션 라이센싱 방법.
  9. 제8항에 있어서,
    상기 추가 지시들은 만일 사용 크레디트가 초과된 경우 인스턴스의 실행을 종료하라는 요청을 포함할 수 있는
    사용-기반 애플리케이션 라이센싱 방법.
  10. 제7항에 있어서,
    상기 원격계측 정보는 상기 하이퍼바이저들에서 이미지 인스턴스들에 의한 상기 하이퍼바이저들에 의해 가상화된 컴퓨터 자원들의 사용을 커버하는 라이센스 요금을 결정하는 데 사용되는
    사용-기반 애플리케이션 라이센싱 방법.
  11. 제7항에 있어서,
    상기 가상 실행 환경 또는 클라우드에서 상기 하나 이상의 하이퍼바이저들 상에서 실행될 이미지 인스턴스들로서 이미지 어셈블리들의 배포를 위해 컴포지트 애플리케이션들의 가상 머신 이미지 어셈블리들의 생성에 사용되는 어셈블리 관리자를 제공하는 단계를 더 포함하는
    사용-기반 애플리케이션 라이센싱 방법.
  12. 제7항에 있어서,
    특정한 이미지에서 복수의 라이센싱가능한 컴포넌트에 대한 가중치를 정의하는 조합 기여도 가중치를 사용하는 단계를 더 포함하며, 상기 관리 프레임워크는 상기 라이센싱가능한 컴포넌트들 각각에 의한 사용에 대해 라이센싱할 목적으로 상기 이미지 인스턴스에 의한 전체 사용을 상기 조합 기여도 가중치에 의해 수정한 것으로 결정함으로써 각 라이센싱가능한 컴포넌트에 의한 사용을 결정하는
    사용-기반 애플리케이션 라이센싱 방법.
  13. 컴퓨터에 의해 판독되고 실행될 때 상기 컴퓨터로 하여금
    프로세서, 메모리, 및 운영체제를 포함하는 컴퓨터를 제공하는 단계와;
    가상 실행 환경 또는 클라우드에서 하나 이상의 하이퍼바이저들 상에서 실행될 이미지 인스턴스들로서 이미지들의 배포를 위해 가상 머신 이미지들의 생성에 사용되는 어플라이언스 빌더 소프트웨어를 제공하는 단계와;
    상기 하나 이상의 하이퍼바이저들 각각으로부터 상기 하이퍼바이저들에서 이미지 인스턴스들에 의한 상기 하이퍼바이저들에 의해 가상화된 컴퓨터 자원들의 사용을 기술하는 원격계측 정보를 수신하는 관리 프레임워크 소프트웨어를 제공하는 단계를 포함하는 단계들을 수행하게 하도록 저장된 명령어들을 포함하며,
    상기 관리 프레임워크는 상기 원격계측 정보를 수신하는 것에 응답하여 상기 이미지 인스턴스들에게 사용 크레디트를 할당하거나 및/또는 그 사용에 대해 라이센싱할 목적으로 상기 인스턴스들에 의한 사용을 기록하는
    컴퓨터 판독가능한 저장 매체.
  14. 제13항에 있어서,
    상기 어플라이언스 빌더 또는 상기 관리 프레임워크는 각 이미지 인스턴스에게 초기 사용 크레디트를 할당하고, 후속으로 상기 인스턴스들이 실행되고 있는 동안 필요에 따라 추가적인 사용 크레디트 또는 추가 지시들을 할당하는
    컴퓨터 판독가능한 저장 매체.
  15. 제14항에 있어서,
    상기 추가 지시들은 만일 사용 크레디트가 초과된 경우 인스턴스의 실행을 종료하라는 요청을 포함하는
    컴퓨터 판독가능한 저장 매체.
  16. 제13항에 있어서,
    상기 원격계측 정보는 상기 하이퍼바이저들에서 이미지 인스턴스들에 의한 상기 하이퍼바이저들에 의해 가상화된 컴퓨터 자원들의 사용을 커버하는 라이센스 요금을 결정하는 데 사용되는
    컴퓨터 판독가능한 저장 매체.
  17. 제13항에 있어서,
    상기 명령어들은
    상기 가상 실행 환경 또는 클라우드에서 상기 하나 이상의 하이퍼바이저들 상에서 실행될 이미지 인스턴스들로서 이미지 어셈블리들의 배포를 위해 컴포지트 애플리케이션들의 가상 머신 이미지 어셈블리들의 생성에 사용되는 어셈블리 관리자를 제공하는 단계를 더 포함하는
    컴퓨터 판독가능한 저장 매체.
  18. 제13항에 있어서,
    상기 명령어들은
    특정한 이미지에서 복수의 라이센싱가능한 컴포넌트에 대한 가중치를 정의하는 조합 기여도 가중치를 사용하는 단계를 더 포함하며, 상기 관리 프레임워크는 상기 라이센싱가능한 컴포넌트들 각각에 의한 사용에 대해 라이센싱할 목적으로 상기 이미지 인스턴스에 의한 전체 사용을 상기 조합 기여도 가중치에 의해 수정한 것으로 결정함으로써 각 라이센싱가능한 컴포넌트에 의한 사용을 결정하는
    컴퓨터 판독가능한 저장 매체.
KR1020127009878A 2009-09-24 2010-08-27 하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법 KR101697269B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/566,380 2009-09-24
US12/566,380 US11132237B2 (en) 2009-09-24 2009-09-24 System and method for usage-based application licensing in a hypervisor virtual execution environment
PCT/US2010/047010 WO2011037720A1 (en) 2009-09-24 2010-08-27 System and method for usage-based application licensing in a hypervisor virtual execution environment

Publications (2)

Publication Number Publication Date
KR20120085772A true KR20120085772A (ko) 2012-08-01
KR101697269B1 KR101697269B1 (ko) 2017-01-17

Family

ID=43048880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127009878A KR101697269B1 (ko) 2009-09-24 2010-08-27 하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US11132237B2 (ko)
EP (1) EP2480966B1 (ko)
JP (1) JP5627690B2 (ko)
KR (1) KR101697269B1 (ko)
CN (1) CN102511034B (ko)
WO (1) WO2011037720A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132237B2 (en) 2009-09-24 2021-09-28 Oracle International Corporation System and method for usage-based application licensing in a hypervisor virtual execution environment
US9063769B2 (en) * 2010-02-04 2015-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Network performance monitor for virtual machines
US8621081B2 (en) * 2010-12-29 2013-12-31 Verizon Patent And Licensing Inc. Hypervisor controlled user device that enables available user device resources to be used for cloud computing
CN103907128B (zh) 2011-06-14 2018-01-12 英派尔科技开发有限公司 用于云计算环境的峰值性能已知计费
US9245095B2 (en) 2011-10-25 2016-01-26 Ca, Inc. System and method for license management of virtual machines at a virtual machine manager
US8620820B2 (en) 2011-11-15 2013-12-31 International Business Machines Corporation Management of dynamic assembly and licensing of appliances
US10282221B2 (en) * 2011-12-09 2019-05-07 International Business Machines Corporation Controlling usage of virtual disks before their attachment to virtual machines
US9245096B2 (en) 2012-01-24 2016-01-26 International Business Machines Corporation Software license management in a networked computing environment
US9165332B2 (en) 2012-01-27 2015-10-20 Microsoft Technology Licensing, Llc Application licensing using multiple forms of licensing
US10528994B2 (en) 2012-03-29 2020-01-07 International Business Machines Corporation Allocation of application licenses within cloud or infrastructure
JP2014002583A (ja) * 2012-06-19 2014-01-09 Nifty Corp 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
US20130346227A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Performance-Based Pricing for Cloud Computing
US8972971B2 (en) 2012-08-09 2015-03-03 International Business Machines Corporation Image instance mapping
GB2506195A (en) * 2012-09-25 2014-03-26 Ibm Managing a virtual computer resource
US9436814B2 (en) 2013-01-22 2016-09-06 Empire Technology Development Llc Fail-safe licensing for software applications
US9686171B1 (en) * 2013-07-22 2017-06-20 Veritas Technologies Systems and methods for attributing input/output statistics networks to region-mapped entities
GB2519517A (en) * 2013-10-22 2015-04-29 Ibm Managing virtual appliances supporting multiple profiles
US9825908B2 (en) 2013-12-11 2017-11-21 At&T Intellectual Property I, L.P. System and method to monitor and manage imperfect or compromised software
WO2015087444A1 (ja) * 2013-12-13 2015-06-18 株式会社日立システムズ ライセンス管理システムおよびライセンス管理方法
US9454497B2 (en) * 2014-08-15 2016-09-27 Intel Corporation Technologies for secure inter-virtual-machine shared memory communication
EP3002699A1 (en) * 2014-09-30 2016-04-06 Alcatel Lucent A method for controlling the execution of an application in a virtual computer environment
US9460273B2 (en) * 2014-10-29 2016-10-04 International Business Machines Corporation Automatic generation of license terms for service application marketplaces
US9588795B2 (en) * 2014-11-24 2017-03-07 Aspen Timber LLC Monitoring and reporting resource allocation and usage in a virtualized environment
US10503787B2 (en) 2015-09-30 2019-12-10 Oracle International Corporation Sharing common metadata in multi-tenant environment
US9672140B1 (en) * 2015-12-28 2017-06-06 Sap Se Processing special requests at dedicated application containers
US9965313B2 (en) * 2016-01-05 2018-05-08 Bitdefender IPR Management Ltd. Systems and methods for auditing a virtual machine
US10235211B2 (en) * 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
CN105975328B (zh) * 2016-04-29 2019-10-08 上海交通大学 基于安全虚拟机的日志文件安全审计系统及方法
DE102019103445A1 (de) * 2019-02-12 2020-08-13 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Lizenzierung einer Toolkette
US11372951B2 (en) 2019-12-12 2022-06-28 EMC IP Holding Company LLC Proxy license server for host-based software licensing
US11947436B2 (en) 2020-12-21 2024-04-02 International Business Machines Corporation Automatic evaluation of virtual machine computing power
US11422718B1 (en) 2021-05-03 2022-08-23 EMC IP Holding Company LLC Multi-path layer configured to provide access authorization for software code of multi-path input-output drivers
CN113448740B (zh) * 2021-09-01 2021-11-30 北京鲸鲮信息系统技术有限公司 操作系统的电源管理方法及装置
CN113760767B (zh) * 2021-09-10 2024-04-19 元心信息科技集团有限公司 操作系统的调试方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060046042A (ko) * 2004-06-30 2006-05-17 마이크로소프트 코포레이션 에뮬레이트된 컴퓨팅 환경을 이용하여 운영 체계 라이센스매출을 수금하기 위한 시스템 및 방법
US20070192329A1 (en) * 2006-01-24 2007-08-16 Citrix Systems, Inc. Methods and systems for executing, by a virtual machine, an application program requested by a client machine
US20090006862A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Provisioning a computing system for digital rights management
US20090193496A1 (en) * 2008-01-30 2009-07-30 Microsoft Corporation Detection of hardware-based virtual machine environment

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54142434A (en) 1978-04-28 1979-11-06 Suzuki Motor Co Ltd Fuel tank for two-cycle engine
JP2001301690A (ja) 1999-05-25 2001-10-31 Toshiba Tec Corp 遊泳補助装置
JP4292693B2 (ja) 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
JP2002041304A (ja) * 2000-07-28 2002-02-08 Hitachi Ltd 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
US7096469B1 (en) * 2000-10-02 2006-08-22 International Business Machines Corporation Method and apparatus for enforcing capacity limitations in a logically partitioned system
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
JP2004171412A (ja) 2002-11-21 2004-06-17 Ntt Data Corp 仮想pcレンタル装置、コンピュータが実行するためのプログラム、および仮想pcレンタルシステム
JP2004280200A (ja) 2003-03-12 2004-10-07 Ricoh Co Ltd ソフトウェア部品流通システム、プログラム及び記憶媒体
US7620950B2 (en) * 2003-07-01 2009-11-17 International Business Machines Corporation System and method to monitor amount of usage of applications in logical partitions
US20070028052A1 (en) * 2005-07-28 2007-02-01 International Business Machines Corporation Method and apparatus for maintaining cached state data for one or more shared devices in a logically partitioned computer system
US8645964B2 (en) 2005-08-23 2014-02-04 Mellanox Technologies Ltd. System and method for accelerating input/output access operation on a virtual machine
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8112527B2 (en) 2006-05-24 2012-02-07 Nec Corporation Virtual machine management apparatus, and virtual machine management method and program
US8032882B2 (en) * 2006-07-26 2011-10-04 Hewlett-Packard Development Company, L.P. System and method for controlling aggregate CPU usage by virtual machines and driver domains
US8336046B2 (en) 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
US7941803B2 (en) * 2007-01-15 2011-05-10 International Business Machines Corporation Controlling an operational mode for a logical partition on a computing system
US8689010B2 (en) * 2007-06-28 2014-04-01 Microsoft Corporation Secure storage for digital rights management
WO2009048609A1 (en) * 2007-10-12 2009-04-16 Vkernel Corporation Method, system and apparatus for calculating chargeback for virtualized computing resources
US8281303B2 (en) 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
US20090217263A1 (en) * 2008-02-25 2009-08-27 Alexander Gebhart Virtual appliance factory
US20090216707A1 (en) * 2008-02-26 2009-08-27 International Business Machines Corporation File resource usage information in metadata of a file
US20090292654A1 (en) * 2008-05-23 2009-11-26 Vmware, Inc. Systems and methods for calculating use charges in a virtualized infrastructure
US10719587B2 (en) * 2008-06-25 2020-07-21 Red Hat, Inc. Managing entitlements in a networked environment
US9733959B2 (en) * 2008-09-15 2017-08-15 Vmware, Inc. Policy-based hypervisor configuration management
US8140717B2 (en) * 2008-09-26 2012-03-20 International Business Machines Corporation Controlling access to physical indicators in a logically partitioned computer system
US8549516B2 (en) * 2008-12-23 2013-10-01 Citrix Systems, Inc. Systems and methods for controlling, by a hypervisor, access to physical resources
US8595361B2 (en) * 2009-02-10 2013-11-26 Novell, Inc. Virtual machine software license management
US9805041B2 (en) * 2009-05-04 2017-10-31 Open Invention Network, Llc Policy based layered filesystem management
US8914511B1 (en) * 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
US8498997B2 (en) * 2009-09-23 2013-07-30 Hitachi, Ltd. Server image migration
US11132237B2 (en) 2009-09-24 2021-09-28 Oracle International Corporation System and method for usage-based application licensing in a hypervisor virtual execution environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060046042A (ko) * 2004-06-30 2006-05-17 마이크로소프트 코포레이션 에뮬레이트된 컴퓨팅 환경을 이용하여 운영 체계 라이센스매출을 수금하기 위한 시스템 및 방법
US20070192329A1 (en) * 2006-01-24 2007-08-16 Citrix Systems, Inc. Methods and systems for executing, by a virtual machine, an application program requested by a client machine
US20090006862A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Provisioning a computing system for digital rights management
US20090193496A1 (en) * 2008-01-30 2009-07-30 Microsoft Corporation Detection of hardware-based virtual machine environment

Also Published As

Publication number Publication date
US20110072431A1 (en) 2011-03-24
JP2013506194A (ja) 2013-02-21
WO2011037720A1 (en) 2011-03-31
CN102511034A (zh) 2012-06-20
JP5627690B2 (ja) 2014-11-19
EP2480966A1 (en) 2012-08-01
US11132237B2 (en) 2021-09-28
EP2480966B1 (en) 2018-10-31
CN102511034B (zh) 2016-02-24
KR101697269B1 (ko) 2017-01-17

Similar Documents

Publication Publication Date Title
KR101697269B1 (ko) 하이퍼바이저 가상 실행 환경에서 사용-기반 애플리케이션 라이센싱을 위한 시스템 및 방법
Shahrad et al. Architectural implications of function-as-a-service computing
Sharma et al. Containers and virtual machines at scale: A comparative study
KR102421672B1 (ko) 멀티테넌트 애플리케이션 서버 환경에서 리소스 격리 및 소비를 위한 시스템 및 방법
US9619261B2 (en) Method and system for anticipating demand for a computational resource by containers running above guest operating systems within a distributed, virtualized computer system
US10013287B2 (en) System and method for structuring self-provisioning workloads deployed in virtualized data centers
Padala et al. Performance evaluation of virtualization technologies for server consolidation
Bryant et al. Kaleidoscope: cloud micro-elasticity via vm state coloring
US11182718B2 (en) Methods and systems to optimize server utilization for a virtual data center
US10277477B2 (en) Load response performance counters
US20110225467A1 (en) Starting virtual instances within a cloud computing environment
Beernaert et al. Automatic elasticity in openstack
Patros et al. Investigating resource interference and scaling on multitenant PaaS clouds
Bermejo et al. Virtual machine consolidation: a systematic review of its overhead influencing factors
Qiu et al. Is function-as-a-service a good fit for latency-critical services?
US11656888B2 (en) Performing an application snapshot using process virtual machine resources
El-Refaey Virtual machines provisioning and migration services
Schad Understanding and managing the performance variation and data growth in cloud computing
Zangrando et al. Synergy: a service for optimising the resource allocation in the cloud based environments
Dow Inciting cloud virtual machine reallocation with supervised machine learning and time series forecasts
Shaik et al. Rackspace cloud
Goiri Towards virtualized service providers
KR20160072977A (ko) 클라우드 컴퓨팅 시스템에서의 가상 머신 배치 방법
Mane Testbed platform: Amazon web services for library
Rajesh et al. I/O workload in virtualized data center using hypervisor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant