KR20060008891A - 분산 웹 서비스 컨텍스트에서 자발적인 장애 극복 - Google Patents

분산 웹 서비스 컨텍스트에서 자발적인 장애 극복 Download PDF

Info

Publication number
KR20060008891A
KR20060008891A KR1020057019539A KR20057019539A KR20060008891A KR 20060008891 A KR20060008891 A KR 20060008891A KR 1020057019539 A KR1020057019539 A KR 1020057019539A KR 20057019539 A KR20057019539 A KR 20057019539A KR 20060008891 A KR20060008891 A KR 20060008891A
Authority
KR
South Korea
Prior art keywords
grid
alternate
metric
service instances
service
Prior art date
Application number
KR1020057019539A
Other languages
English (en)
Other versions
KR100745893B1 (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 KR20060008891A publication Critical patent/KR20060008891A/ko
Application granted granted Critical
Publication of KR100745893B1 publication Critical patent/KR100745893B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

자발적인 장애 극복을 하도록 구성된 격자 조정기는 서비스 격자 내에 복수의 격자 호스트와 통신으로 링크되는 감시부를 포함할 수 있다. 메트릭 저장소는 감시부에 연결되어, 격자 호스트들에 있는 개개의 서비스 인스턴스들에 대한 서비스 메트릭을 저장하도록 구성될 수 있다. 최적화 로직은 장애 격자 호스트에 있는 서비스 인스턴스들의 셋트에 대해 저장된 메트릭 및 제안된 대체 격자 호스트에 대해 결정된 플랫폼 메트릭 간에 최적합을 계산하도록 프로그램될 수 있다. 마지막으로, 장애 극복 프로세서가 최적화 로직에서 계산된 최적합에 따라 장애 격자 호스트에 있는 서비스 인스턴스들을 대체하기 위해서, 제안된 대체 격자 호스트에 새로운 서비스 인스턴스들의 셋트를 생성하도록, 감시부와 최적화 로직에 연결되고, 격자 호스트들에 통신으로 링크될 수 있다.
인스턴스(instance), 서비스 인스턴스(service instance), 메트릭(metric), 플랫폼 메트릭(platform metric), 노드(node), 격자 노드(grid node), 호스트(host)

Description

분산 웹 서비스 컨텍스트에서 자발적인 장애 극복{AUTONOMIC FAILOVER IN THE CONTEXT OF DISTRIBUTED WEB SERVICES}
본 발명은 웹 서비스를 포함하는 분산 컴퓨팅 분야에 관한 것이며, 좀 더 구체적으로는 분산 웹 서비스 컨텍스트에서 자발적인 장애 극복을 관리하는 것에 관한 것이다.
웹 서비스들은 분산 컴퓨팅에서 앞서가는 우위를 나타내며, WWW(world wide web) 상에서 컴포넌트 기반 애플리케이션들(component-based application)의 급속한 성장을 지원하기 위한 진정한 의미의 보편적인 모델을 개발하는데 기초로 간주된다. 웹 서비스는 당업계에서, 서비스 지향적인(service-oriented) 컴포넌트 기반의 애플리케이션 구조를 기술하는 출현중인 표준들의 스택(stack of emerging standards)를 포함하는 것으로 알려져 있다. 특히, 웹 서비스는 느슨하게 결합된 재사용가능한(reusable) 소프트웨어 컴포넌트들로서, 이들 소프트웨어 컴포넌트들은 의미론적으로(semantically) 개별의 기능으로 캡슐화되어 분산되어 있으며, 표준 인터넷 프로토콜을 통해 프로그램에 의해 액세스가능하다.
개념적으로, 웹 서비스는 프로세스 내 개별의 작업들이 가격망(value net) 전체에 걸쳐 폭넓게 분산되어 있는 모델을 나타낸다. 주목할 만한 것은, 많은 업 계 전문가들이 서비스 지향적인 웹 서비스의 개시를 차세대 인터넷의 진화 단계로 간주한다는 사실이다. 일반적으로 웹 서비스들은 웹 서비스 정의 언어(WSDL; web service definition language)와 같은 인터페이스에 의해 정의되고, 그 인터페이스에 따라 구현될 수 있는데, 이 구현이 웹 서비스 인터페이스를 따르는 한 구현의 세부사항은 그다지 문제되지 않는다. 일단, 웹 서비스가 해당 인터페이스에 따라 구현되면, 구현은 당업계에 공지된 UDDI(universal description, discover and integration)와 같은 웹 서비스 등록기관(registry)에 등록될 수 있다. 등록이 되면, 웹 서비스는 서비스 요청자가 예컨대, SOAP(simple object access protocol)를 포함하는 임의의 지원 메시징 프로토콜을 사용하여 액세스할 수 있게 된다.
웹 서비스를 지원하는 서비스 지향적인 애플리케이션 컨텍스트에서, 신뢰할 수 있는 서비스들의 소재를 파악하고, 이 신뢰할 수 있는 서비스들을 애플리케이션 목적에 부합하도록 실시간으로 다이내믹하게 통합하는 것은 매우 어려운 문제임이 입증되어 왔다. 등록기관들, 디렉토리들 및 탐색 프로토콜들이 서비스 검출 및 서비스 대 서비스(service-to-service) 상호연결 로직을 구현하기 위한 기초 구조를 제공하기는 하지만, 등록기관들, 디렉토리들 및 탐색 프로토콜들만으로는 분산형의 상호운용(distributed interoperability)에 적당하지 않다. 웹 서비스들의 분산을 용이하게 하기 위하여 오히려, 좀 더 구조화되고, 정형화된 메커니즘이 통합된 애플리케이션의 형성에 있어서 필요할 수 있다.
주목할만한 것은, OGSA(open grid services architecture)를 통한 격자 메커니즘의 생리학상, 분산 시스템에 걸쳐 웹 서비스의 탐색 및 통합 양자 모두에 프로 토콜들을 제공할 수 있는데, 이하에서 "격자 서비스(grid services)"로 지칭되는 이러한 방식은 등록기관, 디렉토리들 및 탐색 프로토콜의 배타적인 사용에 의해서는 가능하지 않다. Ian Foster, Carl Kesselman 및 Steven Tuecke가 Intl J. Supercomputer Applications(2001)의 The Anatomy of the Grid 에서, 또한 Ian Foster, Carl Kesselman, Jeffrey M. Nick 및 Steven Tuecke가 Globus.org(2002.06.22)의 The Physiology of the Grid에서 기술한 바와 같이, 격자 메커니즘은 요청 중인 클라이언트들에 의해 격자 서비스 인스턴스가 생성되어 명명되고, 탐색될 수 있는 분산 컴퓨팅 인프라(distributed computing infrastructure)를 제공할 수 있다.
격자 서비스들은 향상된 자원 공유 및 스케줄링 지원으로서, 정교한 분산 애플리케이션들에서 일반적으로 요구되는 장기 활동 상태(long-lived state)에 대한 지원 및 기업 간 협력(inter-enterprise collaborations)에 대한 지원을 제공함으로써 단순한 웹 서비스들을 확장시킨다. 또한, 웹 서비스가 단독으로 지속적인 서비스들(persistent services)을 탐색하고 호출하게 되는 반면, 격자 서비스는 동적으로 생성되고 파괴될 수 있는 일시적인 서비스(transient service)를 지원한다. 격자 서비스를 사용할 때의 주목할만한 이점으로서 컴퓨팅 자원을 좀 더 효율적으로 활용하고, 다양한 컴퓨팅 컴포넌트들의 통합이 수월하도록 개선함으로써, 정보 기술을 소유하는데 드는 비용을 절감할 수 있다는 것을 들 수 있다. 따라서, 격자 메커니즘, 특히 OGSA를 따르는 격자 메커니즘은 기관 영역(organizational domain)에 걸쳐서까지 제공될 수 있는 분산 시스템 통합의 기초를 통해 서비스 지향적인 구조를 구현할 수 있다.
서비스 격자 내에서, 인프라를 제공하는 서비스는 격자 서비스들과 같이 분산 서비스들의 실행을 호스팅(hosting)하기 위한 처리 자원들을 제공할 수 있다. 인프라를 제공하는 서비스는 서버 컴퓨팅 장치, 직접 연결된 저장소, 네트워크로 연결된 저장소 및 저장 영역 네트워크를 포함하는 저장 시스템, 처리 및 통신 대역 등을 포함하는 한 셋트의 자원을 포함할 수 있다. 인프라를 제공하는 서비스 내에서 처리되는 개개의 거래들은 이 자원들의 상이한 조합을 소모할 수 있다.
주목할 만한 것은, OGSA가 서비스 인스턴스들이 서비스 격자 내 하나 이상의 다양한 위치에서 배치될 수 있는 구조를 정의한다는 점이다. 이에 따라, 특정 서비스의 인스턴스를 액세스하라는 클라이언트의 요청들은 그 요청된 특정 서비스에 대한 최적의 인스턴스로 여겨지는 것으로 라우팅될 수 있다. 이를 위하여, 개개의 서비스 인스턴스들은 최적화 기준에 기초한 전략적인 방식으로 서비스 격자 내 상이한 노드들에서 복제될 수 있다. 최적화 기준은 일반적으로 특정 자원들에 대한 액세스가 있는 노드들, 다른 중요한 서비스 인스턴스들과 함께 위치했던 서비스 인스턴스들, 특정 클라이언트에 대한 지역성(locality) 등을 갖는 노드들로 귀착될 수 있다.
서비스 격자 내에서 서비스 인스턴스나 서비스 인스턴스를 호스팅하는 노드에 그 이유가 무엇이든 장애가 발생한 경우, 장애 극복 전략은 그 서비스 격자를 운영하는데 중요하다. 이 관점에서, 서비스 격자 내 노드나 서비스 인스턴스에서 장애가 검출된 경우, 그 장애 노드 내의 서비스 인스턴스에 있는 서비스 함수들을 액세스하라는 후속 요청들은 서비스 격자 내의 다른 곳에 있는 원하는 서비스의 다른 인스턴스들로 라우팅될 수 있어야 한다. 중요한 것은, 이러한 재라우팅(re-routing)이 서비스 격자의 가상 조직 양상(virtual organization aspect)을 혼란시키지 않도록 명쾌하게 일어나야 한다는 점이다. 그러나 당업계에서 장애 극복 재라우팅이 알려져 있기는 했지만, 서비스 격자 내에서 장애 서비스 인스턴스의 재배치(re-deployment)에는 거의 관심이 기울여지지 않았었다.
본 발명은 바람직하게는, 웹 서비스 및 격자 서비스(특히 격자 서비스 장애 극복)을 포함하는 분산 컴퓨팅에 관한 것이다.
바람직한 실시예에 따른 본 발명은 분산 웹 서비스 컨텍스트에서 자발적인 장애 극복을 관리하도록 구성된 시스템, 방법 및 장치이다.
일 태양에 따르면, 노드의 서비스 인스턴스들에 대한 메트릭(metrics)을 수집하는 단계; 노드에서 장애를 검출하는 단계; 장애가 검출된 경우, 대체 노드들 셋트의 위치를 찾고, 상기 대체 노드들 각각에 대해 플랫폼 메트릭(platform metrics)을 결정하는 단계; 및 상기 수집된 메트릭 및 상기 플랫폼 메트릭에 기초하여 상기 대체 노드들 중 최적으로 선택된 노드들 내에 새로운 대체 서비스 인스턴스들을 생성하는 단계를 포함하는 자발적인 장애 극복을 위한 방법이 제공된다.
이 관점에서, 바람직한 실시예에 따라 새로운 대체 서비스 인스턴스들이 생성될 최적의 대체 노드를 식별하기 위해서, 수집된 메트릭 및 플랫폼 메트릭 간에 최적합 분석(best-fit analysis)이 수행된다. 그 다음 바람직하게는, 새로운 대체 인스턴스들이 최적의 대체 노드로 식별된 노드 내에 생성된다.
일부 컨텍스트에서는, 서비스 인스턴스들 중 어느 것에서도 성능 저하를 나타내지 않기 위한 방식으로서, 단일 대체 노드가 새롭게 생성되는 대체 서비스 인스턴스들을 호스팅할 수 있을 것으로 인식된다. 그러나, 많은 다른 컨텍스트에서는, 복수의 대체 노드에 걸쳐, 새로운 서비스 인스턴스들 및 원래 있던 서비스 인스턴스들의 좀 더 복잡한 재배열이 요구될 것이다. 이 관점에서, 바람직한 실시예에 따른 생성 단계는 최적의 대체 노드 내에 있는 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계를 포함한다. 최적합 분석은, 바람직하게는 이전에 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대해 최적의 대체 노드에 대한 플랫폼 메트릭과의 사이에 수행된다. 다음으로, 바람직하게는 새로운 대체 서비스 인스턴스들의 셋트가 최적의 대체 노드 내에 생성되어, 기존의 서비스 인스턴스들의 부분과 공존하게 되는데, 새로운 대체 서비스 인스턴스들의 셋트와 기존 서비스 인스턴스들의 부분은 최적의 대체 노드 내에서 최적으로 결합되도록 계산된다. 비교하면, 기존의 서비스 인스턴스들 중 다른 것들이 바람직하게는 다른 대체 노드들로 옮겨지며, 새로운 대체 서비스 인스턴스들 중 나머지 셋트가 바람직하게는 그 다른 대체 노드들 내에 생성된다.
바람직한 실시예에 따르면, 메트릭은 격자 호스트(grid host)에서 소모되는 자원들, 바람직한 운영체제 플랫폼(preferred operating system platform), 격자 호스트에서 요구되는 최소의 자원들, 격자 호스트에서 소모하는데 이용가능한 바람직한 자원들로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 포함할 수 있다.
본 발명의 더 바람직한 실시예에서는, 추가적으로 메트릭은 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 추가적인 메트릭을 포함할 수 있다. 따라서, 바람직한 실시예에 따르면, 최적합 분석은 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭에 가중치를 부여하면서, 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대하여, 최적의 대체 노드에 대한 플랫폼 메트릭과의 사이에 수행될 수 있다.
바람직한 실시예에 따르면, 수집된 메트릭 및 플랫폼 메트릭에 기초하여 대체 노드들 중 최적으로 선택된 노드들에 새로운 대체 서비스 인스턴스들을 생성하는 것은, 최적의 대체 노드에 있는 기존의 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계; 상기 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대하여 상기 최적의 대체 노드에 대한 플랫폼 메트릭과의 최적합 분석을 수행하는 단계; 상기 기존의 서비스 인스턴스들 부분과 공존하도록 상기 최적의 대체 노드 내에 상기 새로운 대체 서비스 인스턴스들의 셋트를 생성하는 단계- 상기 최적의 대체 노드 내에서 새로운 대체 서비스 인스턴스들의 셋트와 기존의 서비스 인스턴스들의 부분이 최적으로 결합되도록 계산됨 -; 및 상기 기존의 서비스 인스턴스들 중 다른 것들을 다른 대체 노드들로 옮기고, 상기 다른 대체 노드들 내에 새로운 대체 서비스 인스턴스들 중 나머지 셋트를 생성하는 단계를 포함한다.
바람직한 실시예에 따르면, 수집된 메트릭 및 플랫폼 메트릭에 기초하여 대체 노드들 중 최적으로 선택된 노드들에 새로운 대체 서비스 인스턴스들을 생성하는 것은, 최적의 대체 노드에 있는 기존의 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계; 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭에 가중치를 부여하면서, 상기 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대하여 상기 최적의 대체 노드에 대한 플랫폼 메트릭과의 최적합 분석을 수행하는 단계; 상기 기존의 서비스 인스턴스들 부분과 공존하도록 최적의 대체 노드 내에 상기 새로운 대체 서비스 인스턴스들의 셋트를 생성하는 단계- 상기 가중치 부여된 적어도 하나의 메트릭에 따라, 상기 최적의 대체 노드 내에서 새로운 대체 서비스 인스턴스들의 셋트와 기존의 서비스 인스턴스들의 부분이 최적으로 결합되도록 계산됨 -; 및 상기 기존의 서비스 인스턴스들 중 다른 것들을 다른 대체 노드들로 옮기고, 상기 다른 대체 노드들 내에 상기 새로운 대체 서비스 인스턴스들 중 나머지 셋트를 생성하는 단계를 포함한다.
다른 태양에 따르면, 본 발명은 서비스 격자 내에 복수의 격자 호스트와 통신으로 링크되는 감시부; 상기 감시부에 연결되고 상기 격자 호스트들에 있는 개개의 서비스 인스턴스들에 대한 서비스 메트릭을 저장하도록 구성된 메트릭 저장소; 장애 격자 호스트에 있는 서비스 인스턴스들의 셋트에 대해 저장된 메트릭 및 제안된 대체 격자 호스트에 대해 결정된 플랫폼 메트릭 간에 최적합을 계산하도록 프로그램된 최적화 로직; 및 상기 감시부와 최적화 로직에 연결되고, 상기 격자 호스트들에 통신으로 링크되는 장애 극복 프로세서(failover processor)로서, 상기 최적화 로직에서 계산된 상기 최적합에 따라 상기 장애 격자 호스트에 있는 상기 서비스 인스턴스들을 대체하기 위해서, 상기 제안된 대체 격자 호스트에 새로운 서비스 인스턴스 셋트를 생성하는 장애 극복 프로세서를 포함하는 격자 조정기(grid coordinator)를 제공한다.
감시부는 바람직하게는, 상기 격자 호스트 내에 배치된 복수의 협동 감시 프로세스(plurality of cooperative monitoring processes)를 포함하는데, 협동 감시 프로세스 각각은 해당 격자 호스트의 상태를 상기 장애 극복 프로세서로 보고하기 위한 구성을 갖는다.
서비스 메트릭은 바람직하게는, 격자 호스트에서 소모되는 자원들, 바람직한 운영체제 플랫폼, 격자 호스트에서 요구되는 최소의 자원들, 격자 호스트에서 소모하는데 이용가능한 바람직한 자원들로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 포함한다. 서비스 메트릭은 바람직하게는, 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 더 포함한다.
또 다른 태양에 따르면, 자발적인 장애 극복을 관리하기 위한 컴퓨터 프로그램을 저장한 머신 판독가능 저장소(machine readable storage)가 제공되는데, 이 때 컴퓨터 프로그램은 머신으로 하여금, 노드에 있는 서비스 인스턴스들에 대하여 메트릭을 수집하는 단계; 상기 노드에서 장애를 검출하는 단계; 상기 장애가 검출되는 경우, 대체 노드 셋트의 위치를 찾고, 상기 대체 노드들 각각에 대한 플랫폼 메트릭을 결정하는 단계; 및 상기 수집된 메트릭 및 상기 플랫폼 메트릭에 기초하여 상기 대체 노드들 중 최적으로 선택된 노드 내에 새로운 대체 서비스 인스턴스들을 생성하는 단계를 포함하는 단계들을 수행하도록 유발하는 명령어들의 루틴셋트(routine set of instructions)를 포함한다.
바람직하게는, 상기 메트릭은 격자 호스트에서 소모되는 자원들, 바람직한 운영체제 플랫폼, 격자 호스트에서 요구되는 최소의 자원들, 격자 호스트에서 소모하는데 이용가능한 바람직한 자원들로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 포함한다.
바람직하게는, 메트릭은 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 더 포함한다.
생성 단계는, 바람직하게는 새로운 대체 서비스 인스턴스들을 생성하기에 최적인 대체 노드를 식별하기 위해서, 상기 수집된 메트릭 및 상기 플랫폼 메트릭 간에 최적합 분석을 수행하는 단계; 및 상기 식별된 최적의 대체 노드 내에 새로운 대체 인스턴스들을 생성하는 단계를 포함한다.
생성 단계는, 바람직하게는 최적의 대체 노드에 있는 기존의 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계; 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대하여 상기 최적의 대체 노드에 대한 플랫폼 메트릭과의 최적합 분석을 수행하는 단계; 상기 기존의 서비스 인스턴스들 부분과 공존하도록 상기 최적의 대체 노드 내에 상기 새로운 대체 서비스 인스턴스들의 셋트를 생성하는 단계- 상기 최적의 대체 노드 내에서 새로운 대체 서비스 인스턴스들의 셋트와 기존의 서비스 인스턴스들의 부분이 최적으로 결합되도록 계산됨 -; 및 상기 기존의 서비스 인스턴스들 중 다른 것들을 다른 대체 노드들로 옮기고, 상기 다른 대체 노드들 내에 상기 새로운 대체 서비스 인스턴스들 중 나머지 셋트를 생성하는 단계를 포함한다.
바람직한 실시예에서, 생성 단계는 최적의 대체 노드에 있는 기존의 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계; 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭에 가중치를 부여하면서, 상기 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대하여 상기 최적의 대체 노드에 대한 플랫폼 메트릭과의 최적합 분석을 수행하는 단계; 상기 기존의 서비스 인스턴스들의 상기 부분과 공존하도록 상기 최적의 대체 노드 내에 새로운 대체 서비스 인스턴스들의 셋트를 생성하는 단계- 상기 가중치 부여된 적어도 하나의 메트릭에 따라, 상기 최적의 대체 노드 내에서 새로운 대체 서비스 인스턴스들의 셋트와 기존의 서비스 인스턴스들의 부분이 최적으로 결합되도록 계산됨 -; 및 상기 기존의 서비스 인스턴스들 중 다른 것들을 다른 대체 노드들로 옮기고, 상기 다른 대체 노드들 내에 새로운 대체 서비스 인스턴스들 중 나머지 셋트를 생성하는 단계를 포함한다.
또 다른 태양에 따르면, 컴퓨터에서 실행시, 하기의 방법 단계들을 수행하도록 적응적으로 변경된 프로그램 코드를 포함하는 컴퓨터 프로그램이 제공되며 상기 방법은 노드에 있는 서비스 인스턴스들에 대하여 메트릭을 수집하는 단계; 상기 노드에서 장애를 검출하는 단계; 상기 장애가 검출되는 경우, 대체 노드 셋트의 위치를 찾고, 상기 대체 노드들 각각에 대한 플랫폼 메트릭을 결정하는 단계; 및 상기 수집된 메트릭 및 상기 플랫폼 메트릭에 기초하여 상기 대체 노드들 중 최적으로 선택된 노드 내에 새로운 대체 서비스 인스턴스들을 생성하는 단계를 포함한다.
바람직하게는, 자발적인 장애 극복을 위한 장치가 또한 제공되며 상기 장치는, 노드에 있는 서비스 인스턴스들에 대하여 메트릭을 수집하기 위한 수단; 상기 노드에서 장애를 검출하기 위한 수단; 상기 장애가 검출되는 경우, 대체 노드 셋트의 위치를 찾고, 상기 대체 노드들 각각에 대한 플랫폼 메트릭을 결정하기 위한 수단; 및 상기 수집된 메트릭 및 상기 플랫폼 메트릭에 기초하여 상기 대체 노드들 중 최적으로 선택된 노드 내에 새로운 대체 서비스 인스턴스들을 생성하기 위한 수단을 포함한다.
이하에서는, 본 발명의 바람직한 실시예들이 첨부된 도면들을 참조하여 예시로서 기술될 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 자발적인 장애 극복을 하도록 구성된 서비스 격자의 구성도.
도 2는 도 1의 서비스 격자에서 본 발명의 바람직한 실시예에 따른 장애 극복의 최적화를 위한 프로세스의 블록도.
도 3은 도 1의 서비스 격자에서 본 발명의 바람직한 실시에에 따른 자발적인 장애 극복을 관리하기 위한 프로세스를 도시하는 순서도.
바람직한 실시예에 따르면, 웹 서비스 또는 인프라를 호스팅하는 격자 서비스와 같은 서비스 인프라에서, 자발적인 장애 극복을 관리하기 위한 방법 및 시스템이 개시된다. 특히 인프라를 호스팅하는 격자 서비스를 참조하면, 바람직하게는 장애가 있는 노드를 호스팅하는 격자가 검출되고, 바람직하게는 그 장애 노드에서 호스팅되는 해당 격자 서비스들의 셋트가 결정된다. 그 해당 셋트에 있는 각 서비스에 대해 컴퓨팅 요구사항, 컴퓨팅 성능 및 비용/수익 특성들이 결정될 수 있다. 또한, 바람직하게는, 해당 셋트에 있는 격자 서비스들의 새로운 인스턴스들을 수용할 수 있는 기존의 격자 서비스 호스트 노드들이 식별된다. 호스트 노드 하나가 해당 셋트의 모든 서비스들을 수용할 수 있다고 식별된 경우, 그 셋트의 서비스들은 바람직하게는 식별된 호스트 노드에 인스턴스가 생성된다. 그렇지 않은 경우, 바람직하게는 하나 또는 다수의 결정된 컴퓨팅 요구사항, 성능 및 비용/수익 특성들에 따라 하나 이상의 호스트 노드들에서 서비스들의 배치가 최적화된다.
이러한 관점에서, 바람직하게는 각 서비스 인스턴스는 컴퓨팅 요구사항, 성능 메트릭 및 비용/수익 특성들에 대해 감시된다. 일 예로서, 컴퓨팅 요구사항은 운영체제 요구사항 및 하드웨어 자원 요구사항을 포함할 수 있다. 이에 대해 성능 메트릭은 서비스 인스턴스의 운영 과정에서 소모되는 통신 대역폭, 프로세서, 메모리 또는 디스크 저장소와 같은 자원 소모 메트릭을 포함할 수 있다. 마지막으로 비용/수익 특성들은, 예컨대 소모되는 자원당 비용 및 소모되는 자원당 수익 양자 모두를 포함할 수 있다. 모든 경우에 있어서, 바람직하게는 메트릭은 각 서비스의 운영 중에 다이내믹하게 기록된다. 따라서, 메트릭은 시간에 따라서 변화할 것으로 예상된다.
노드 장애를 검출한 것에 대한 응답으로, 바람직하게는 우선순위가 더 높은(higher priority) 서비스들이 노드에 배치되는데, 이 노드에서는 우선순위가 더 높은 서비스들이 이전 장애 노드에서의 자원 소모 레벨에 부합하거나 이를 초과하는 레벨을 향유하도록 할 수 있다. 그러나 대체 노드가 장애 노드에 있는 모든 서비스들의 새로운 인스턴스들을 수용할만큼 자원이 충분하지 않은 제한된 자원 컨텍스트에서는, 우선순위가 낮은 서비스들은 이전 장애 노드에서 확보했던 것보다 훨씬 더 적은 자원을 할당받을 수 있다. 이러한 상황을 피하기 위해서, 바람직하게는 서비스들의 새로운 인스턴스들을 수용하는데 복수의 대체 노드들이 사용되는데, 여기에서 셋트에 있는 서비스들을 분리함으로써 발생되는 성능 영향은 대체 노드에서 우선순위가 더 낮은 서비스들에 대해 더 낮은 자원 레벨을 할당함으로써 발생되는 성능 영향을 넘어서지 않는다.
어떤 경우든, 본 발명은 웹 서비스의 분산 셋트 컨텍스트에서, 또는 좀 더 구체적으로 격자 서비스 인프라의 경우에서 구현될 수 있는데, 본 발명의 바람직한 실시예에서는 격자 서비스 인프라가 본 명세서에서 기술되는 자발적인 장애 극복을 하도록 구성된다. 이러한 목적에서, 도 1은 본 발명의 바람직한 실시예에 따른 자발적인 장애 극복을 하도록 구성된 서비스 격자의 구성도이다. 당업자에게 있어서, 서비스 격자는 예컨대, 인터넷과 같은 컴퓨터 통신 네트워크(110)를 통해 격자 형태로 서로 통신 링크되는 하나 이상의 격자 호스트(120A, 120B)로 구성되는 웹 서비스 격자가 될 수 있음이 명백할 것이다. 요청 중인 개개의 클라이언트(100)는 하나 이상의 격자 호스트(120A, 120B)의 웹 서비스에 대한 액세스를 요청할 수 있다. 특히, 당업계에 주지된 바와 같이, SOAP 인코딩된 메시지들은 요청 중인 클라이언트들(100)과 격자 호스트(120A, 120B)에 각각 상주하는 격자 서비스(130A, 130B) 사이에서 라우팅될 수 있다.
특히, 클라이언트들(100)은 격자 조정기(150)로부터 가능한 양만큼을 요청함으로써 개개의 웹 서비스들에 대한 액세스를 요청할 수 있다. 더 구체적으로, SOAP 인코딩된 메시지들은 메시지 라우터(140)에서 수신되어, 알려진 격자 조정기(150) 셋트 중 하나(하나만 도시되었음)로 선택적으로 라우팅될 수 있다. 수신된 각 메시지에 대해서, 바람직하게는 격자 조정기(150)는 서비스 등록기관(190)에 알려진 격자 호스트들(120A, 120B) 내에서 호스팅되는 알려진 격자 서비스들(130A, 130B)을 상담함으로써, 요청된 웹 서비스의 원하는 인스턴스의 위치를 서비스 격자 내에서 찾는다. 다음으로, 바람직하게는 격자 서비스 조정기(150)의 요청 라우팅 로직(160)이 각각의 격자 호스트들(120A, 120B) 중 하나에서 격자 서비스들(130A, 130B) 중 선택된 하나로 요청을 라우팅한다.
당업자라면 격자 호스트들(120A, 120B)은 중앙집중 형태(centralized fashion)의 서버 컴퓨팅 장치 내에 또는 분산 형태로서 복수의 서버 컴퓨팅 장치에 걸쳐서 배치될 수 있음을 알 수 있을 것이다. 격자 호스트들(120A, 120B)은 컴퓨팅 장치와 같은 물리적인 호스트 또는 물리적인 호스트 내에 있는 가상 머신이나 프로세스와 같은 가상 호스트를 포함할 수 있다. 어느 경우에서든, 격자 호스트 (120A, 120B) 각각은 일반적으로 웹 서비스의 인스턴스가 생성되어 유지 및 파괴될 수 있는 하나의 호스트 노드로 간주될 수 있다.
중요한 것은, 바람직하게는 격자 서비스 조정기(150)가 OGSA 및 예컨대, Argonne National Laboratory(2002.01.29)에 실린 Globus tutorial의 Globus Project, Gluobus Toolkit Futures: An Open Grid Services Archtecture에 따른 사양으로 정의된 것과 같은 격자 서비스 인터페이스를 구현한다는 점이다. 당업계에 주지된 바와 같이 OGSA를 따르는 격자 서비스 인터페이스는 아래의 인터페이스들 및 동작특성을 포함할 수 있다.
1. 웹 서비스 생성(Factory)
2. 전역 명명 (global naming; Grid Service Handle) 및 참조(Grid Service Reference)
3. 수명 관리(life management)
4. 등록 및 탐색(registration and discvery)
5. 인증(authorization)
6. 통지(notification)
7. 병행성(concurrency)
8. 관리가능성(manageability)
이러한 관점에서, 격자 서비스 조정기(150)는, 바람직하게는 선택된 웹 서비스의 인스턴스들을 새로운 또는 원래 있던 애플리케이션 컨테이너(application container)로 복제할 수 있는 팩토리 인터페이스(factory interface)를 포함할 수 있다.
중요한 것은, 바람직한 실시예에 따른 격자 서비스 조정기(150)는 하나 이상의 원격 격자 호스트(120A, 120B)에 걸쳐 있는 요청된 웹 서비스의 격자 서비스 인스턴스들(130A, 130B)에 대해 그 생성을 요청할 수 있다. 그 결과, 지정된 웹 서비스에서 처리를 위한 서비스 요청을 수신한 것에 대한 응답으로, 그 지정된 웹 서비스의 임의의 특정 인스턴스에 관계없이, 바람직하게는 격자 서비스 조정기(150)의 요청 라우팅 로직(160)은 임의의 개수의 라우팅 기준에 따라 서비스 요청을 구동하기 위해 격자 호스트들(120A, 120B) 내의 서비스 인스턴스들 중 특정 하나를 선택한다.
본 발명의 바람직한 실시예에 따르면, 장애 극복 로직(170) 및 최적화 메트릭 저장소(180) 양자 모두는 각자 별개 또는 결합형태로 격자 조정기(150) 내에 포함된다. 최적화 메트릭(180)은 개개의 서비스 인스턴스들(130A, 130B)의 운영과 관련된 다양한 정적 및 동적 파라미터들과 측정치들의 리스트를 포함할 수 있다. 이러한 관점에서 최적화 메트릭(180)은, 바람직하게는 격자 호스트(120A, 120B) 내에서 소모되는 자원들, 바람직한 운영체제 플랫폼, 요구되는 최소의 자원들 및 바람직한 최소의 자원들의 측정치를 포함할 수 있다. 또한, 최적화 메트릭(180)은, 바람직하게는 각 개개의 서비스 인스턴스(130A, 130B)에 대하여 단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익을 지정한다. 주목할 만한 것은, 최적화 메트릭 저장소(180) 내에 포함된 데이터는, 바람직하게는 최적화 메트릭 저장소(180)에 연결되어 바람직하게는, 개개의 서비스 인스턴스 들(130A, 130B)에 대한 성능 데이터를 수집하는 감시부(도시 생략)의 작동에 의해 정기적으로 업데이트된다는 점이다.
이러한 상황이 일어남에 따라, 장애 극복 로직(170)은, 바람직하게는 하나 이상의 서비스 인스턴스들이 상주하는 격자 호스트들(120A, 120B) 중 장애 격자 호스트를 검출할 수 있다. 장애 격자 호스틀 인식하면, 장애 극복 로직(170)은, 바람직하게는 하나 이상의 대체 격자 호스트의 위치를 찾아낸다. 대체 격자 호스트들은 장애 격자 호스트 내에 있는 모든 서비스 인스턴스를 수용할 수 있는 격자 호스트를 포함할 수 있다. 반면, 대체 격자 호스트들은 이미 서비스 인스턴스들을 호스팅 중이어서 장애 격자 호스트에 있는 서비스 인스턴스들의 사용을 위해 현재 할당된 호스트 자원들 모두보다는 적은 자원을 갖는 격자 호스트들을 포함할 수 있다. 동일하거나 거의 유사한 대체 격자 호스트가 식별되는 경우, 장애 격자 호스트에 상주하는 서비스 인스턴스들의 새로운 인스턴스들은, 바람직하게는 그 식별된 대체 호스트에 생성된다. 그렇지 않은 경우, 장애 격자 호스트에 상주하는 서비스 인스턴스의 새로운 인스턴스들을 최적으로 배치하기 위하여 장애 극복 최적화 프로세스가 수행될 수 있다.
도 2는 도 1의 서비스 격자에서 본 발명의 바람직한 실시예에 따라 장애 극복 최적화를 위한 프로세스의 블록도이다. 본 발명의 배치에 따르면, 격자 조정기(215)는 선택된 노드들(210X, 210Y, 210Z)에서 운영 중인 개개의 서비스 인스턴스들(260A, 260B, 260C)의 운영을 감시할 수 있다. 개개의 서비스 인스턴스들(260A, 260B, 260C)을 감시하는 과정에서, 서비스 메트릭(230)은, 바람직하게는 서비스 인 스턴스들(260A, 260B, 260C) 각각에 대하여 기록된다. 좀 더 구체적으로 서비스 인스턴스들(260A, 260B, 260C) 각각은, 바람직하게는 컴퓨팅 요구사항, 성능 메트릭 및 비용/수익 특성들에 대해서 감시된다. 일 예로서, 컴퓨팅 요구사항은 운영체제 요구사항 및 하드웨어 자원 요구사항을 포함할 수 있다. 이에 대하여, 성능 메트릭은 서비스 인스턴스의 운영 과정에서 소모되는 통신 대역폭, 프로세서, 메모리 또는 디스크 저장소와 같은 자원 소모 메트릭을 포함할 수 있다. 마지막으로 비용/수익 특성들은, 예컨대 소모 자원당 비용 및 소모 자원당 수익 양자 모두를 포함할 수 있다.
감시되는 특정 노드, 예컨대 서비스 인스턴스(260A, 260C)가 상주하는 노드(210Y)에서 장애가 검출되면, 최적화 로직(220)은, 바람직하게는 이하의 프로세스에 따라 장애 극복을 시도한다. 먼저, 바람직하게는 하나 이상의 대체 노드(240A, 240B)가 식별된다. 바람직하게는, 각 대체 노드(240A, 240B)에 대해 개별적으로 플랫폼 메트릭(250A, 250B)이 결정된다. 개별적인 플랫폼 메트릭(250A, 250B)은, 예컨대 프로세서 유형, 운영체제 유형, 메모리 및 저장소 용량 등과 같은 컴퓨팅 구성 데이터를 포함할 수 있다. 개별적인 플랫폼 메트릭(250A, 250B)은, 몇가지 예를 들자면, 소모되는 컴퓨팅 자원, 호스팅되는 서비스 인스턴스들의 개수 및 동일성(identity) 등과 같이, 동적으로 변화하는 대체 노드(250A, 250B)의 지정 상태를 더 포함할 수 있다.
도 2의 예시적인 경우에서, 최적화 로직(220)은, 바람직한 실시예에 따라 먼저 장애 노드(210Y) 내에서 호스팅되는 서비스들(260A, 260C)이 식별된 대체 노드 들(240A, 240B) 중 하나에서 이전에 장애 노드(210Y)에서 확보했던 성능 레벨로 계속 운영할 수 있는 방식으로 전체가 다시 인스턴스 생성될 수 있는지 여부를 결정할 수 있다. 이러한 관점에서, 하나의 간단한 경우로서 대체 노드(240A)가 이전에 장애 노드(210Y)에서 확보했던 성능 레벨로 서비스들(260A, 260C)의 새로운 인스턴스들을 수용할 수 있는 컴퓨팅 자원들을 포함한다고 결정되었다면, 바람직하게는 대체 노드(240A) 내에 서비스들(260A, 260C)의 새로운 인스턴스들이 배치된다.
반면, 대체 노드들(240A, 240B) 중 어느 것도 이전에 장애 노드(210Y)에서 확보했던 성능 레벨로 서비스들(260A, 260C)의 새로운 인스턴스들을 수용할 수 없는 경우, 바람직하게는, 서비스들(260A, 260C)은 서비스들(260A, 260C)의 인스턴스들에 대한 서비스 메트릭(230)에 기초하여 최적의 형태로 하나 이상의 대체 노드들(240A, 240B)에 걸쳐 배치된다. 좀 더 구체적으로, 바람직하게는 서비스들(260A, 260C)의 새로운 인스턴스들은 대체 노드들(240A, 240B) 양자에 걸쳐서 배치되어 임의의 대체 노드(240A, 240B) 하나가 서비스들(260A, 260C)의 새로운 인스턴스들을 모두 수용할 필요는 없게 된다. 이와 달리, 바람직하게는 서비스들(260A, 260C)의 인스턴스들에 대한 서비스 메트릭(230)이 플랫폼 메트릭(250A, 250B)과 매칭되어 서비스들(260A, 260C)의 인스턴스들 중 임의의 하나에 대해 가장 적절한 플랫폼을 식별한다. 예컨대, 이러한 관점에서 바람직한 운영체제가 결정될 수 있다.
본 발명의 바람직한 실시예에서, 비용 대 성능(cost-to-performance) 및 수익 대 성능(revenue-to-performance) 비율들이 서비스들(260A, 260C)의 각 인스턴스에 대해 결정된다. 이리하여 더 높은 수익/성능 및 더 낮은 비용/성능 비율들을 향유하는 서비스들(260A, 260C)의 인스턴스들이 대체 노드 내에서 좀 더 높은 성능을 확보하기 쉬운 반면, 더 낮은 수익/성능 및 더 높은 비용/성능 비율들을 갖는 서비스들(260A, 260C)의 인스턴스들은 상기한 서비스들(260A, 260B)의 인스턴스들에게 양보할 확률을 최적화하는 방식으로, 서비스들(260A, 260C)의 새로운 인스턴스들이 하나 이상의 대체 노드(240A, 240B) 내에 배치될 수 있다. 상술한 계산을 돕기 위해 서비스 메트릭(230) 및 플랫폼 메트릭(250A, 250B)에 대해 최적합 분석을 적용할 수 있다.
도 3은 본 발명의 바람직한 실시예에 따라, 도 1의 서비스 격자에서 자발적인 장애 극복을 관리하기 위한 프로세스를 도시하는 순서도이다. 블록(310)을 시작하면서, 바람직하게는 노드 장애가 격자 조정기 내에서 검출된다. 블록(320)에서, 바람직하게는 장애 노드 내에 상주하는 각 서비스 인스턴스가 식별된다. 블록(330)에서, 바람직하게는 하나 이상의 대체 노드가 더 식별된다. 블록(340)에서, 바람직하게는 장애 노드에 있는 서비스 인스턴스들 각각에 대해 기록된 메트릭이 검색된다. 이와 달리, 장애 노드에서 호스팅된 서비스의 각 인스턴스별로 해당 서비스에 있어서, 다른 노드들에 걸쳐 있는 복수의 인스턴스에 대해 기록된 메트릭이 검색되어서, 그 서비스에 대한 임의의 하나의 인스턴스에서 발생한 변칙적인 이벤트들을 완화시킬 수 있다. 어느 경우이든, 식별된 대체 노드 각각에 대한 플랫폼 메트릭이 블록(350)에서 식별된다.
결정 블록(360)에서, 바람직하게는 식별된 대체 노드들 중 장애 노드에서 이전에 겪은 성능에 기초할 때, 성능 열화없이 서비스들의 새로운 인스턴스들을 수용 할 수 있는 임의의 노드가 있는지 여부가 결정된다. 있는 경우, 바람직하게는, 블록(380)에서 성능 열화없이 서비스들의 새로운 인스턴스들을 수용할 수 있다고 식별된 대체 노드 내에 서비스들의 새로운 인스턴스들이 배치된다. 없는 경우, 바람직하게는, 블록(370)에서 최적의 서비스 배치 분석이 수행된다. 좀 더 구체적으로, 바람직하게는 각 서비스에 대한 메트릭이 검색되어 잠재적인 대체 노드 각각에 대한 메트릭과 비교된다.
바람직하게는, 서비스들의 새로운 인스턴스들이 생성되어야 하는 대체 노드를 결정하기 위하여 최적합 분석이 실시된다. 주목할만 한 것은, 서비스 메트릭의 상이한 요소들은 다른 것들에 대해 소정의 요소들을 강조하기 위해, 예컨대, 자원 소모 퍼센트당 수익은 바람직한 운영체제보다 더 중요한데, 이를 위해 가중치가 부여될 수 있다는 점이다. 그 결과, 하나 이상의 새로운 서비스 인스턴스들에게 손해를 끼치면서 새로운 서비스 인스턴스들 전부가 하나의 대체 노드 내에 생성되거나, 또는 임의의 새로운 서비스 인스턴스 하나에 대해서도 성능 저하가 없도록 보장하면서 새로운 서비스 인스턴스들 전체가 복수의 대체 노드에 걸쳐 나뉘어질 수 있다. 마지막으로, 대체 노드에 새로운 서비스들을 배치하는 것으로 인해 원래 있던 서비스 인스턴스들 중 어떤 하나라도 위치가 바뀔 것으로 예측되는 경우, 블록(370)의 분석은 하나 이상의 대체 노드 내에 원래 있던 서비스 인스턴스들에까지 확장될 수 있다.
본 발명은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 본 발명의 방법 및 시스템의 구현은 하나의 컴퓨터 시스템에서 중앙집중 형태로 실현되거나, 상이한 요소들이 상호연결된 다수의 컴퓨터 시스템에 걸쳐 퍼져 있는 분산 형태로 실현될 수 있다. 임의의 유형의 컴퓨터 시스템 또는 본 명세서에서 기술된 방법들을 수행하기 위해 적응적으로 변경된 다른 장치들이 본 명세서에서 기술된 기능들을 수행하도록 맞춰진다. 하드웨어 및 소프트웨어의 일반적인 결합은, 로딩되어 실행될 경우 컴퓨터 시스템을 제어하여 본 명세서에서 기술된 방법들을 수행하게 하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템이 될 수 있다. 본 발명은 또한 본 명세서에서 기술된 방법들의 구현을 가능하게 하는 모든 특징들을 포함하고, 컴퓨터 시스템으로 로딩될 경우 이러한 방법들을 수행할 수 있는 컴퓨터 프로그램 제품 내에 내장될 수도 있다.
본 명세서에서, 컴퓨터 프로그램, 애플리케이션은 임의 언어, 코드 또는 표기로 된 명령어 집합의 임의의 표현을 의미하는데, 이 때 명령어는 다음 중 하나를 직접, 또는 다음 중 하나 이후, 또는 다음 둘 다의 특정 기능을 수행하는 정보 처리 능력을 갖는 시스템을 야기시키는 것으로 의도되는데, (a) 다른 언어, 코드, 또는 표기로 변환; (b) 다른 자재 형태로 재생산이 그것이다. 중요한 것은, 본 발명은 본 발명의 사상 또는 본질적인 속성을 벗어나지 않고 다른 특정의 형태로 구체화될 수 있으며, 따라서 본 발명의 범위를 지시하는 것으로서 상술한 설명이 아닌 이하의 청구항을 참조해야 한다.

Claims (10)

  1. 자발적인 장애 극복(autonomic failover)을 위한 방법에 있어서,
    노드에 있는 서비스 인스턴스들(service instances)에 대한 메트릭(metrics)을 수집하는 단계;
    상기 노드에서 장애를 검출하는 단계;
    상기 장애가 검출되는 경우, 대체 노드들 셋트의 위치를 찾고, 상기 대체 노드들 각각에 대해 플랫폼 메트릭(platform metrics)을 결정하는 단계; 및
    상기 수집된 메트릭 및 상기 플랫폼 메트릭에 기초하여 상기 대체 노드들 중 최적으로 선택된 대체 노드들 내에 새로운 대체 서비스 인스턴스들을 생성하는 단계
    를 포함하는 자발적인 장애 극복 방법.
  2. 제1항에 있어서, 상기 메트릭은 격자 호스트(grid host)에서 소모되는 자원들, 바람직한 운영체제 플랫폼(preferred operating system platform), 격자 호스트에서 요구되는 최소의 자원들, 격자 호스트에서 소모하는데 이용가능한 바람직한 자원들로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 포함하는 자발적인 장애 극복 방법.
  3. 제2항에 있어서, 상기 메트릭은 단위 성능당 비용(cost per unit of performane), 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭을 더 포함하는 자발적인 장애 극복 방법.
  4. 제1항에 있어서, 상기 생성 단계는,
    상기 새로운 대체 서비스 인스턴스들이 생성되는 최적 대체 노드를 식별하기 위하여 상기 수집된 메트릭 및 상기 플랫폼 메트릭 간에 최적합 분석(best-fit analysis)을 수행하는 단계; 및
    상기 식별된 최적의 대체 노드 내에 상기 새로운 대체 서비스 인스턴스들을 생성하는 단계를 포함하는 자발적인 장애 극복 방법.
  5. 제1항에 있어서, 상기 생성 단계는,
    상기 최적의 대체 노드에 있는 기존의 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계;
    상기 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대해 상기 최적의 대체 노드에 대한 플랫폼 메트릭과의 최적합 분석을 수행하는 단계;
    상기 기존의 서비스 인스턴스들의 부분과 공존하도록 상기 최적의 대체 노드 내에 상기 새로운 대체 서비스 인스턴스들의 셋트를 생성하는 단계- 상기 최적의 대체 노드 내에서는 상기 새로운 대체 서비스 인스턴스들의 셋트와 상기 기존의 서비스 인스턴스들의 부분이 최적으로 결합되도록 계산됨 -; 및
    상기 기존의 서비스 인스턴스들 중 다른 것들을 다른 대체 노드들로 옮기고, 상기 다른 대체 노드들 내에 상기 새로운 대체 서비스 인스턴스들 중 나머지 셋트를 생성하는 단계를 포함하는 자발적인 장애 극복 방법.
  6. 제3항에 있어서, 상기 생성 단계는,
    상기 최적의 대체 노드에 있는 기존의 서비스 인스턴스들에 대한 메트릭을 추가적으로 수집하는 단계;
    단위 성능당 비용, 단위 자원 소모당 비용, 단위 성능당 수익 및 단위 자원 소모당 수익으로 이루어진 그룹으로부터 선택된 적어도 하나의 메트릭에 가중치를 부여하면서, 상기 수집된 메트릭 및 추가적으로 수집된 메트릭 양자에 대하여, 상기 최적의 대체 노드에 대한 플랫폼 메트릭과의 최적합 분석을 수행하는 단계;
    상기 기존의 서비스 인스턴스들의 부분과 공존하도록 상기 최적의 대체 노드 내에 상기 새로운 대체 서비스 인스턴스들의 셋트를 생성하는 단계- 상기 가중치 부여된 적어도 하나의 메트릭에 따라, 상기 최적의 대체 노드 내에서 상기 새로운 대체 서비스 인스턴스들의 셋트와 상기 기존의 서비스 인스턴스들의 부분이 최적으로 결합되도록 계산됨 -; 및
    상기 기존의 서비스 인스턴스들 중 다른 것들을 다른 대체 노드들로 옮기고, 상기 다른 대체 노드들 내에 상기 새로운 대체 서비스 인스턴스들 중 나머지 셋트를 생성하는 단계를 포함하는 자발적인 장애 극복 방법.
  7. 격자 조정기(grid coordinator)에 있어서,
    서비스 격자 내에 복수의 격자 호스트와 통신으로 링크되는(communicatively linked) 감시부(monitor);
    상기 감시부에 연결되고 상기 격자 호스트들에 있는 개개의 서비스 인스턴스들에 대한 서비스 메트릭을 저장하도록 구성된 메트릭 저장소;
    장애 격자 호스트에 있는 서비스 인스턴스들의 셋트에 대해 저장된 메트릭 및 제안된 대체 격자 호스트에 대해 결정된 플랫폼 메트릭 간에 최적합을 계산하도록 프로그램된 최적화 로직(optimization logic); 및
    상기 감시부와 최적화 로직에 연결되고, 상기 격자 호스트들에 통신으로 링크되는 장애 극복 프로세서(failover processor)로서, 상기 최적화 로직에서 계산된 상기 최적합에 따라 상기 장애 격자 호스트에 있는 상기 서비스 인스턴스들을 대체하기 위해서, 상기 제안된 대체 격자 호스트에 새로운 서비스 인스턴스들의 셋트를 생성하는 장애 극복 프로세서
    를 포함하는 격자 조정기.
  8. 제7항에 있어서, 상기 감시부는 상기 격자 호스트 내에 배치된 복수의 협동 감시 프로세스(plurality of cooperative monitoring processses)를 포함하고, 상기 협동 감시 프로세스 각각은 해당 격자 호스트의 상태를 상기 장애 극복 프로세서로 보고하기 위한 구성을 갖는 격자 조정기.
  9. 자발적인 장애 극복을 관리하기 위한 컴퓨터 프로그램을 저장한 머신 판독가능 저장소(machine readable storage)에 있어서, 상기 컴퓨터 프로그램은 머신으로 하여금,
    노드에 있는 서비스 인스턴스들에 대한 메트릭을 수집하는 단계;
    상기 노드에서 장애를 검출하는 단계;
    상기 장애가 검출되는 경우, 대체 노드들 셋트의 위치를 찾고, 상기 대체 노드들 각각에 대해 플랫폼 메트릭을 결정하는 단계; 및
    상기 수집된 메트릭 및 상기 플랫폼 메트릭에 기초하여 상기 대체 노드들 중 최적으로 선택된 노드 내에 새로운 대체 서비스 인스턴스들을 생성하는 단계
    를 포함하는 단계들을 수행하도록 유발하기 위한 명령어들의 루틴셋트(routine set of instructions)를 포함하는 머신 판독가능 저장소.
  10. 컴퓨터 상에서 실행되는 경우, 제1항 내지 제6항 중 어느 한 항의 방법을 수행하기 위하여 적응적으로 변경된 프로그램 코드 수단을 포함하는 컴퓨터 프로그램.
KR1020057019539A 2003-05-15 2004-05-13 분산 웹 서비스 컨텍스트에서 자발적인 장애 극복 KR100745893B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/438,434 2003-05-15
US10/438,434 US7287179B2 (en) 2003-05-15 2003-05-15 Autonomic failover of grid-based services

Publications (2)

Publication Number Publication Date
KR20060008891A true KR20060008891A (ko) 2006-01-27
KR100745893B1 KR100745893B1 (ko) 2007-08-02

Family

ID=33449739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019539A KR100745893B1 (ko) 2003-05-15 2004-05-13 분산 웹 서비스 컨텍스트에서 자발적인 장애 극복

Country Status (7)

Country Link
US (1) US7287179B2 (ko)
JP (1) JP4916881B2 (ko)
KR (1) KR100745893B1 (ko)
CN (1) CN100514306C (ko)
BR (1) BRPI0410366A (ko)
TW (1) TWI282228B (ko)
WO (1) WO2004102386A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447024B1 (ko) * 2013-03-20 2014-10-07 국방과학연구소 서비스 기반의 무기체계용 분산식 다계층 시스템의 고장 복구 방법

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0306971D0 (en) * 2003-03-26 2003-04-30 British Telecomm Client server model
US7562254B2 (en) * 2003-07-01 2009-07-14 International Business Machines Corporation Checkpointing and restarting long running web services
CA2435655A1 (en) * 2003-07-21 2005-01-21 Symbium Corporation Embedded system administration
US7584454B1 (en) * 2003-09-10 2009-09-01 Nextaxiom Technology, Inc. Semantic-based transactional support and recovery for nested composite software services
US7581205B1 (en) 2003-09-30 2009-08-25 Nextaxiom Technology, Inc. System and method of implementing a customizable software platform
DE60335302D1 (de) * 2003-10-09 2011-01-20 Telecom Italia Spa Verfahren und syteme zum fehlerschutz in einem kommunikationsnetz
US8225282B1 (en) 2003-11-25 2012-07-17 Nextaxiom Technology, Inc. Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions
DE102004005128B3 (de) * 2004-02-02 2005-01-05 Fujitsu Siemens Computers Gmbh Anordnung mehrerer Rechner und Verfahren zum Betreiben einer Anordnung mehrerer Rechner bei einem Rechnerausfall
US8862570B1 (en) 2004-03-02 2014-10-14 Rockstar Consortium Us Lp Method and apparatus for open management of multi-media services
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8336040B2 (en) 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
ATE331379T1 (de) * 2004-04-28 2006-07-15 Sap Ag Computersystem und verfahren zur bereitstellung eines fehlerresistenten datenverarbeitungdienstes
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
CA2504333A1 (en) * 2005-04-15 2006-10-15 Symbium Corporation Programming and development infrastructure for an autonomic element
US20060248015A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Adjusting billing rates based on resource use
US7908190B2 (en) * 2005-08-30 2011-03-15 Sap Ag Systems and methods for applying tax legislation
US7953816B2 (en) * 2006-01-10 2011-05-31 International Business Machines Corporation Virtual memory technique for efficiently solving connected problems in a distributed environment
JP4829670B2 (ja) * 2006-04-28 2011-12-07 株式会社日立製作所 San管理方法およびsan管理システム
US8566439B2 (en) * 2007-10-01 2013-10-22 Ebay Inc Method and system for intelligent request refusal in response to a network deficiency detection
US8886779B2 (en) * 2007-10-19 2014-11-11 Oracle America, Inc. Performance modeling for SOA security appliance
US9178785B1 (en) 2008-01-24 2015-11-03 NextAxiom Technology, Inc Accounting for usage and usage-based pricing of runtime engine
JP5134456B2 (ja) * 2008-06-30 2013-01-30 キヤノン株式会社 サービスフロー処理装置及びサービスフロー処理方法
ATE543291T1 (de) * 2008-09-04 2012-02-15 Alcatel Lucent Vorrichtung und verfahren zur automatischen bestimmung eines netzwerkelements zum ersetzen eines fehlerhaften netzwerkelements
US20100257009A1 (en) * 2009-04-01 2010-10-07 National Ict Australia Limited Service orientated computer system with multiple quality of service controls
US8112659B2 (en) * 2009-06-19 2012-02-07 Oracle International Corporation Reducing recovery time for business organizations in case of disasters
JP2011192250A (ja) * 2010-02-22 2011-09-29 Canon Inc クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法
US8874961B2 (en) * 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
US8504672B2 (en) * 2010-11-19 2013-08-06 Silicon Image, Inc. Discovery of electronic devices in a combined network
US8635493B2 (en) 2011-05-17 2014-01-21 Vmware, Inc. High availability system allowing conditionally reserved computing resource use and reclamation upon a failover
US8862928B2 (en) * 2011-09-20 2014-10-14 Cloudbyte, Inc. Techniques for achieving high availability with multi-tenant storage when a partial fault occurs or when more than two complete faults occur
US8943372B2 (en) * 2012-03-30 2015-01-27 International Business Machines Corporation Systems and methods for open and extensible integration of management domains in computation and orchestration of resource placement
US10229181B2 (en) * 2013-07-16 2019-03-12 Pankaj Sharma System and method for synchronizing data between communication devices in a networked environment without a central server
US9692663B2 (en) * 2014-02-21 2017-06-27 Ca, Inc. Methods, systems, and computer program products for user side optimization of acquisition of virtualized resources
CN103905548B (zh) * 2014-03-27 2017-02-22 南京邮电大学 一种信息服务的替换对象选择方法
US9836363B2 (en) * 2014-09-30 2017-12-05 Microsoft Technology Licensing, Llc Semi-automatic failover
CN104836850A (zh) * 2015-04-16 2015-08-12 华为技术有限公司 一种实例节点管理的方法及管理设备
US10552272B2 (en) * 2016-12-14 2020-02-04 Nutanix, Inc. Maintaining high availability during N-node failover
US11994964B2 (en) * 2021-05-28 2024-05-28 Paypal, Inc. Dynamic node insertion of secondary services for high-availability during main decision failure at runtime

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
SE515348C2 (sv) 1995-12-08 2001-07-16 Ericsson Telefon Ab L M Processorredundans i ett distribuerat system
US5805785A (en) * 1996-02-27 1998-09-08 International Business Machines Corporation Method for monitoring and recovery of subsystems in a distributed/clustered system
US5938732A (en) * 1996-12-09 1999-08-17 Sun Microsystems, Inc. Load balancing and failover of network services
US6195760B1 (en) * 1998-07-20 2001-02-27 Lucent Technologies Inc Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
JP2001155003A (ja) * 1999-11-30 2001-06-08 Ntt Comware Corp サービス復旧システムおよびその記録媒体
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
US6982951B2 (en) * 2000-12-21 2006-01-03 At&T Corp. Method for selecting a restoration path in a mesh network
JP2002259147A (ja) * 2001-02-27 2002-09-13 Hitachi Ltd 情報処理装置及びリアルタイム分散処理システム
US20030014507A1 (en) 2001-03-13 2003-01-16 International Business Machines Corporation Method and system for providing performance analysis for clusters
US6922791B2 (en) * 2001-08-09 2005-07-26 Dell Products L.P. Failover system and method for cluster environment
US6823382B2 (en) 2001-08-20 2004-11-23 Altaworks Corporation Monitoring and control engine for multi-tiered service-level management of distributed web-application servers
JP3801904B2 (ja) * 2001-11-06 2006-07-26 アクア化学株式会社 洗浄装置及び洗浄方法
US7200117B2 (en) * 2002-01-31 2007-04-03 Sun Microsystems, Inc. Method of optimizing network capacity and fault tolerance in deadlock-free routing
US7130891B2 (en) * 2002-02-04 2006-10-31 Datasynapse, Inc. Score-based scheduling of service requests in a grid services computing platform
US7647523B2 (en) * 2002-06-12 2010-01-12 International Business Machines Corporation Dynamic binding and fail-over of comparable web service instances in a services grid
JP4133068B2 (ja) * 2002-07-23 2008-08-13 株式会社日立製作所 計算機システム
US7421500B2 (en) * 2003-01-10 2008-09-02 Hewlett-Packard Development Company, L.P. Grid computing control system
US7340654B2 (en) * 2004-06-17 2008-03-04 Platform Computing Corporation Autonomic monitoring in a grid environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447024B1 (ko) * 2013-03-20 2014-10-07 국방과학연구소 서비스 기반의 무기체계용 분산식 다계층 시스템의 고장 복구 방법

Also Published As

Publication number Publication date
BRPI0410366A (pt) 2006-05-30
KR100745893B1 (ko) 2007-08-02
WO2004102386A3 (en) 2005-04-28
US20040243915A1 (en) 2004-12-02
JP2007500908A (ja) 2007-01-18
WO2004102386A2 (en) 2004-11-25
TWI282228B (en) 2007-06-01
JP4916881B2 (ja) 2012-04-18
CN1784661A (zh) 2006-06-07
US7287179B2 (en) 2007-10-23
CN100514306C (zh) 2009-07-15
TW200501691A (en) 2005-01-01

Similar Documents

Publication Publication Date Title
KR100745893B1 (ko) 분산 웹 서비스 컨텍스트에서 자발적인 장애 극복
US12079667B2 (en) Virtual systems management
US7590653B2 (en) Automated discovery and inventory of nodes within an autonomic distributed computing system
US7680799B2 (en) Autonomic control of a distributed computing system in accordance with a hierarchical model
US7328259B2 (en) Systems and methods for policy-based application management
US9807159B2 (en) Allocation of virtual machines in datacenters
Lee et al. Load-balancing tactics in cloud
US7478097B2 (en) Application governor providing application-level autonomic control within a distributed computing system
US7454427B2 (en) Autonomic control of a distributed computing system using rule-based sensor definitions
US7571154B2 (en) Autonomic control of a distributed computing system using an application matrix to control application deployment
US7480713B2 (en) Method and system for network management with redundant monitoring and categorization of endpoints
US7788544B2 (en) Autonomous system state tolerance adjustment for autonomous management systems
US20080091806A1 (en) Dynamic On-Demand Clustering
US20020112039A1 (en) Method and system for network management with backup status gathering
US11388234B2 (en) Infrastructure for deploying a security information and event management application on a container platform
US8745124B2 (en) Extensible power control for an autonomically controlled distributed computing system
US20020112040A1 (en) Method and system for network management with per-endpoint monitoring based on application life cycle
US20220342707A1 (en) Infrastructure for deploying a security information and event management application on a container platform
Verma et al. Hbi-lb: A dependable fault-tolerant load balancing approach for fog based internet-of-things environment
Maassen et al. Middleware adaptation with the delphoi service
CN214202379U (zh) 一种分布式共享文件系统
Graupner et al. Adaptive service placement algorithms for autonomous service networks
Swart et al. Trading off security in a service oriented architecture
Haney et al. Load-balancing for mysql
Hosseini et al. LARFH: provisioning dynamic approach based on learning automata for data fault-tolerance in the cloud storage

Legal Events

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

Payment date: 20130627

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150625

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160628

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 12