KR20130073449A - 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법 - Google Patents

상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법 Download PDF

Info

Publication number
KR20130073449A
KR20130073449A KR1020110141294A KR20110141294A KR20130073449A KR 20130073449 A KR20130073449 A KR 20130073449A KR 1020110141294 A KR1020110141294 A KR 1020110141294A KR 20110141294 A KR20110141294 A KR 20110141294A KR 20130073449 A KR20130073449 A KR 20130073449A
Authority
KR
South Korea
Prior art keywords
component
components
clusters
server
server instances
Prior art date
Application number
KR1020110141294A
Other languages
English (en)
Other versions
KR101696698B1 (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 한국전자통신연구원
Priority to KR1020110141294A priority Critical patent/KR101696698B1/ko
Priority to US13/619,654 priority patent/US20130166752A1/en
Publication of KR20130073449A publication Critical patent/KR20130073449A/ko
Application granted granted Critical
Publication of KR101696698B1 publication Critical patent/KR101696698B1/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
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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/468Specific access rights for resources, e.g. using capability register

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 실시 예에 따른 분산 컴퓨팅 시스템의 컴포넌트 분배 방법은,가용 서버 인스턴스의 수를 확인하는 단계, 상기 분산 컴퓨팅 시스템에서 로드되는 복수의 컴포넌트들 각각을 상호 의존 관계를 참조하여 가용 서버 인스턴스의 수만큼의 군집으로 분류하는 단계, 상기 분류된 군집들 각각에 대한 컴퓨팅 자원 요구량을 계산하는 단계, 상기 군집들 각각의 컴퓨팅 자원 요구량들을 적정 범위 이내로 조정하는 단계, 그리고 상기 컴퓨팅 자원 요구량들이 조정된 군집들을 상기 가용 서버 인스턴스들에 할당하는 단계를 포함한다.

Description

상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법{DISTRIBUTION AND MANAGEMENT METHOD OF COMPONENTS HAVING RELIANCE}
본 발명은 통신 네트워크에 관한 것으로, 좀더 구체적으로는 클라우드 및 데이터 센터 등의 분산 컴퓨팅 환경에서의 동적인 컴포넌트 분배 및 관리 방법에 관한 것이다.
신속하고 편리한 분산 컴퓨팅 환경 구축을 위해 분산 컴퓨팅(Cloud computing)의 이용이 빠르게 증가하고 있다. 한편, 기존 모듈을 이용해 신속하게 애플리케이션(Application)을 구현할 수 있는 모듈 또는 컴포넌트 기반 개발 기술도 빠르게 확산되고 있다. 이러한 기술의 예로, CORBA, SOA(Service Oriented Computing), SCA(Service Component Architecture), OSGi(Open Service Gateway initiative) 등이 있다.
분산 컴퓨팅 서비스의 최대의 장점은 별도의 자산 투자 없이도 ‘클라우드’를 통해 신속하게 컴퓨팅 용량을 조정할 수 있다는 것이다. 특히, 외부 사용자가 이용하는 웹 서비스와 같은 애플리케이션을 제공하는 경우, 사용 트래픽의 증감에 따라 컴퓨팅 자원에 대한 요구량이 수시로 변동할 수 있다. 따라서 분산 컴퓨팅 서비스는 더욱 효과적인 컴퓨팅 자원의 이용 방법이 될 것이다.
아마존(Amazon)의 EC2 등의 분산 컴퓨팅 서비스에서는, 사용 트래픽의 증감에 따라 탄력적으로 애플리케이션의 처리 능력을 조정하는 방법을 사용한다. 예를 들면, 분산 컴퓨팅 서비스는 애플리케이션에서 병목(Bottleneck)을 야기하는 컴포넌트가 적재된 가상 서버의 인스턴스 수를 동적으로 조정한다. 즉, 탄력적 로드 조정자(Elastic Load Balancer)가 등록된 서버 인스턴스 수에 맞게 사용 요구를 적절히 분산시키는 것이다. 분산 컴퓨팅 서비스를 제공하기 위하여 탄력적 로드 조정자는 서버 인스턴스의 사용 정도(Utilization) 등을 감시하며, 미리 애플리케이션이 탑재된 서버의 이미지를 저장해 두었다가 적합한 조건을 만족하면 새로운 서버 인스턴스를 자동으로 생성하거나 제거한다.
하지만, 이러한 '서버 이미지를 미리 설정한 후 서버 인스턴스 수를 동적으로 조정하여 로드를 분배'하여 애플리케이션의 처리 능력을 조정하는 방식은, 애플리케이션의 구성이 안정적으로 유지되는 경우에만 효과적이다. 제공하는 애플리케이션이 매우 많고 이들의 구성이 시시각각 바뀌는 경우, 애플리케이션을 분석하여 적절히 컴포넌트를 여러 개의 서버 이미지로 분산시켜 설정하는 것은 매우 어려운 작업이 된다.
이렇게 애플리케이션 구성이 빠르게 변화하는 경우는 광범위한 재사용 모듈 및 컴포넌트를 이용하여 애플리케이션을 제공하는 경우이다. 대표적으로 APaaS (Application Platform as a Service) 사업자를 예로 들 수 있다. APaaS 사업자는 광범위한 재사용 컴포넌트와 함께 응용 개발 및 실행 환경을 제공하여 다수의 사용자가 신속하게 자신만의 애플리케이션을 구축하게 해준다. 다양한 온라인 서비스를 제공하는 사업자가 재사용 모듈 및 컴포넌트를 이용하여 신규 서비스 도입 주기를 획기적으로 단축하는 경우에도 애플리케이션 구성이 매우 빠르게 변화하게 될 것이다. 위의 사업자들이 전세계적인 서비스를 하는 경우에는, 지역별로 다른 애플리케이션과 컴포넌트의 수요에 따라 서로 다른 서버 인스턴스의 구성이 한층 더 요구될 것이다.
또한, 애플리케이션의 빠른 변화와 함께 재사용 모듈 및 컴포넌트의 도입, 변경, 제거 등이 빠르게 일어나는 경우에는 '서버 이미지를 미리 설정한 후 서버 인스턴스 수를 조정하여 로드를 분배'하는 방법은 관리 비용의 증가를 초래할 수 있다. 이러한 경우에, 애플리케이션과 모듈 및 컴포넌트의 종류가 증가할수록 관리 비용을 지속적으로 증가시킬 것이다. 따라서, 다수의 애플리케이션 및 컴포넌트의 트래픽의 증감에 따라 해당 애플리케이션 및 컴포넌트를 다수의 서버에 자동적으로 프로비저닝(Provisioning)하고 관련된 로드를 분배하는 방법이 필요하다.
본 발명의 목적은 상술한 문제점을 해결하기 위하여, 트래픽의 증감에 따라 상호 의존 관계를 가지는 애플리케이션과 컴포넌트를 복수의 서버 인스턴스들에 동적으로 프로비저닝하는 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 분산 컴퓨팅 시스템의 컴포넌트 분배 방법은,가용 서버 인스턴스의 수를 확인하는 단계, 상기 분산 컴퓨팅 시스템에서 로드되는 복수의 컴포넌트들 각각을 상호 의존 관계를 참조하여 가용 서버 인스턴스의 수만큼의 군집으로 분류하는 단계, 상기 분류된 군집들 각각에 대한 컴퓨팅 자원 요구량을 계산하는 단계, 상기 군집들 각각의 컴퓨팅 자원 요구량들을 적정 범위 이내로 조정하는 단계, 그리고 상기 컴퓨팅 자원 요구량들이 조정된 군집들을 상기 가용 서버 인스턴스들에 할당하는 단계를 포함한다.
본 발명의 실시 예에 따른 분산 컴퓨팅 시스템의 컴포넌트 관리 방법은, 컴포넌트의 재분배 필요성을 판단하는 단계, 컴포넌트 재분배가 필요한 경우, 어느 하나의 컴포넌트에 대해 의존 관계에 있는 컴포넌트의 수가 더 많이 적재되어 있는 서버 인스턴스에 상기 어느 하나의 컴포넌트를 할당하는 단계, 그리고 상기 서버 인스턴스의 컴퓨팅 자원 요구량 또는 사용량을 참조하여 상기 서버 인스턴스에 대한 컴포넌트들을 조정하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 본 발명의 구성에 따르면, 컴포넌트 기반 애플리케이션을 컴포넌트 간의 의존 관계와 컴포넌트의 이용량에 따라 다수의 서버 인스턴스로 동적으로 배분하여 프로비저닝할 수 있다. 이러한 기능에 의하여 컴포넌트 및 애플리케이션의 종류가 다수인 경우 발생할 수 있는 서버 구성 및 관리 노력을 현저하게 줄일 수 있다.
또한, 본 발명의 실시 예에 따르면, 컴포넌트 간의 의존 관계를 고려하지 않는 동적 프로비저닝 방법에 비해 불필요한 컴포넌트 설치 및 서버 인스턴스 간의 호출을 최소화함으로써, 컴포넌트의 프로비저닝 및 실행 효율성이 증가될 수 있다. 더불어, 본 발명의 실시 예에 따르면, 컴포넌트의 재배분의 신속성을 증대하여 전체 시스템의 성능 향상을 도모할 수 있다.
도 1은 애플리케이션과 컴포넌트 간의 의존 관계를 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 프로비저닝 관리 방법을 적용한 분산 컴퓨팅 시스템을 간략히 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 프로비저닝 관리자의 컴포넌트 재분배 방법을 보여주는 순서도이다.
도 4는 신규 컴포넌트가 설치되는 경우의 컴포넌트 재분배 방법을 간략히 보여주는 순서도이다.
도 5는 서버 인스턴스에 적재된 특정 컴포넌트의 제거에 따른 컴포넌트 재분배 방법을 보여주는 순서도이다.
도 6은 특정 컴포넌트에 대한 자원 사용 요구량이 증가 또는 감소하는 경우의 컴포넌트 재분배 방법을 보여주는 순서도이다.
도 7은 전체 컴포넌트들에 의한 자원 사용량이 증가하게 되는 경우에 수행되는 컴포넌트 재분배 방법을 보여주는 순서도이다.
앞의 일반적인 설명 및 다음의 상세한 설명들은 모두 청구된 발명의 부가적인 설명을 제공하기 위한 예시적인 것이다. 그러므로 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 여기서 소개되는 실시 예는 개시된 내용이 철저하고 완전해 질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 부분이 어떤 구성 요소를 포함한다고 언급되는 경우에, 이는 그 외의 다른 구성요소를 더 포함할 수도 있다는 것을 의미한다. 또한, 여기에서 설명되고 예시되는 각 실시 예는 그것의 상보적인 실시 예도 포함한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 애플리케이션과 모듈 간의 의존 관계를 보여주는 도면이다. 도 1을 참조하면, 복수의 애플리케이션들(100)과 복수의 모듈들(200) 간의 상호 의존 관계가 화살표로 도시되어 있다. 복수의 애플리케이션(100)에는 예시적으로 4개의 애플리케이션들(110~140)이 도시되어 있다. 그리고 복수의 모듈들(200)에는 예시적으로 9개의 모듈들(210~290)이 도시되어 있다.
제 1 서버 인스턴스(1st Server Instance, 미도시됨)에 제 2 애플리케이션(120)과 의존 관계를 가지는 모듈들이 적재(Load)되어 있다고 가정하기로 한다. 그리고 제 2 서버 인스턴스(2nd Server Instance, 미도시됨)에 제 4 애플리케이션(140)과 의존 관계를 가지는 모듈들이 적재(Load)돼 있다고 가정하기로 한다. 이때 제 1 애플리케이션(110)이 새롭게 적재(Load)되어야 한다면, 제 1 서버 인스턴스(1st Server Instnace)에 적재하는 것이 바람직하다. 왜냐하면, 제 1 애플리케이션(110)의 프로비저닝시 필요한 모듈의 적재 시간을 줄일 수 있기 때문이다. 또한, 제 1 애플리케이션(110)의 실행 시에도 관련 모듈들이 동일 서버 인스턴스에 있어 실행 시간도 줄어들 것이다. 왜냐하면, 제 1 서버 인스턴스에는 제 2 애플리케이션(120)과 의존 관계에 있는 모듈 2(220), 모듈 4(240)를 이미 적재되어 있기 때문이다.
제 1 서버 인스턴스에 제 1 애플리케이션(110)을 적재하게 되면, 별도의 추가적인 모듈들의 적재가 불필요하다. 하지만, 제 4 애플리케이션(140)을 제 1 서버 인스턴스에 적재하기 위해서는 제 4 애플리케이션(140)과, 제 4 애플리케이션(140)과 의존 관계에 있는 모듈들(모듈 3, 모듈 6, 모듈 9)의 적재가 필요하다. 왜냐하면, 제 4 애플리케이션(140)은 이미 제 1 서버 인스턴스에 적재된 모듈 2(220)와 모듈 4(240)를 사용하지 않기 때문이다.
따라서, 애플리케이션과 모듈들 간의 의존 관계를 배제한 상태에서 동적으로 프로비저닝하는 것이 아니라, 애플리케이션과 모듈들의 의존 관계를 고려하여 효과적으로 프로비저닝하고 로드를 분배하는 방법이 필요하다. 더불어, 모듈 또는 컴포넌트 기반의 개발 기술의 발전은 애플리케이션 및 모듈 간의 의존 관계를 증가시키고 있다. 이러한 의존 관계는 애플리케이션의 프로비저닝과 실행 시의 성능에 매우 중요한 인자가 될 수 있다.
이상에서는 애플리케이션(Application)과 모듈(Module)을 구분하여 설명하였다. 하지만, 하나의 애플리케이션은 특정 기능의 최소 수행 단위인 적어도 하나의 모듈로 구성될 수 있다. 따라서, 이하에서는 모듈이나 애플리케이션을 특정 기능에 대응하는 프로그램의 단위인 컴포넌트(Component)로 지칭하기로 한다.
도 2는 본 발명의 실시 예에 따른 프로비저닝 방법을 적용한 분산 컴퓨팅 시스템을 간략히 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 프로비저닝 방법을 적용한 분산 컴퓨팅 시스템(500)은, 로드 분배자(510), 컴포넌트 분배표(520), 프로비저닝 관리자(530), 컴포넌트 저장소(540), 그리고 서버 가상 클러스터(600)를 포함한다.
로드 분배자(510)는 사용자들(410, 420)로부터의 요청에 응답하여 애플리케이션 또는 컴포넌트의 최적의 서버 인스턴스로 라우팅한다. 로드 분배자(510)는 사용자들(410, 420)에 의해서 요청된 작업을 수행하기 위하여, 컴포넌트 분배표(520)를 참조하여 서버 가상 클러스터(600)에서 최적 서버 인스턴스를 선택할 것이다.
컴포넌트 분배표(520)는 애플리케이션이나 컴포넌트의 분배 상태를 저장한다. 컴포넌트 분배표(520)는 프로비저닝 관리자(530)에 의해서 업데이트될 수 있다. 프로비저닝 관리자(530)에 의해서 컴포넌트들의 분배 상태가 변경되면, 분배 상태는 컴포넌트 분배표(520)에 최종적으로 기입된다. 그러면, 로드 분배자(510)는 업데이트된 컴포넌트 분배표(520)를 참조하여 프로비저닝 에이전트들(611, 621, 631)을 제어하게 될 것이다.
프로비저닝 관리자(530)는 컴포넌트들(애플리케이션 또는 모듈) 간의 의존 관계와 트래픽을 고려하여 서버 인스턴스의 수를 결정한다. 그리고 프로비저닝 관리자(530)는 결정된 서버 인스턴스들(610, 620, 630) 각각에 컴포넌트들을 어떻게 배치할 것인지를 결정한다. 프로비저닝 관리자(530)는 서버 인스턴스들(610, 620, 630) 각각에 할당된 컴포넌트들에 대한 할당 정보를 컴포넌트 분배표(520)에 입력한다.
컴포넌트 저장소(540)는 프로비저닝 관리자(530)의 제어에 따라 모든 컴포넌트(애플리케이션 또는 모듈)의 이미지를 저장한다. 새로이 추가되는 신규 컴포넌트는 우선적으로 컴포넌트 저장소(540)에 저장된다. 그리고, 신규 컴포넌트의 추가 시점 또는 처음 실행 시점에 신규 컴포넌트가 할당된 서버 인스턴스에 적재될 수 있다. 컴포넌트 저장소(540)는 프로비저닝 관리자(530)의 제어에 따라 컴포넌트를 삭제할 수도 있다.
서버 가상 클러스터(600)에는 복수의 서버 인스턴스들(610, 620, 630)과 각 서버 인스턴스들에 대응하는 프로비저닝 에이전트들(611, 621, 631)이 포함된다. 그리고 서버 가상 클러스터(600)에는 각각의 서버 인스턴스들(610, 620, 630)에 장착되는 컴포넌트들(612, 613, 622, 623, 642, 643)이 포함된다. 여기서, 각 서버 인스턴스들에 대응하는 프로비저닝 에이전트들(611, 621, 631)은 프로비저닝 관리자(530)의 제어에 따라 각 서버 인스턴스들에 컴포넌트들을 설치하거나 제거할 수 있다. 프로비저닝 에이전트들(611, 621, 631)은 대응하는 서버 인스턴스에 실행 요청된 컴포넌트가 존재하지 않을 경우, 컴포넌트 저장소(540)에서 다운로드 하여 설치 및 실행할 수 있다. 또한, 프로비저닝 에이전트들(611, 621, 631)은 장시간 사용되지 않는 컴포넌트들은 유휴(Idle) 상태로 설정하거나, 대응하는 서버 인스턴스에서 제거할 수 있다. 서버 인스턴스들(610, 620, 630)에는 컴포넌트(애플리케이션이나 모듈)가 실행될 수 있는 플랫폼과 운영 체제(OS)가 장착된다.
여기서, 프로비저닝 관리자(530)는 분산 컴퓨팅 시스템(500)에서 가장 중요한 역할을 수행한다. 프로비저닝 관리자(530)는 컴포넌트가 새롭게 도입되거나 제거될 때, 서버 인스턴스들(610, 620, 630)에 적절히 컴포넌트들을 재분배한다. 그리고 프로비저닝 관리자(530)는 각 컴포넌트들의 트래픽 증감에 따라 서버 인스턴스들(610, 620, 630)에 컴포넌트들을 적절히 재분배할 수 있어야 한다. 이러한 컴포넌트들의 재분배에 의해서 분산 컴퓨팅 시스템(500)의 효율이 증대될 수 있다. 본 발명의 실시 예에 따른 프로비저닝 관리자(530)에 의한 컴포넌트 재분배 방법은 다음의 표 1에 기술된 조건들을 충족시켜야 한다.
① 컴포넌트들 간의 의존 관계를 파악하여 의존 관계가 유사한 컴포넌트 등을 동일 서버 인스턴스에서 구현시켜야 한다. 이를 통해 신규 컴포넌트의 프로비저닝 시간을 단축하고 컴포넌트 간 호출 시간을 단축할 수 있다.
② 의존 관계가 유사한 컴포넌트들이라도 이용량이 많아 동일 서버 인스턴스에 프로비저닝 되었을 때 성능 저하가 우려될 수 있다. 그럴 때에는 의존 관계가 유사한 컴포넌트라 하더라도 다른 서버 인스턴스로 분산할 수 있어야 한다.
③ 컴포넌트 구성의 변화나 트래픽의 변화에 따라 기존 또는 신규 서버 인스턴스에 컴포넌트에 대한 재분배가 자율적으로 이루어져 트래픽의 분산이 용이하게 이루어질 수 있어야 한다.
④ 기존 또는 신규 서버 인스턴스에 컴포넌트를 재분배가 이루어질 때, 컴포넌트의 프로비저닝을 최소화하여 서버 인스턴스의 효율성을 증대시킬 수 있어야 한다.
본 발명의 실시 예에 따른 프로비저닝 관리자(530)는 상술한 조건들을 모두 충족할 수 있는 컴포넌트의 재분배 방식을 사용한다. 따라서, 클라우드 컴퓨터 시스템의 성능을 효율적으로 관리할 수 있다.
도 3은 본 발명의 실시 예에 따른 컴포넌트 재분배 방법을 보여주는 순서도이다. 도 3을 참조하여, 본 발명의 실시 예에 따른 컴포넌트 재분배 방법이 순차적으로 설명될 것이다.
단계 S10에서, 먼저 가용 서버 인스턴스의 수(M)가 확인된다. 프로비저닝 관리자(530, 도 2 참조)는 전체 서버 인스턴스들 중에서 사용율(Utilization)에 따라 가용 서버 인스턴스의 수(M)를 조정한다. 가용 서버 인스턴스의 수(M)는 미리 정해진 비율에 따라서 자동으로 조정될 수 있다.
단계 S20에서, 프로비저닝 관리자(530)는 전체 컴포넌트들의 의존 관계를 고려하여 가용 서버 인스턴스의 수(M)만큼의 그룹으로 분류한다. 즉, 프로비저닝 관리자(530)는 의존 관계의 유사성에 따라서 전체 컴포넌트들을 가용 서버 인스턴스의 수(M)에 해당하는 군집(Clusters)으로 분류한다.
의존 관계의 유사성을 판단하는 방법은 예시적으로 다음과 같다. 전체 컴포넌트 수가 w개가 존재할 경우, 컴포넌트 간의 유사성을 수치화하기 위해 임의 컴포넌트를 모든 컴포넌트와의 의존 관계 여부에 따라 '1'과 '0'으로 표현하는 w차원 좌표로 표현한다. 그리고 각 좌표 간의 거리를 통해 유사성을 수치화할 수 있다. 각 컴포넌트 간의 거리를 이용해 M개의 군집으로 나누기 위해 가까운 거리의 점을 군집시키는 K-평균 알고리즘(K-means algorithm) 등을 이용할 수 있다.
단계 S30에서, M개의 군집이 이루어지면, 프로비저닝 관리자(530)는 각 군집별로 요구되는 총 컴퓨팅 자원 요구량을 계산한다. 프로비저닝 관리자(530)에 의해서, 일정 시간 동안 수집된 각 컴포넌트별 컴퓨팅 자원 요구량(CPU 사용량, 메모리 사용량, 네트워크 대역폭 사용량 등) 데이터를 이용하여 각 군집 별 컴퓨팅 자원 요구량이 계산될 수 있다.
단계 S40에서, 군집들 중에서 총 컴퓨팅 자원 요구량이 서버 인스턴스가 제공할 수 있는 컴퓨팅 용량에 비해 너무 적거나 상대적으로 너무 큰 경우가 있는지를 판단한다. 만일, 군집들 중에서 총 컴퓨팅 자원 요구량이 적정한 값인 경우에는 절차는 군집을 확정하기 위한 단계 S50으로 이동한다. 하지만, 군집들 중에서 총 컴퓨팅 자원 요구량이 적정치의 하한선에 미달하거나, 상한선을 초과하는 것들이 존재하는 경우에는, 절차는 이들 군집들에 대한 컴포넌트를 재분배하기 위한 단계 S45로 이동한다.
단계 S45에서는, 총 컴퓨팅 자원 요구량이 적정선을 벗어난 군집들에 대한 컴포넌트 재분배 동작이 수행된다. 이 경우 컴포넌트를 해당 군집에서 다른 군집으로 재배치해야 한다. 이러한 재배치를 위한 방법으로 단계 S45-1 내지 단계 S45-3으로 기술된 휴리스틱((Heuristic)한 알고리즘을 이용할 수 있다.
단계 S45-1에서, 총 컴퓨팅 자원 요구량이 너무 적어, 적정치의 하한선에 미달하는 경우에는 해당 군집의 중심(컴포넌트를 w 차원 좌표로 나타냈으므로 군집의 중심을 계산할 수 있다)에서 가장 가까운 다른 군집의 컴포넌트를 차례로 포함시킨다. 그래서 총 컴퓨팅 자원 요구량을 적정치의 하한선 이상으로 증가시킨다.
단계 S45-2에서, 총 컴퓨팅 자원 요구량이 적정치의 상한선을 초과하는 경우에는 해당 군집 컴포넌트 중 군집 중심에서 가장 멀리 떨어져 있는 컴포넌트를 다른 군집들 중 군집 중심이 가까운 군집에 포함시킨다. 그러면, 해당 군집의 총 컴퓨팅 자원 요구량이 감소하여 적정치의 상한선 이하로 낮아질 것이다.
단계 S45-1, 또는 단계 S45-2에 의해서 총 컴퓨팅 자원 요구량이 재조정된 이후 절차는 변화된 각 군집의 중심을 다시 계산한 후 K-평균 알고리즘 등을 다시 이용하여 M 개로 재군집하기 위한 단계 S30으로 이동한다. 이렇게 단계 S30, S40, 그리고 S45 루프를 통해서 M개의 군집들 각각의 총 컴퓨팅 자원 요구량은 적정한 레벨로 조정될 수 있다.
단계 S50에서, 모든 M 개의 컴포넌트 군집에 의한 서버 인스턴스에서의 컴퓨팅 자원 사용량이 적정치에 도달하게 되면 각 서버 인스턴스들에 할당되는 컴포넌트 군집이 확정된다.
단계 S60에서, 각 컴포넌트 군집 별로 기존 서버 인스턴스와의 차이를 분석한다. 각 컴포넌트 군집 별로 기존 서버 인스턴스에 적재되어 있는 컴포넌트 구성과 비교하게 될 것이다.
단계 S70에서, 서버 인스턴스에 기존에 적재되어 있는 컴포넌트 구성과 차이가 가장 적은 서버 인스턴스를 해당 컴포넌트 군집의 초기 서버 인스턴스로 결정한다. 군집과 서버 인스턴스의 차이를 수치화하는 가장 단순한 방법은 군집에 포함된 컴포넌트를 가장 많이 포함한 서버 인스턴스를 선택하고, 동률인 경우 필요하지 않은 컴포넌트를 가장 적게 포함하고 있는 서버 인스턴트를 선택하는 방법을 이용할 수도 있다.
단계 S80에서, 아무 컴포넌트 군집도 선택하지 않은 서버 인스턴스가 있으면 해당 서버 인스턴스를 프로비저닝 관리자(530)를 통해 제거하고, 다수의 컴포넌트 군집이 하나의 서버 인스턴스를 초기 서버 인스턴스로 선택한 경우는 해당 서버 인스턴스를 컴포넌트 군집 수만큼 복사하여 배당한다.
단계 S90에서, 컴포넌트 군집의 모든 컴포넌트를 컴포넌트 군집의 초기 서버 인스터스로 분배되도록 컴포넌트 분배표(520, 도 2 참조)를 변경하여 저장한다.
도 4 내지 도 7은 운용 중인 컴포넌트들의 구성 변경 또는 이용 트래픽의 변경에 따른 컴포넌트의 재분배 방법을 보여주는 순서도들이다. 도 4는 신규 컴포넌트가 설치되는 경우, 도 5는 컴포넌트가 제거되는 경우, 도 6은 특정 컴포넌트에 대한 자원 요구량의 증감이 발생하는 경우, 그리고 도 7은 전체 컴포넌트들의 자원 요구량 증감에 따른 컴포넌트 재분배 방법을 각각 보여준다.
도 4는 신규 컴포넌트가 설치되는 경우의 컴포넌트 재분배 방법을 간략히 보여주는 순서도이다. 도 4를 참조하면, 신규 컴포넌트의 설치 요청이 발생하면 서버 인스턴스들 각각에 설치된 컴포넌트들이 재구성될 수 있다.
단계 S110에서, 사용자(410, 420)의 요청이나 컴퓨팅 환경의 변동에 따라 새로운 컴포넌트에 대한 실행이 필요한 상황에 직면할 수 있다. 이때, 프로비저닝 관리자(530)는 신규 컴포넌트의 설치 요청을 수신할 수 있다.
단계 S120에서, 프로비저닝 관리자(530)는 설치 요청된 신규 컴포넌트와 이미 각 서버 인스턴스에 적재(Load)된 기존 컴포넌트들과의 의존 관계를 파악한다. 그리고 이러한 의존 관계를 참조하여, 프로비저닝 관리자(530)는 서버 인스턴스들 중에서 신규 컴포넌트를 설치하기 위한 최적의 서버 인스턴스를 결정한다. 예를 들면, 프로비저닝 관리자(530)는 신규 컴포넌트가 필요로 하는 컴포넌트를 가장 많이 보유하고 있는 서버 인스턴스를 신규 컴포넌트를 설치하기 위한 서버 인스턴스로 결정할 수 있다. 이후, 프로비저닝 관리자(530)는 선택된 서버 인스턴스와 신규 컴포넌트의 맵핑 관계를 컴포넌트 분배표(520)에 기입한다.
단계 S130에서, 프로비저닝 관리자(530)는 신규 컴포넌트의 설치에 따른 분산 컴퓨팅 시스템의 컴포넌트 재분배 필요성이 있는지 판단한다. 즉, 프로비저닝 관리자(530)는 신규 컴포넌트의 설치에 따라 총 컴퓨팅 자원 요구량이 적정치의 상한선을 초과한 서버 인스턴스가 존재하는지 판단할 수 있다. 모든 서버 인스턴스들 각각의 컴퓨팅 자원 요구량이 적정선 이내인 경우, 절차는 단계 S150으로 이동한다. 반면, 신규 컴포넌트의 설치에 따라 총 컴퓨팅 자원 요구량이 적정치의 상한선을 초과한 서버 인스턴스가 존재하는 경우, 절차는 컴포넌트 재분배를 위한 단계 S140으로 이동한다.
단계 S140에서, 신규 컴포넌트에 의하여 군집들 중에서 총 컴퓨팅 자원 요구량이 상한선을 초과하는 것들이 존재하기 때문에 효과적인 자원 배분을 위한 컴포넌트 재분배가 이루어진다. 컴포넌트 재분배는 앞서 도 3에서 설명된 단계들(S30, S40, S45 루프)의 반복을 통해서 수행될 수 있다. 컴포넌트의 재분배를 통해서, 신규 컴포넌트를 포함한 모든 군집들 각각의 총 컴퓨팅 자원 요구량이 적정한 값으로 조정될 수 있다.
단계 S150에서, 프로비저닝 관리자(530)는 신규 컴포넌트를 컴포넌트 저장소(540)에 우선적으로 적재(Load)한다. 컴포넌트 저장소(540)에 임시적으로 적재된 신규 컴포넌트가 해당 서버 인스턴스에 적재되는 것은 신규 컴포넌트에 대한 실행 요청이 처음 발생하는 시점이 될 수 있다. 그러나, 신규 컴포넌트의 프로비저닝 시 신규 컴포넌트와 의존 관계에 있는 컴포넌트들을 함께 프로비저닝해야 하는 경우에는 서버 인스턴스에 미리 프로비저닝 될 수 있다.
도 5는 서버 인스턴스에 적재된 특정 컴포넌트의 제거에 따른 컴포넌트 재분배 방법을 보여주는 순서도이다. 도 5를 참조하면, 특정 컴포넌트의 삭제 요청이 발생하면 서버 인스턴스들 각각에 설치된 컴포넌트들의 재구성이 수행될 수 있다.
단계 S210에서, 사용자(410, 420)의 요청이나 컴퓨팅의 환경의 변동에 따라 특정 애플리케이션이나 컴포넌트의 삭제가 필요한 상황에 직면할 수 있다. 이때, 프로비저닝 관리자(530)는 특정 컴포넌트에 대한 삭제 요청을 수신할 수 있다.
단계 S220에서, 프로비저닝 관리자(530)는 삭제 요청된 컴포넌트를 컴포넌트 저장소(540)에서 제거한다. 프로비저닝 관리자(530)는 삭제 요청된 컴포넌트가 적재된 서버 인스턴스의 프로비저닝 에이전트(611, 621, 631 중 어느 하나)에게 삭제되는 컴포넌트를 알려준다. 그러면, 프로비저닝 관리자(530)로부터의 지시에 따라 프로비저닝 에이전트(611, 621, 631 중 어느 하나)는 삭제되는 컴포넌트를 해당 서버 인스턴스에서 삭제한다. 하지만, 삭제되는 컴포넌트를 사용중인 다른 컴포넌트가 존재할 수 있다. 이런 경우에는 해당 컴포넌트를 삭제하기 전에 프로비저닝 에이전트(611, 621, 631 중 어느 하나)는 일정 시간의 유예기간을 둘 수 있다. 그리고, 프로비저닝 에이전트는 삭제가 결정된 컴포넌트와 의존 관계에 있는 컴포넌트를 안정적으로 중지시킨 후에 삭제 결정된 컴포넌트를 대응하는 서버 인스턴스에서 제거할 수 있다.
단계 S230에서, 프로비저닝 관리자(530)는 컴포넌트의 삭제에 따른 분산 컴퓨팅 시스템의 컴포넌트 재분배 필요성이 있는지 판단한다. 즉, 프로비저닝 관리자(530)는 컴포넌트의 삭제에 따라 총 컴퓨팅 자원 요구량이 적정치의 하한선에 미달하는 서버 인스턴스가 존재하는지 검출할 수 있다. 모든 서버 인스턴스들 각각의 컴퓨팅 자원 요구량이 적정선 이내인 경우, 컴포넌트의 삭제 절차는 종료된다. 반면, 컴포넌트의 삭제에 따라 총 컴퓨팅 자원 요구량이 적정치의 하한선에 미달하는 서버 인스턴스가 존재하는 경우, 절차는 컴포넌트 재분배를 위한 단계 S240으로 이동한다.
단계 S240에서, 컴포넌트의 삭제에 의하여 군집들 중에서 총 컴퓨팅 자원 요구량이 하한선에 미달하는 것들이 존재하기 때문에 효과적인 자원 배분을 위한 컴포넌트 재분배가 이루어진다. 컴포넌트 재분배는 앞서 도 3에서 설명된 단계들 (S30, S40, S45 루프)의 반복을 통해서 수행될 수 있다. 컴포넌트의 재분배를 통해서, 모든 군집들 각각의 총 컴퓨팅 자원 요구량이 적정한 값으로 조정될 수 있다.
도 6은 특정 컴포넌트에 대한 자원 사용 요구량이 증가 또는 감소하는 경우의 컴포넌트 재분배 방법을 보여주는 순서도이다. 도 6을 참조하면, 특정 컴포넌트에 대한 컴퓨팅 자원의 요구량이 변경되는 경우에 컴포넌트들에 대한 재분배 필요성이 발생한다.
단계 S310에서, 프로비저닝 관리자(530)는 서버 인스턴스들(610, 620, 630)을 모니터링한다. 프로비저닝 관리자(530)는 서버 인스턴스들(610, 620, 630) 각각에서 구동되는 애플리케이션이나 컴포넌트들을 모니터링하여 각 군집들에 의한 컴퓨팅 자원 사용량을 실시간으로 감시할 수 있다.
단계 S320에서, 프로비저닝 관리자(530)는 서버 인스턴스들(610, 620, 630) 각각이 사용하고 있는 컴퓨팅 자원의 사용량이 적정치의 하한선에 미달하거나, 상한선을 초과하지를 판단한다. 만일, 서버 인스턴스들(610, 620, 630) 중 어느 하나라도 컴퓨팅 자원의 사용량이 적정치를 벗어나는 것으로 판단되면 절차는 컴포넌트를 재분배하는 단계 S330으로 이동한다. 하지만, 서버 인스턴스들(610, 620, 630) 모두의 컴퓨팅 자원의 사용량이 적정 범위 이내인 경우, 절차는 서버 인스턴스들(610, 620, 630)을 지속적으로 모니터링하는 단계 S310으로 복귀한다.
단계 S330에서, 적어도 하나의 서버 인스턴스에서 발생하는 컴퓨팅 자원 사용량의 변화에 대응하기 위해 프로비저닝 관리자(530)는 서버 인스턴스들(610, 620, 630) 각각에 로드된 컴포넌트들에 대한 재분배 동작을 수행한다. 어느 하나의 서버 인스턴스에서 자원 사용량이 급격히 증가하거나, 감소하는 경우에는 서버 인스턴스들(610, 620, 630)의 자원 사용량을 평준화하기 위한 컴포넌트 재분배가 수행된다. 컴포넌트 재분배는 앞서 도 3에서 설명된 단계들(S30, S40, S45 루프)의 반복을 통해서 수행될 수 있다. 컴포넌트의 재분배를 통해서, 문제를 야기한 서버 인스턴스의 자원 이용률이 안정화될 것이다.
도 7은 전체 컴포넌트들에 의한 자원 사용량이 증가하게 되는 경우에 수행되는 컴포넌트 재분배 방법을 보여주는 순서도이다. 도 7을 참조하면, 특정 컴포넌트의 자원 요구량의 변화가 아니라 전체 컴포넌트들에 의한 자원 요구량이 적정치를 벗어나는 경우에도 본 발명의 컴포넌트 재분배 방법을 적용할 수 있다. 이러한 현상은 컴포넌트들 각각의 자원 사용량 변화는 크지 않더라도, 컴포넌트들 각각에서 발생하는 자원 사용량의 변화 합계는 상대적으로 큰 경우이다. 그리고 이러한 자원 사용량의 변화 합계의 크기가 전체 분산 컴퓨팅 성능에 영향을 미칠 수 있다.
단계 S410에서, 프로비저닝 관리자(530)는 전체 서버 인스턴스들(610, 620, 630)을 모니터링한다. 프로비저닝 관리자(530)는 서버 인스턴스들(610, 620, 630)에서 사용되는 컴퓨팅 자원의 총 사용량을 모니터링한다.
단계 S420에서, 프로비저닝 관리자(530)는 전체 서버 인스턴스들(610, 620, 630)이 사용하는 컴퓨팅 자원의 총 사용량이 적정 범위 이내인지를 판단한다. 만일, 전체 서버 인스턴스들(610, 620, 630)이 사용하는 컴퓨팅 자원의 총 사용량이 적정 범위에 해당하는 경우에는, 지속적으로 서버 인스턴스들(610, 620, 610)을 모니터링하기 위한 단계 S410으로 복귀한다. 반면, 전체 서버 인스턴스들(610, 620, 630)이 사용하는 컴퓨팅 자원의 총 사용량이 적정 범위를 벗어나 서버 인스턴스의 수를 조정해야 하는 경우, 절차는 단계 S430으로 이동한다.
단계 S430에서, 프로비저닝 관리자(530)는 서버 인스턴스의 수를 조정한다. 예를 들면, 전체 서버 인스턴스들(610, 620, 630)이 사용하는 컴퓨팅 자원의 총 사용량이 적정치의 상한선을 초과하는 경우에는 새로운 서버 인스턴스를 추가하게 될 것이다. 반면, 전체 서버 인스턴스들(610, 620, 630)이 사용하는 컴퓨팅 자원의 총 사용량이 적정치의 하한선 미만인 경우에는, 어느 하나의 서버 인스턴스를 제거할 수 있다.
단계 S440에서, 조정된 서버 인스턴스들에 기반한 새로운 컴포넌트 구성이 이루어진다. 프로비저닝 관리자(530)는 조정된 서버 인스턴스들 각각에 로드된 컴포넌트들에 대한 재분배를 수행한다. 컴포넌트 재분배는 앞서 도 3에서 설명된 단계들 S30, S40, S45 루프의 반복을 통해서 수행될 수 있다. 컴포넌트의 재분배를 통해서, 변경된 전체 서버 인스턴스에서 해당 컴포넌트들을 구동하더라도 전체 서버 인스턴스들 총 자원 이용률은 안정화될 수 있다. 컴포넌트들에 대한 재분배가 완료되면, 절차는 변경된 수의 전체 서버 인스턴스들에 대한 이용율을 모니터링하기 위한 단계 S410으로 이동한다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
한편, 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.

Claims (14)

  1. 분산 컴퓨팅 시스템의 컴포넌트 분배 방법에 있어서:
    가용 서버 인스턴스의 수를 확인하는 단계;
    상기 분산 컴퓨팅 시스템에서 적재되는 복수의 컴포넌트들 각각을 상호간 의존 관계의 유무를 참조하여 상기 가용 서버 인스턴스의 수만큼의 군집으로 분류하는 단계;
    상기 분류된 군집들 각각에 대한 컴퓨팅 자원 요구량을 계산하는 단계;
    상기 군집들 각각의 컴퓨팅 자원 요구량들을 적정 범위 이내로 조정하는 단계; 그리고
    상기 컴퓨팅 자원 요구량들이 조정된 군집들을 상기 가용 서버 인스턴스들에 할당하는 단계를 포함하는 컴포넌트 분배 방법.
  2. 제 1 항에 있어서,
    상기 복수의 컴포넌트는 애플리케이션 또는 모듈을 포함하는 컴포넌트 분배 방법.
  3. 제 1 항에 있어서,
    상기 분류하는 단계는,
    상기 복수의 컴포넌트들 각각에 대응하는 좌표를 구성하고, 어느 하나의 컴포넌트와 다른 컴포넌트들 간의 의존 관계의 존재 여부에 따라 '0' 또는 '1'을 할당하여 상기 의존 관계를 수치화하는 단계; 그리고
    상기 복수의 컴포넌트들 간의 논리적 거리를 이용하여, 상기 복수의 컴포넌트들을 상기 가용 서버 인스턴스의 수에 대응하는 군집으로 구분하는 단계를 포함하는 컴포넌트 분배 방법.
  4. 제 3 항에 있어서,
    상기 복수의 컴포넌트들은 상기 논리적 거리가 가까운 점을 군집시키는 K-평균 알고리즘(K-means algorithm)에 따라 구분되는 컴포넌트 분배 방법.
  5. 제 1 항에 있어서,
    상기 군집들 각각의 컴퓨팅 자원 요구량들을 적정 범위 이내로 조정하는 단계에서, 상기 컴퓨팅 자원 요구량이 적정 범위의 하한선에 미달되는 군집에는 이웃하는 군집의 컴포넌트를 포함시키는 컴포넌트 분배 방법.
  6. 제 5 항에 있어서,
    상기 컴퓨팅 자원 요구량이 상기 적정 범위의 상한선을 초과하는 군집에 대해서는, 상기 초과하는 군집의 중심에서 가장 먼 컴포넌트를 이웃하는 다른 군집에 포함시키는 컴포넌트 분배 방법.
  7. 제 1 항에 있어서,
    상기 가용 서버 인스턴스들에 할당하는 단계는:
    상기 군집들 각각의 컴포넌트들과 상기 가용 서버 인스턴스들 각각에 적재된 컴포넌트들을 비교하는 단계; 그리고
    상기 가용 서버 인스턴스들 중에서 가용 서버 인스턴스에 적재된 컴포넌트와 동일한 컴포넌트를 많이 포함하는 군집을 상기 가용 서버 인스턴스에 할당하는 단계를 포함하는 컴포넌트 분배 방법.
  8. 제 7 항에 있어서,
    상기 가용 서버 인스턴스들에 할당하는 단계의 실행 결과,
    할당되는 군집이 존재하지 않는 서버 인스턴스는 제거하고;
    복수의 군집이 할당되는 서버 인스턴스가 존재하는 경우에는 상기 해당 서버 인스턴스를 상기 할당되는 군집의 수만큼 복사하여 할당하는 컴포넌트 분배 방법.
  9. 제 8 항에 있어서,
    상기 군집들에 대응하는 컴포넌트들과 상기 가용 서버 인스턴스들의 할당 정보를 저장하는 단계를 더 포함하는 컴포넌트 분배 방법.
  10. 분산 컴퓨팅 시스템의 컴포넌트 관리 방법에 있어서:
    컴포넌트의 재분배 필요성을 판단하는 단계;
    컴포넌트 재분배가 필요한 경우, 어느 하나의 컴포넌트에 대해 의존 관계에 있는 컴포넌트의 수가 더 많이 적재되어 있는 서버 인스턴스에 상기 어느 하나의 컴포넌트를 할당하는 단계; 그리고
    상기 서버 인스턴스의 컴퓨팅 자원 요구량 또는 사용량을 참조하여 상기 서버 인스턴스에 대한 컴포넌트들을 조정하는 단계를 포함하는 컴포넌트 관리 방법.
  11. 제 10 항에 있어서,
    상기 컴포넌트의 재분배의 필요성이 발생하는 경우는, 적어도 하나의 신규 컴포넌트에 대한 설치 요청이 발생하는 경우이며, 상기 어느 하나의 컴포넌트는 상기 신규 컴포넌트에 대응하는 컴포넌트 관리 방법.
  12. 제 10 항에 있어서,
    상기 컴포넌트의 재분배의 필요성이 발생하는 경우는, 적어도 하나의 컴포넌트에 대한 삭제 요청이 발생하는 경우인 것을 특징으로 하는 컴포넌트 관리 방법.
  13. 제 10 항에 있어서,
    상기 컴포넌트의 재분배의 필요성이 발생하는 경우는, 적어도 하나의 서버 인스턴스에서의 컴퓨팅 자원 사용량이 적정 범위를 벗어나는 경우인 것을 특징으로 하는 컴포넌트 관리 방법.
  14. 제 10 항에 있어서,
    상기 컴포넌트의 재분배의 필요성이 발생하는 경우는, 상기 분산 컴퓨팅 시스템에 구비되는 전체 서버 인스턴스들의 컴퓨팅 자원 사용량이 적정 범위를 벗어나는 경우인 것을 특징으로 하는 컴포넌트 관리 방법.
KR1020110141294A 2011-12-23 2011-12-23 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법 KR101696698B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110141294A KR101696698B1 (ko) 2011-12-23 2011-12-23 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법
US13/619,654 US20130166752A1 (en) 2011-12-23 2012-09-14 Method for distributing and managing interdependent components

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110141294A KR101696698B1 (ko) 2011-12-23 2011-12-23 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법

Publications (2)

Publication Number Publication Date
KR20130073449A true KR20130073449A (ko) 2013-07-03
KR101696698B1 KR101696698B1 (ko) 2017-01-17

Family

ID=48655677

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110141294A KR101696698B1 (ko) 2011-12-23 2011-12-23 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법

Country Status (2)

Country Link
US (1) US20130166752A1 (ko)
KR (1) KR101696698B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102063791B1 (ko) * 2018-07-05 2020-01-08 국민대학교산학협력단 클라우드 기반의 인공지능 연산 서비스 방법 및 장치
KR20200010644A (ko) * 2018-06-27 2020-01-31 국민대학교산학협력단 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9027141B2 (en) * 2012-04-12 2015-05-05 Netflix, Inc. Method and system for improving security and reliability in a networked application environment
US10540211B2 (en) * 2014-11-13 2020-01-21 Telefonaktiebolaget Lm Ericsson (Publ) Elasticity for highly available applications
US9674639B2 (en) 2015-02-24 2017-06-06 At&T Intellectual Property I, L.P. Method and apparatus for virtualized network function chaining management
US10120724B2 (en) * 2016-08-16 2018-11-06 International Business Machines Corporation Optimized resource metering in a multi tenanted distributed file system
US10691700B1 (en) * 2016-12-30 2020-06-23 Uber Technologies, Inc. Table replica allocation in a replicated storage system
KR102059807B1 (ko) * 2018-06-27 2019-12-27 주식회사 티맥스 소프트 서비스 지향 아키텍쳐 상에서 메모리 관리를 위한 기법
CN111614746B (zh) * 2020-05-15 2022-03-22 北京金山云网络技术有限公司 云主机集群的负载均衡方法、装置及服务器
CN113918315A (zh) * 2020-07-07 2022-01-11 华为技术有限公司 容量调整的方法和装置、系统以及计算设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198200A1 (en) * 2004-03-05 2005-09-08 Nortel Networks Limited Method and apparatus for facilitating fulfillment of web-service requests on a communication network
KR20070032441A (ko) * 2005-09-16 2007-03-22 성균관대학교산학협력단 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
JP2008003709A (ja) * 2006-06-20 2008-01-10 Mitsubishi Electric Corp 管理装置及びタスク管理方法及びプログラム
KR20110059295A (ko) * 2009-11-27 2011-06-02 한국전자통신연구원 자원 간의 물리적/논리적 관계를 맵핑하는 방법 및 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8179809B1 (en) * 1999-08-23 2012-05-15 Oracle America, Inc. Approach for allocating resources to an apparatus based on suspendable resource requirements
US6782410B1 (en) * 2000-08-28 2004-08-24 Ncr Corporation Method for managing user and server applications in a multiprocessor computer system
US6952700B2 (en) * 2001-03-22 2005-10-04 International Business Machines Corporation Feature weighting in κ-means clustering
US7191246B2 (en) * 2001-07-18 2007-03-13 Sharp Laboratories Of America, Inc. Transmission rate selection for a network of receivers having heterogenous reception bandwidth
US8037181B2 (en) * 2002-06-28 2011-10-11 Microsoft Corporation Re-partitioning directories
US7207040B2 (en) * 2002-08-15 2007-04-17 Sun Microsystems, Inc. Multi-CPUs support with thread priority control
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US7900206B1 (en) * 2004-03-31 2011-03-01 Symantec Operating Corporation Information technology process workflow for data centers
WO2006107531A2 (en) * 2005-03-16 2006-10-12 Cluster Resources, Inc. Simple integration of an on-demand compute environment
US8489744B2 (en) * 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
JP5378946B2 (ja) * 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US8874744B2 (en) * 2010-02-03 2014-10-28 Vmware, Inc. System and method for automatically optimizing capacity between server clusters
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US10797953B2 (en) * 2010-10-22 2020-10-06 International Business Machines Corporation Server consolidation system
JP5640844B2 (ja) * 2011-03-18 2014-12-17 富士通株式会社 仮想計算機制御プログラム、計算機、及び仮想計算機制御方法
US8806015B2 (en) * 2011-05-04 2014-08-12 International Business Machines Corporation Workload-aware placement in private heterogeneous clouds
US8661136B2 (en) * 2011-10-17 2014-02-25 Yahoo! Inc. Method and system for work load balancing
US9154549B2 (en) * 2011-10-27 2015-10-06 Cisco Technology, Inc. Dynamic server farms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198200A1 (en) * 2004-03-05 2005-09-08 Nortel Networks Limited Method and apparatus for facilitating fulfillment of web-service requests on a communication network
KR20070032441A (ko) * 2005-09-16 2007-03-22 성균관대학교산학협력단 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
JP2008003709A (ja) * 2006-06-20 2008-01-10 Mitsubishi Electric Corp 管理装置及びタスク管理方法及びプログラム
KR20110059295A (ko) * 2009-11-27 2011-06-02 한국전자통신연구원 자원 간의 물리적/논리적 관계를 맵핑하는 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010644A (ko) * 2018-06-27 2020-01-31 국민대학교산학협력단 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법
KR102063791B1 (ko) * 2018-07-05 2020-01-08 국민대학교산학협력단 클라우드 기반의 인공지능 연산 서비스 방법 및 장치

Also Published As

Publication number Publication date
US20130166752A1 (en) 2013-06-27
KR101696698B1 (ko) 2017-01-17

Similar Documents

Publication Publication Date Title
KR101696698B1 (ko) 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법
US8510745B2 (en) Dynamic application placement under service and memory constraints
US7788671B2 (en) On-demand application resource allocation through dynamic reconfiguration of application cluster size and placement
CN102844724B (zh) 管理分布式计算系统中的功率供应
US9588789B2 (en) Management apparatus and workload distribution management method
Zhang et al. Integrating resource consumption and allocation for infrastructure resources on-demand
EP2652594B1 (en) Multi-tenant, high-density container service for hosting stateful and stateless middleware components
US8671189B2 (en) Dynamic load balancing system and method thereof
US20180157729A1 (en) Distributed in-memory database system and method for managing database thereof
KR100956636B1 (ko) 가상 서버 환경에서의 서비스 수준 관리 시스템 및 그 방법
US20080115143A1 (en) Job Execution Method, Job Execution System, and Job Execution Program
CN110221920B (zh) 部署方法、装置、存储介质及系统
US11467874B2 (en) System and method for resource management
KR101113943B1 (ko) 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理系统和管理方法
CN104679594B (zh) 一种中间件分布式计算方法
Zakarya et al. An energy aware cost recovery approach for virtual machine migration
CN104639594A (zh) 分配物理资源和虚拟资源的系统和方法
KR20130019698A (ko) 사용자 스케줄러와 마이그레이션(Migration)을 통한 자원 최적화 방법 및 시스템
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
KR101256918B1 (ko) 클라우드 서비스의 확장성과 가용성을 향상시키는 방법 및 그 시스템
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
US11726758B2 (en) Efficient scaling of a container-based application in a distributed computing system
Baskaran et al. Adaptive threshold-based algorithm for multi-objective vm placement in cloud data centers
CN114598706B (zh) 基于Serverless函数的存储系统弹性伸缩方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4