KR20190041033A - 서비스의 2차 위치에서의 작업의 재생 기법 - Google Patents

서비스의 2차 위치에서의 작업의 재생 기법 Download PDF

Info

Publication number
KR20190041033A
KR20190041033A KR1020197010333A KR20197010333A KR20190041033A KR 20190041033 A KR20190041033 A KR 20190041033A KR 1020197010333 A KR1020197010333 A KR 1020197010333A KR 20197010333 A KR20197010333 A KR 20197010333A KR 20190041033 A KR20190041033 A KR 20190041033A
Authority
KR
South Korea
Prior art keywords
job
location
request
service
secondary location
Prior art date
Application number
KR1020197010333A
Other languages
English (en)
Other versions
KR102047216B1 (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 KR20190041033A publication Critical patent/KR20190041033A/ko
Application granted granted Critical
Publication of KR102047216B1 publication Critical patent/KR102047216B1/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
    • 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
    • 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • 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/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1625Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2005Error 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 interconnections or communication control functionality are redundant using redundant communication controllers
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • 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/2025Failover techniques using centralised failover control functionality
    • 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/2033Failover techniques switching over of hardware resources
    • 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/2038Error 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 with a single idle spare processing component
    • 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/2046Error 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 where the redundant components share persistent storage
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Abstract

장애 조치 이벤트 전 및/또는 후의 특정 기간 내에 서비스의 1차 위치로 제출되는 작업이 판단되며 서비스의 2차 위치로 재제출된다. 예를 들어, 장애 조치 이벤트 15분 전에 제출되는 작업 및 2차 위치에 대한 장애 조치가 완료되기 전에 1차 네트워크에 제출되는 작업은 2차 위치로 재제출된다. 장애 조치 이벤트가 발생한 후에, 작업은 서비스의 1차 위치를 대신하는 2차 네트워크에 의해 갱신된다. 1차 위치로부터 2차 위치로의 작업 입력 파라미터(예를 들어, 식별자 및/또는 비밀 정보)의 매핑은 그것이 2차 위치에 재제출될 때 작업에 의해 사용된다. 각각의 작업은 작업이 재제출되는 것에 기초해서 어떤 변경이 작업 요청에 대해 이루어질지를 판단한다.

Description

서비스의 2차 위치에서의 작업의 재생 기법{REPLAYING JOBS AT A SECONDARY LOCATION OF A SERVICE}
웹 기반 서비스는 데이터베이스에 저장되는 데이터와 함께 웹 서버 상에 위치되는 파일을 포함한다. 예를 들어, 서비스에 전송되는 트래픽을 처리하는 다수의 서버가 존재한다. 어떤 경우에, 서비스는 심각하게 고장나서 작업이 소실되어버릴 수 있다. 새로운 서비스로 작업을 이전하는 것은 비용이 많이 들고 또한 시간 소모가 큰 프로세스일 수 있다.
본 요약은 이하 상세한 설명에 더 설명되는 개념의 선택을 간략한 형태로 소개하기 위해 제공된다. 본 요약은 청구된 발명 대상의 중요 특징 또는 본질적 특징을 식별하도록 의도되지 않으며, 청구된 발명 대상의 범위를 판단하는 보조물로서 사용되도록 의도되지도 않는다.
장애 조치(fail-over) 이벤트 전 및/또는 후의 특정 기간 내에 서비스의 1차 위치로 제출된 작업이 판단되며 서비스의 2차 위치로 재제출된다. 예를 들어, 장애 조치 이벤트 15분 전에 제출되는 작업 및 2차 위치에 대한 장애 조치가 완료되기 전에 1차 네트워크로 제출되는 작업은 2차 위치에서 재제출된다. 장애 조치 이벤트가 발생한 후에, 작업은 서비스의 1차 위치를 대신하는 2차 네트워크에 의해 갱신된다. 1차 위치로부터 2차 위치로의 작업 입력 파라미터(예를 들어, 식별자 및/또는 비밀 정보)의 매핑은 그것이 2차 위치에 재제출될 때 작업에 의해 사용된다. 각각의 작업은 장애 조치 이벤트의 발생으로 인해 작업이 재제출되는 것에 기초하여 어떤 변경이 작업 요청에 대해 이루어질지를 판단한다. 예를 들어, 일부 작업은 그것이 재제출될 필요가 없다는 것을 판단할 수 있는 한편 다른 작업은 동일한 작업을 2차 위치로 단순히 재제출할 수 있다.
도 1은 작업을 서비스의 2차 위치에서 재생하기 위한 클라우드 관리 시스템을 예시한다.
도 2는 작업을 서비스의 2차 위치에서 재생하기 위한 시스템을 도시한다.
도 3은 예시적 작업 기록을 도시한다.
도 4는 작업을 2차 네트워크 내에 재생하기 위한 프로세스를 도시한다.
도 5는 예시적 컴퓨터 아키텍처를 도시한다.
이제 동일한 번호가 동일한 요소를 나타내는 도면을 참조하면, 다양한 실시예가 설명될 것이다.
일반적으로, 프로그램 모듈은 루틴, 프로그램, 구성요소, 데이터 구조, 및 특정 작업을 수행하거나 특정 추상 데이터 타입을 구현하는 다른 타입의 구조를 포함한다. 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 가전 장치, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성이 또한 사용될 수 있다. 분산 컴퓨팅 환경은 또한 작업이 통신 네트워크를 통해 링크되는 원격 처리 장치에 의해 수행되는 곳에 사용될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 지역 및 원격 메모리 저장 장치 둘 다에 위치될 수 있다.
도 1은 작업을 서비스의 2차 위치에서 재생하는 클라우드 관리 시스템을 예시한다. 시스템(100)은 세계에 걸쳐 잠재적으로 분포되는 상이한 네트워크에 연결되며 상이한 네트워크를 관리하는 클라우드 관리자(105)를 예시한다. 네트워크 각각은 콘텐츠 서비스를 하나 이상의 테넌트(tenant)(예를 들어, 클라이언트, 고객)에 제공하도록 구성된다. 네트워크는 클라우드 서비스 내에 및/또는 구내 데이터 센터에서 호스트될 수 있다. 클라우드 관리자(105)는 네트워크를 배치하고, 구성하며 관리하는 데에 사용된다. 클라우드 관리자는 간헐적 네트워크 장애를 견딜 수 있는 멱등(idempotent) 비동기 응용 웹 서비스 응용 프로그래밍 인터페이스(API)(150)를 통해 요청을 수신하도록 구성된다.
예시된 바와 같이, 클라우드 관리자(105)는 업무 관리자(110), 머신 관리자(115), 응용 특정 관리자(120), 스크립트(130), 재생 관리자(26), 및 데이터 저장소(들)(140)(예를 들어, 데이터베이스)와 같은 중앙 저장소를 포함한다. 예시된 관리자 중 하나 내에 포함되지 않는 기능은 클라우드 관리자의 일부 다른 위치에 상주할 수 있다. 일 실시예에 따르면, 응용 관리자(120)는 셰어포인트(SharePoint) 특정 로직을 포함하는 셰어포인트 테넌트 관리자(SharePoint tenant manager)이다.
일반적으로, 클라우드 관리자(105)는 온라인 콘텐츠 관리 서비스와 같은 온라인 서비스에 대한 네트워크를 배치하고 관리하는 것을 지원한다. 클라우드 관리자 시스템은 온라인 서비스를 제공하는 데 사용되는 네트워크에서 작업을 구성하고, 갱신하며 수행하는 것에 관한 동작을 수행하기 위해 요청을 수신하는 중앙 조정 서비스이다. 예를 들어, 클라우드 관리자는 자산을 네트워크(예를 들어, 서버, 팜(farm), 사용자 속성 등) 중 하나 이상 내에서 관리하기 위해 호출될 수 있다. 자산의 관리는 머신을 배치하는 것, 머신을 갱신하는 것, 머신을 제거하는 것, 구성 변경을 서버, 가상 머신(VM) 상에서 수행하는 것뿐만 아니라, 관리에 관한 다른 작업을 수행하는 것을 포함할 수 있다. 클라우드 관리자는 클라우드 관리자에 대한 업그레이드 동안에도 서비스를 부착 네트워크에 제공하도록 구성된다. 클라우드 관리자는 신뢰성 있는 네트워크에 의존할 수 없는 멱등 비동기 응용 프로그래밍 인터페이스(API)를 통해 요청을 수신하도록 구성된다.
예시된 바와 같이, 네트워크 1 및 네트워크 2는 사용자를 활성적으로 서비스하고 있는 라이브 네트워크이다. 2차 네트워크 1 및 2차 네트워크 2는 대응하는 라이브 네트워크의 콘텐츠 및 구성을 미러링하는 2차 네트워크이다. 2차 네트워크는 활성적인 서비스 사용자가 아닌 한편 1차 네트워크는 활성적이다. 일 실시예에 따르면, 2차 네트워크는 1차 네트워크의 사용자 부하가 정전/재난/장애 조치의 경우에 2차 네트워크로 빠르게 전환될 수 있도록 "웜(warm)"하게 유지된다.
1차 네트워크는 일상적으로 그리고 자주 수행되는(예를 들어, 적어도 한 시간에 몇 번) SQL 트랜잭션 로그 백업을 포함하는 백업(풀, 증분)을 수행하도록 구성된다. 1차 네트워크(예를 들어, 네트워크 1 및 2)로부터의 백업은 그것이 생성된 후에 2차 네트워크(예를 들어, 2차 네트워크 1 및 2)에 복사된다. 일 실시예에 따르면, 2차 네트워크는 그것이 대응하는 1차 네트워크로부터 수신될 때 트랜잭션 로그를 재생한다. 라이브 1차 네트워크 상에 발생하는 관리 동작은 1차 네트워크 및 2차 네트워크가 계속 동기화되도록 대응하는 웜 2차 네트워크 상에 자동으로 재생된다.
업무 관리자(110)는 작업의 실행을 관리하며 더 긴 실행 작업의 스케줄링 및 재시도를 가능하게 한다. 업무 관리자(110)는 작업 큐(112)에 저장되는 작업을 개시하고 실행 작업을 기록한다. 미리 결정된 시간이 경과되었을 때, 업무 관리자(110)는 태스크를 자동으로 취소하며 태스크에 관한 일부 추가 처리를 수행할 수 있다. 일 실시예에 따르면, 작업 큐(112) 내의 작업은 하나 이상의 스크립트(130)를 호출함으로써 업무 관리자(110)에 의해 실행된다. 예를 들어, 마이크로소프트의 PowerShell®과 같은 스크립팅 언어는 업무 관리자(110)에 의해 실행되는 작업을 프로그래밍하기 위해 사용될 수 있다. 각각의 스크립트는 새로운 프로세스로서 실행될 수 있다. 각각의 스크립트를 새로운 프로세스로서 실행하는 것은 꽤 높은 CPU 오버헤드를 가질 수 있지만, 이 시스템은 스케일링 가능하며 스크립트가 완료될 때 각각의 스크립트 실행 플러스 전체 클린업(cleanup)에 대한 클린 환경을 보장하는 데에 도움이 된다.
작업이 2차 위치에서(예를 들어, 2차 위치에 대한 장애 조치에 대응하여) 재제출될 때, 업무 관리자(110)는 재제출될 작업을 결정하는데 사용될 수 있다. 예를 들어, 업무 관리자(110)는 장애 조치 이벤트 전에 및 작업 요청이 2차 위치에 의해 처리될 때까지 시간 윈도우 내의 서비스의 1차 위치에서 수행되도록 제출되는 작업을 판단할 수 있다.
머신 관리자(115)는 네트워크(예를 들어, 네트워크 1, 네트워크 2, 2차 네트워크 1, 2차 네트워크 2) 내의 물리 머신(physical machine)을 관리하도록 구성된다. 일반적으로, 머신 관리자(115)는 네트워크, 물리 머신, 가상 머신(virtual machine(VM)), VM 이미지(VHD) 등을 이해한다. 머신 관리자는 네트워크 내에 실행되는 특정 서비스에 강한 결합을 갖는 것이 아니라 "역할"의 관점에서 네트워크 내의 다양한 구성요소를 기록한다. 예를 들어, 머신 관리자(115)는 버전 12.34.56.78을 갖는 타입 "Foo"의 VM을 네트워크 2 상에 배치하도록 API(150)를 통해 요청될 수 있다. 클라우드 관리자(105)에 대한 요청에 대응하여, 머신 관리자(115)는 네트워크 2 상에 위치되는 적절한 물리 머신을 위치시키며 VM의 역할과 연관되는 VM 이미지에 따라 VM을 구성한다. 물리 머신은 데이터 저장소(140)와 같은 데이터 저장소 내에 저장되는 버전 12.34.56.78을 갖는 타입 Foo의 VHD에 의해 구성된다. 대응하는 변경이 2차 네트워크 2에 이루어진다. 네트워크 내에 사용되는 이미지는 또한 네트워크 중 하나 이상에 대한 로컬 데이터 공유와 같이, 다른 위치에 저장될 수 있다. 스크립트는 VHD의 설치를 물리 머신 상에 수행할 뿐만 아니라 임의의 배치 이후 구성을 수행하기 위해 실행될 수 있다. 머신 관리자(115)는 머신의 구성을 각각의 네트워크에 기록한다. 예를 들어, 머신 관리자(115)는 VM의 역할(VM의 타입), VM의 상태(프로비저닝, 실행, 정지, 장애), 버전 및 VM이 주어진 팜(그의 네트워크를 암시하는)에 존재하는지를 기록할 수 있다.
구성 데이터베이스(116)는 네트워크 각각의 맵을 포함한다. 예를 들어, 구성 데이터베이스(116)는 네트워크에 대한 각각의 팜, 데이터베이스, 사이트 컬렉션 등에 관한 정보를 포함할 수 있다. 구성 데이터베이스(116)는 네트워크에 대한 각각의 물리 머신, VM, 팜 등에 대한 행을 포함할 수 있다. 일 실시예에 따르면, 네트워크 내의 각각의 VHD, 팜, 및 VM은 연관된 버전 스트링을 갖는다.
스크립트(130)는 업무를 클라우드 관리자(105)에 대해 지역적으로 그리고 네트워크 중 하나 이상에 원격으로 둘 다 수행하기 위해 실행되는 스크립트를 저장하도록 구성된다. 스크립트(130) 중 하나 이상은 또한 다른 위치에 저장될 수 있다. 예를 들어, 네트워크(예를 들어, 네트워크 1, 네트워크 2) 상에 수행될 스크립트는 그 네트워크에 지역적으로 저장될 수 있다. 스크립트는 많은 상이한 목적에 사용될 수 있다. 예를 들어, 스크립트는 머신의 구성을 네트워크 중 하나 이상에 수행하고, 설정을 이전에 구성된 머신 상에서 변경하고, 새로운 VM을 추가하고, 새로운 데이터베이스를 추가하고, 데이터를 한 머신으로부터 다른 머신으로 이동시키고, 테넌트를 이동시키며, 스키마를 변경하는 등을 수행하기 위해 사용될 수 있다. 일 실시예에 따르면, 스크립트는 마이크로소프트의 PowerShell® 스크립트이다. 다른 프로그래밍 구현이 사용될 수 있다. 예를 들어, 컴파일되며/되거나 초기 바운드(early-bound) 프로그래밍 언어는 기능을 구현하기 위해 사용될 수 있다. 그러나, 스크립팅은 수행될 많은 작업을 표현하는 상당히 간결한 언어이다. 등가물을 C#과 같은 프로그래밍 언어로 프로그래밍하는 것은 종종 훨씬 더 장황한 구현을 필요로 할 것이다. 스크립트는 또한 후기 바인딩되며(late-bound), 다수의 버전의 기초적 코드 베이스가 상이한 인터페이스 DLL에 끊임없이 링크되어야 하지 않으면서 타겟팅될 수 있는 것을 의미한다. 파워셸 스크립트를 사용하는 것은 프로세스가, 프로세스를 원격 머신(부착 네트워크 중 하나 내의 물리 머신) 상에 차례로 개시할 수 있는 클라우드 관리자(105)에 의해 지역적으로 개시되는 것을 허용한다. 다른 기술은 또한 프로세스를 SSH(Secure Shell) 등과 같은 원격 머신 상에 개시하기 위해 사용될 수 있다. 스크립트가 1차 위치(예를 들어, 네트워크 1)에서 실행될 때, 스크립트는 또한 1차 및 2차 위치가 동일한 방식으로 구성되도록 2차 위치(예를 들어, 2차 네트워크 2)에서 실행될 수 있다.
클라우드 관리자(105)가 관리하고 있는 응용 특정 정보는 응용 관리자(120)에 의해 수행된다. 일 실시예에 따르면, 응용 특정 정보는 마이크로소프트 SharePoint®과 관련된다. 따라서, 응용 관리자(120)는 셰어포인트 테넌트, 사이트 컬렉션 등에 대해 알도록 구성된다.
각각의 네트워크는 테넌트에 대한 전용 네트워크 및/또는 하나보다 많은 클라이언트를 서비스하는 멀티테넌트 네트워크로서 구성될 수 있다. 네트워크는 그의 구성이 또한 배치 후에 변경되는 상태에서 물리/가상 머신의 변경 번호를 포함할 수 있다. 일 실시예에 따르면, 서비스의 1차 위치 및 2차 위치는 동일한 방식으로 구성된다.
일반적으로, 네트워크는 네트워킹 제한(예를 들어, 로드 밸런서 및 네트워크 스위치)이 초과되지 않기만 하면 계속 증가할 수 있다. 예를 들어, 네트워크는 10개의 서버와 함께 시작한 후에 100개 이상의 서버로 확장될 수 있다. 1차 네트워크가 변경될 때, 대응하는 2차 네트워크는 1차 네트워크에 이루어지는 변경을 반영하기 위해 자동으로 변경된다. 네트워크 내의 물리 머신은 클래스 또는 타입을 할당받을 수 있다. 예를 들어, 머신의 일부는 계산 머신(웹 프런트 엔드 및 응용 서버에 사용되는)일 수 있으며 다른 머신은 계산 머신보다 더 많은 저장이 프로비저닝되는 저장 머신일 수 있다. 일 실시예에 따르면, 클라우드 관리자(105)는 머신을 다수의 버전의 이미지 파일을 갖는 네트워크 내에 구성한다. 일 실시예에 따르면, 팜은 통상 동일한 버전의 이미지 파일을 갖는다.
일 실시예에 따르면, 소프트웨어 제한은 머신을 가상화하며 독립 활동 "팜"을 네트워크 내에 관리함으로써 네트워크 내의 클라우드 관리자 시스템(100)에 의해 관리된다. 각각의 네트워크는 하나 이상의 팜을 포함할 수 있다(예를 들어, 네트워크 1 참조). 일 실시예에 따르면, 네트워크는 하나 이상의 VIP(Virtual IP)를 외부 세계에 노출시키는 네트워크 로드 밸런스 머신의 단일 클러스터로 간주되며 그 트래픽을 네트워크 내의 머신 중 어느 하나에 라우팅할 수 있다. 네트워크 내의 머신은 일반적으로 밀착 결합되며 최소 레이턴시(즉, < 1ms 핑 레이턴시(ping latency))를 갖는다.
팜은 밀착 결합 관계를 요구하는 응용을 조정하기 위해 사용되는 머신의 기본 그룹핑이다. 예를 들어, 콘텐츠 팜은 마이크로소프트 SharePoint®과 같은 콘텐츠 관리 응용에 대한 네트워크 각각 내에 배치될 수 있다. 일반적으로, 팜 각각 내의 머신 세트는 웹 서비스 및 응용 서버 기능을 함께 제공한다. 전형적으로, 팜 내의 머신은 응용(즉, 셰어포인트)의 동일한 빌드(build)를 실행하고 있으며 공통 구성 데이터베이스를 공유하고 있어 특정 테넌트 및 사이트 컬렉션에 서비스를 제공한다.
팜은 이기종 가상 머신 세트를 포함할 수 있다. 클라우드 관리자(105)는 "팜 목표(farm goal)"를 각각의 팜에 대한 각각의 역할의 타겟 수의 머신인 데이터 저장소(140) 내에서 유지한다. 일부 역할은 콘텐츠 프런트 엔드, 콘텐츠 중앙 관리, 콘텐츠 타이머 서비스, 연합 중앙 관리, 연합 응용 서버 등을 포함한다. 예를 들어, 콘텐츠 팜은 착신 고객 요청을 다루는 기본 셰어포인트 팜이다. 연합 서비스 팜은 검색 및 프로파일 스토어와 같은 팜에 걸쳐 동작할 수 있는 셰어포인트 서비스를 포함한다. 팜은 대용량 공중 인터넷 사이트를 호스트하는데 사용될 수 있다. 일부 팜은 액티브 디렉토리 서버 및 프로비저닝 데몬의 그룹을 포함할 수 있다. 클라우드 관리자(105)는 정의된 타겟을 충족시키는 데에 도움이 되기 위해 가상 머신을 네트워크 내에 자동으로 배치하며/하거나 해제한다. 이러한 팜 목표는 자동으로 및/또는 수동으로 구성될 수 있다. 예를 들어, 팜 목표는 활동 및 용량 요구의 변경에 대응하기 위해 변경될 수 있다. 네트워크 팜- 전체 네트워크에 대한 자원으로서 쉽게 스케일 아웃되는 모든 VM 역할을 포함하는 네트워크 당 하나의 네트워크 팜이 존재한다.
클라우드 관리자 웹 서비스 API(150)는 대규모 스케일 가능 글로벌 서비스의 상황에서 동작하도록 설계된다. API는 임의의 네트워크 요청이 통과 중에 장애되며/되거나 정지된 채 있을 수 있다고 가정한다. 클라우드 관리자(105)에 대한 호출은 멱등이도록 구성된다. 다시 말하면, 동일한 호출은 결과를 변경하지 않으면서 클라우드 관리자(105)에게 다수 회 이루어질 수 있다(파라미터가 동일하기만 하면).
클라우드 관리자(105)는 기록을 유지하여 현재 요청을 서비스에 기록한다. 예를 들어, 클라우드 관리자(105)는 기록을 로컬 데이터베이스에 갱신하며 필요하면 "작업"을 스케줄링하여 더 긴 활동을 후에 수행한다.
클라우드 관리자(105)는 새로운 머신을 네트워크 내에 배치하기 위해 사용되는 템플릿인 이미지(가상 디스크 이미지와 같은)를 기록한다. 이미지 참조는 데이터베이스(140)와 같은 데이터베이스, 및/또는 일부 다른 위치에 저장될 수 있다. 이미지는 이미지가 배치되는 네트워크(들)에 지역적인 하나 이상의 공유 데이터 저장소에 저장될 수 있다. 일 실시예에 따르면, 각각의 이미지는 그것이 배치할 수 있는 VM의 타입을 지정하는 가상 머신(VM) 역할 타입, 그것이 사용해야 하는 프로세서의 수, 그것이 할당받는 RAM의 양, 인근의 설치점을 발견하기 위해 사용되는 네트워크 ID(그것이 크로스 데이터 센터 링크를 통해 반복적으로 복사되지 않으므로) 및 배치 코드가 VHD에 액세스하기 위해 사용할 수 있는 공유 경로를 포함한다.
일반적으로, 네트워크 내의 머신이 클라우드 시스템(100)에 의해 관리되는 것은 데이터를 다운로드하며 데이터를 머신 상의 기존 소프트웨어에 통합함으로써 종래의 방식으로 업그레이드되지 않는다. 대신에, 머신은 VHD를 갱신된 VHD로 대체함으로써 갱신된다. 예를 들어, 새로운 버전의 소프트웨어가 팜에 의해 요구되면, 새로운 버전을 설치한 새로운 팜이 배치된다. 새로운 팜이 배치될 때, 테넌트는 이전 팜으로부터 새로운 팜으로 이동된다. 이러한 방법으로, 업그레이드로 인한 정지 시간은 최소화되며 팜 내의 각각의 머신은 테스트되었던 동일한 버전을 갖는다. 가상 머신이 업그레이드될 필요가 있을 때, 머신 상의 VM은 삭제되며 원하는 서비스를 실행하도록 구성되는 VM으로 대체될 수 있다.
기존 소프트웨어에 대한 업그레이드가 최적이 아니지만, 네트워크 내의 일부 서버는 가동 중인 업그레이드의 종래의 갱신 절차를 이용한다. 예를 들어, 액티브 디렉토리 도메인 제어기는 머신 상의 이미지를 완전히 대체하지 않으면서 서버 상의 현재 소프트웨어를 갱신함으로써 업그레이드된다. 클라우드 관리자는 또한 일부 경우에 가동 중에 업그레이드될 수 있다.
일 실시예에 따르면, 클라우드 관리자는 각각의 웹 서비스 호출에 대한 로그 엔트리를 기록하도록 구성되는 로그 시스템을 포함한다. 원하는 만큼 적고/많은 특징을 포함하는 로그 시스템이 구현될 수 있다.
재생 관리자(26)는 작업을 2차 네트워크에 재제출하도록 구성된다. 장애 조치 이벤트가 발생할 때, 장애 조치 이벤트 전 및/또는 후에 기간 내의 서비스의 1차 위치에서의 작업은 재생 관리자(26)에 의해 결정되며 서비스의 2차 위치에 재제출된다. 예를 들어, 장애 조치 이벤트 15분 전에 네트워크 1에 제출되는 작업 및 2차 네트워크에 대한 장애 조치가 완료되기 전에 1차 네트워크에 제출되는 임의의 작업은 2차 위치에서 재제출된다. 장애 조치 이벤트가 발생한 후에, 재생 관리자(26)는 2차 네트워크가 1차 네트워크를 대신하고 있는 작업을 통지한다.
재생 관리자(26)는 또한 매핑 테이블(114)을 유지하도록 구성된다. 매핑 테이블(114)은 1차 네트워크와 연관되는 식별자 및/또는 비밀 정보과 같은 작업 입력 파라미터의 2차 네트워크로의 매핑을 포함한다. 예를 들어, 서비스의 2차 위치와 연관되는 대응하는 데이터베이스, 팜 및 네트워크(예를 들어, 2차 네트워크 1 및 2)에 대한 서비스의 1차 위치와 연관되는 데이터베이스, 팜 및 네트워크(예를 들어, 1차 네트워크 1 및 2) 사이에 매핑이 존재한다.
일 실시예에 따르면, 각각의 작업은 장애 조치 이벤트가 1차 위치에서 발생하는 것에 기초하는 2차 네트워크에 대한 작업 요청에 어떤 변경이 이루어질지를 판단한다. 예를 들어, 일부 작업은 그것이 재제출될 필요가 없다는 것을 판단할 수 있는 한편 다른 작업은 동일한 작업을 2차 위치로 단순히 재제출할 수 있다.
도 2는 작업을 서비스의 2차 위치에서 재생하는 시스템을 도시한다. 예시된 바와 같이, 시스템(200)은 1차 서비스(210), 2차 서비스(220), 클라우드 관리자(230), 및 컴퓨팅 장치(들)(240)를 포함한다.
사용되는 컴퓨팅 장치는 컴퓨팅 장치의 사용에 관한 동작을 수행하도록 구성되는 임의의 타입의 컴퓨팅 장치일 수 있다. 예를 들어, 컴퓨팅 장치의 일부는 이동 컴퓨팅 장치(예를 들어, 휴대 전화, 태블릿, 스마트 폰, 랩톱 등)일 수 있고; 일부는 데스크톱 컴퓨팅 장치일 수 있으며 다른 컴퓨팅 장치는 서버로서 구성될 수 있다. 일부 컴퓨팅 장치는 온라인 클라우드 기반 서비스(예를 들어, 서비스(210) 및 서비스(220))를 제공하기 위해 배열될 수 있고, 일부는 데이터 저장 서비스를 제공하는 데이터 공유로서 배열될 수 있고, 일부는 로컬 네트워크에 배열될 수 있으며, 일부는 인터넷을 통해 액세스 가능한 네트워크에 배열될 수 있는 등등이다.
컴퓨팅 장치는 인터넷(18)을 통해 결합된다. 일반적으로, 인터넷(18)은 데이터를 서비스(210), 서비스(220), 클라우드 관리자(230) 및 컴퓨팅 장치(들)(240)와 같은 컴퓨팅 장치 사이에서 송신하기 위해 사용된다.
컴퓨팅 장치(들)(240)는 응용(242), 웹 브라우저(244) 및 사용자 인터페이스(246)를 포함한다. 예시된 바와 같이, 컴퓨팅 장치(240)는 서비스(210)와 같은 온라인 서비스와 상호 작용하기 위해 사용자에 의해 사용된다. 일 실시예에 따르면, 서비스(210 및 220)는 멀티테넌시 서비스이다. 일반적으로, 멀티테넌시는 고객 사이의 데이터의 분리(때때로 백업을 포함하는), 사용 및 관리를 언급한다. 다시 말하면, 한 고객(테넌트 1)으로부터의 데이터는 다른 고객(테넌트 2)에 의해 액세스가능하지만 테넌트 각각으로부터의 데이터는 동일한 데이터 저장소 내의 동일한 데이터베이스 내에 저장될 수 있다.
사용자 인터페이스(UI)(246)는 컴퓨팅 장치(240)에 지역적/비지역적인 다양한 응용과 상호 작용하기 위해 사용된다. 하나 이상의 타입의 하나 이상의 사용자 인터페이스는 콘텐츠와 상호 작용하기 위해 사용될 수 있다. 예를 들어, UI(246)는 상황 메뉴, 메뉴 바 내의 메뉴, 리본 사용자 인터페이스로부터 선택되는 메뉴 아이템, 그래픽 메뉴 등의 사용을 포함할 수 있다. 일반적으로, UI(246)는 사용자가 응용의 기능과 쉽게 상호 작용하도록 구성된다. 예를 들어, 사용자는 옵션을 UI(246) 내에서 간단히 선택하여 작업을 클라우드 관리자(230)에 제출할 수 있다.
예시된 바와 같이, 데이터 저장소(212 및 212')는 상이한 테넌트에 대해, 대응하는 백업 데이터를 포함하는 테넌트 데이터를 포함한다. 데이터 저장소는 테넌트의 데이터의 전부/일부를 저장할 수 있다. 예를 들어, 일부 테넌트는 하나보다 많은 데이터 저장소를 사용할 수 있는 반면에, 다른 테넌트는 데이터 저장소를 많은 다른 테넌트와 공유한다. 테넌트에 대한 대응하는 백업 데이터가 동일한 데이터 저장소 내에 예시되지만, 백업 데이터는 다른 위치에서 저장될 수 있다. 예를 들어, 한 데이터 저장소는 테넌트 데이터를 저장하기 위해 사용될 수 있으며 하나 이상의 다른 데이터 저장소는 대응하는 백업 데이터를 저장하기 위해 사용될 수 있다. 일반적으로, 데이터 저장소(212') 내의 데이터는 데이터 저장소(212) 내의 데이터의 미러이다. 1차 서비스(210)와 연관되는 데이터(즉, 관리 변경 및 테넌트 데이터에 관한 데이터)에 이루어지는 변경은 2차 서비스(220)에 미러링된다. 일 실시예에 따르면, 풀 백업(예를 들어, 매주), 증분 백업(예를 들어, 매시간, 매일) 및 트랜잭션 로그는 이루어진 변경을 유지하는데 사용된다. 일 실시예에 따르면, 1차 서비스에 이루어지는 변경은 2차 서비스가 (예를 들어, 5분, 10분 내에) 1차 서비스와 실질적으로 계속 동기화되도록 2차 서비스에 복사된다. 주기적으로, 2차 서비스에 복사되는 데이터는 데이터가 정확히 복사되었던 것을 보장하는 데에 도움이 되기 위해 검증된다. 상이한 방법은 검증(예를 들어, 체크섬, 해시 함수 등)을 수행하기 위해 사용될 수 있다. 데이터 저장소(236)는 서비스(예를 들어, 서비스(210), 서비스(220))의 동작 및/또는 구성에 관한 데이터를 포함한다. 예를 들어, 데이터 저장소(236)는 작업 큐, 매핑 테이블 및/또는 구성 데이터베이스를 포함할 수 있다.
서비스(210)는 다수의 테넌트로부터의 데이터와 상호 작용을 디스플레이하는 것에 관한 서비스를 제공하도록 구성되는 온라인 서비스에 대한 1차 위치로 구성된다. 서비스(210)는 공유 인프라구조를 다수의 테넌트에 제공한다. 일 실시예에 따르면, 서비스(210)는 마이크로소프트의 셰어포인트 온라인 서비스이다. 상이한 테넌트는 서비스(210)를 사용하여 그의 웹 응용/사이트 컬렉션을 호스트할 수 있다. 테넌트는 또한 전용을 단독으로 또는 서비스(210)에 의해 제공되는 서비스와 결합하여 사용할 수 있다. 서비스(220)는 실질적으로 서비스(210)의 미러인 서비스에 대한 2차 위치로 구성된다.
장애 조치 이벤트가 1차 서비스(210)에서 발생한 후에, 장애 1차 서비스 네트워크 상에서 이전에 동작하고 있던 각각의 작업은 작업이 1차 네트워크 내에서 동작하고 있던 태스크를 완료할 수 있도록 재생 관리자(26)에 의해 2차 네트워크(220)에 리포인트(re-point)된다. 일 실시예에 따르면, 2차 위치에서 재생되는 각각의 작업은 그것이 2차 위치에서 수행하는 동작을 판단한다. 일반적으로, 2차 네트워크에 대한 무동작인 작업; 멱등이며 단지 개시점에서 시작할 수 있는 작업; 및 클린업을 계산하며 작업 자체를 새로운 클린업 입력 파라미터로 재인스턴스화하는 작업을 포함하는 작업의 3개의 카테고리가 존재한다.
서비스에 의해 실행될 수 있는 많은 상이한 타입의 작업이 존재한다. 일 실시예에 따르면, 작업의 타입은 무동작 작업, 업그레이드 작업, 테넌트 프로비저닝, 사이트 프로비저닝, 멱등 작업, 및 데이터 이주 작업을 포함한다. 무동작 작업은 장애 네트워크에 매우 특정되는 동작을 수행하고 있는 작업의 타입이며, 일반적으로, 그의 동작은 2차 네트워크에서 재생되지 않는다. 업그레이드 작업은 업그레이드가 신뢰성 있게 수행될 수 있는 업그레이드의 롤백을 촉발시킬 수 있는 긴 프로세스일 수 있다. 테넌트 프로비저닝은 테넌트를 프로비저닝하는 작업이다. 사이트 프로비저닝 작업은 시스템의 상태를 조사하고, 기본적 객체 상태를 다시 개시에 설정하며/하거나 장애 조치 이벤트 바로 전의 포인트로부터 작업을 재시도/재실행한다. 멱등 작업은 작업이 몇 번 실행되는지에 관계없이 상태가 변경되지 않을 때 재실행될 수 있다. 데이터 이주 작업은 이주가 완료되었는지를 판단하기 위해 재실행되며/되거나 체크될 수 있다.
재생 관리자(26)는 작업을 작업 로그(232) 내에서 검사하여 어떤 작업이 2차 네트워크에서 재생될지를 판단하도록 구성된다. 예를 들어, 1차 위치에 송신되었지만 실행되지 않았던 임의의 작업은 2차 네트워크에서 재생되도록 선택된다. 1차 위치를 장애 조치 이벤트의 미리 결정된 시간(예를 들어, 5분, 10분, 15분, 30분, 한 시간...) 내에 타겟팅했던 작업은 또한 재생되도록 선택된다. 일 실시예에 따르면, 장애 조치 이벤트의 시간은 각각의 네트워크가 동일한 시간을 언급하도록 UTC(Coordinated Universal Time)를 사용하여 결정된다.
재생 관리자(26)는 작업이 장애 조치 이벤트로 인해 재제출되고 있는 것을 식별하는 장애 조치 플래그를 2차 위치에서의 재생된 작업으로 포함하도록 구성된다. 장애 조치 플래그를 사용하면, 작업은 동작이 장애 조치 이벤트에 대응하여 수행되는 것을 결정할 수 있다. 예를 들어, 장애 조치 플래그의 검사에 대응하여, 작업은 1차 네트워크 파라미터에 특정된 임의의 파라미터를 새로운 2차 네트워크에 재매핑할 수 있다. 일 실시예에 따르면, 작업은 새로운 매핑 정보를 결정하기 위해 클라우드 관리자를 호출할 수 있다. 예를 들어, 재생 관리자(26)는 작업을 2차 네트워크로 이동시킴으로써 영향을 받는 파라미터(예를 들어, 데이터베이스, 팜 및 임의의 네트워크 ID)를 결정하기 위해 매핑 테이블(234)에 액세스할 수 있다. 작업은 매핑(예를 들어, Get-GridFailOverMapping -FailingNetworkID # -SourceId # -Type <Network | Farm | Database>)을 획득하기 위해 요청되는 장애 네트워크 식별자 및 파라미터 타입을 제공할 수 있다. 일부 작업은 그것이 실행될 때마다 동일하게 동작하므로 장애 조치 플래그를 검사하지 않을 수 있다.
재생 관리자(26)는 또한 비밀 정보(예를 들어, 패스워드)를 포함하는 동작이 2차 위치에서 수행될 수 있도록 2차 네트워크 내의 팜에 적용되는 임의의 비밀 정보를 갱신할 수 있다.
이하의 것은 장애 조치 이벤트가 발생하기 전에 1차 네트워크 상에서 실행되고 있는 작업의 일 예이다. 논의의 목적을 위해(그리고 제한적이도록 의도되지 않음) 작업이 1차 네트워크에 제출될 때 이하의 파라미터를 갖는 것으로 가정한다(JobType: DeploySite; NetworkID: 12; JobData: ID=234; Secrets: 15; State: Executing; Step: 2; Fail-Over: Null). 장애 조치 시에, 작업은 클라우드 관리자에 의해 중지 상태에 배치된 다음에 이하의 정보를 갖는 2차 네트워크에 재제출된다(JobType: DeploySite; NetworkID: 22; JobData: ID; Secrets: 25; State: Executing; Step: 2; Fail-over: 12). 알 수 있는 바와 같이, 네트워크 ID 파라미터는 12에서 22까지 갱신되었고, 비밀 정보 파라미터는 15에서 25까지 변경되었으며, 장애 조치 플래그는 NULL에서 12까지 변경되었다.
일반적으로, 작업이 재제출될 때, 작업은 다양한 동작을 수행한다. 일 실시예에 따르면, 2차 네트워크에서 재생되는 각각의 작업은 장애 조치가 발생했는지(예를 들어, Fail-Over != Null)를 인지하기 위해 검사될 수 있다. 장애 조치가 발생했다면 이 때 작업은 이하의 동작 중 제로 이상을 수행한다: 현재 작업을 없애는(제거하는) 것; 작업 커맨드 라인을 변환하는 것; 다음 동작이 실행되는 것을 결정하는 것; 기본적 객체의 상태를 변경하는 것; 및 새로운 작업을 생성하는 것.
일반적으로, 현재 작업을 없애는(제거하는) 것은 작업이 장애 네트워크와 상호 작용하는 것에 매우 집중되며 2차 네트워크에서 무동작일 때 작업에 의해 수행된다. 이 경우에, 작업은 어떤 추가 동작도 수행하지 않으며 큐로부터 그 자체를 제거한다.
작업은 작업 커맨트 라인을 변환할 수 있다. 일 실시예에 따르면, 각각의 작업은 고유 커맨트 라인을 갖는다. 이 커맨드 라인은 데이터베이스, 네트워크 & 팜에 대한 특정 ID를 포함한다. 각각의 작업은 상이한 파라미터를 사용하며 명명할 수 있다(예를 들어, ID=12는 여러 가지 상이한 아이템과 관련될 수 있음).
작업은 다음 단계가 실행되는 것을 결정할 수 있다. 작업은 그것이 장애 조치 전에 동작하고 있던 어떤 단계를 인식할 수 있지만, 장애 조치 이벤트가 발생되기 전에 이 업무가 2차 네트워크에 복제되었다는 확실성은 없다. 그와 같이, 작업은 현재 작업 단계까지 수행된 업무의 현재 상태를 조사하며 다음 단계 값을 적절히 설정할 수 있다. 작업 단계는 하나 이상의 단계에 의해 다시 설정될 수 있다. 일부 경우에, 작업은 다음 단계를 다시 1로 재설정하며 멱등에 의존하는 업무를 다시 행하여 이 경우를 처리할 수 있다.
작업은 기본적 객체의 상태를 변경할 수 있다. 많은 작업은 객체가 특정 상태에 있으면 작업이 업무를 스킵하는 것을 허용하기 위해 성능 최적화를 구현했다. 일부 경우(예를 들어, DeploySite)에, 객체의 상태는 "개시" 상태로 다시 설정되므로 임의의 최적화가 수행되지 않는다. 따라서, 기본적 객체는 완전한 전체 상태 전이 사이클을 마친다.
작업은 새로운 작업을 생성할 수 있다. 많은 경우에, 작업은 변환된 파라미터가 2차 네트워크에 타겟팅되는 상태에서 새로운 작업을 간단히 생성하며 기존 작업을 종결(제거)하는 것이 더 쉬울 수 있다.
재생 관리자(26)는 또한 동기화 포인트를 시간을 맞추어 되돌릴 수 있다. 동기화를 시간을 맞추어 되돌리는 것은 새로운 테넌트 프로비저닝에 대한 작업 모두를 재난 전후에 재생성한다. 이것은 장애 조치 동안에 생성되는 새로운 테넌트가 고정 상태에 들어가지 않는 것을 보장하는 데에 도움이 된다. 그러나, 그것은 새로운 사이트(최종 사용자 촉발) 및 다른 OP 촉발 작업을 배치하기 위해 상당한 양의 다른 업무를 커버하지 못한다. 일 실시예에 따르면, 동기화는 작업이 2차 네트워크에서 재생된 후에 때 맞추어 다시 설정된다.
도 3은 예시적 작업 기록을 도시한다. 예시된 바와 같이, 기록(300)은 작업 식별자(302), 타입(304), 데이터(306), 소유자(308), 단계(310), 최종 실행(312), 만료 시간(314), 다음 시간(316), 상태(318), 지위(320), 비밀 정보(322), 장애 조치(324), 장애 조치 시간(326) 및 네트워크 ID(328)를 포함한다.
일반적으로, 수행되도록 요청되는 각각의 태스크/작업에 대해, 클라우드 관리자는 기록 데이터베이스(350)(예를 들어, 도 1의 작업 큐(112))에서 생성한다.
작업 식별자(302)는 요청된 태스크에 대한 고유 식별자를 지정하기 위해 사용된다.
타입(304)은 태스크가 수행되는 것을 지정한다. 예를 들어, 타입은 수행될 스크립의 명칭을 포함할 수 있다. 예를 들어, 태스크가 스크립트 명칭 "DeployVM.ps1"을 실행하는 것인 경우 이 때 데이터(306)는 식별자(예를 들어, "-VMID 123")를 포함할 수 있다. 이것은 시스템의 컴파일되거나 다른 2진 부분에 대한 임의의 변경을 필요로 하지 않으면서 새로운 태스크 타입이 시스템에 추가되는 것을 허용한다.
데이터(306)는 태스크와 연관되는 데이터를 저장하기 위해 사용된다. 예를 들어, 데이터는 태스크가 수행될 테넌트, 머신, 네트워크, VM 등에 설정될 수 있다. 데이터(306)는 또한 데이터베이스 내의 값이 설정되는 하나 이상의 값을 저장할 수 있다. 태스크를 실행하는 프로세스는 원하는 수의 머신이 설정되는 어떤 값을 인지하기 위해 작업 기록을 감시할 수 있다. 스크립트는 데이터베이스 내의 값을 사용하여 동작을 수행한다.
소유자(308)는 프로세스를 실행하고 있는 프로세스/머신을 지정한다. 예를 들어, 클라우드 관리자 머신이 작업의 실행을 개시할 때, 머신은 기록의 소유자(308) 부분을 머신의 ID에 의해 갱신한다.
단계(310)는 현재 스크립트의 단계에 대한 표시를 제공한다. 예를 들어, 스크립트는 태스크를 임의의 수의 단계로 분할할 수 있다. 프로세스가 스트립트의 단계를 완료할 때, 단계(310)가 갱신된다. 프로세서는 또한 어떤 단계가 스크립트에서 실행되는지를 판단하며 이전에 완료된 단계를 재실행해야 하는 것을 회피하기 위해 단계(310)를 볼 수 있다.
최종 실행(312)은 스크립트가 마지막에 개시된 시간을 제공한다. 스크립트가 개시될 때마다, 최종 실행 시간이 갱신된다.
만료 시간(314)은 프로세스가 종결되어야 할 때를 표시하는 시간이다. 일 실시예에 따르면, 만료 시간은 프로세스가 개시된 후의 미리 결정된 양의 시간(예를 들어, 5분, 10분...)이다. 만료 시간은 프로세스를 웹 서비스 API를 통해 요청함으로써 갱신될 수 있다.
다음 시간(316)은 태스크가 다음에 실행되어야 할 때를 표시하는 시간이다. 예를 들어, 프로세스는 단계의 완료 후에 정지되며 지정된 다음 시간(316)이 처리를 재개할 때까지 대기하도록 지시받을 수 있다.
상태(318)는 현재 상태를 표시한다.
지위(320)는 작업의 지위(예를 들어, 생성, 중지, 재개, 실행, 삭제)를 표시한다.
비밀 정보(322)는 동작을 머신/네트워크 상에 수행하는 데 사용되는 정보를 포함한다. 예를 들어, 비밀 정보(322)는 패스워드 정보, 머신 정보 등을 포함할 수 있다.
장애 조치 플래그(324)는 장애 조치 이벤트가 네트워크에서 발생했을 때를 표시한다. 일 실시예에 따르면, 장애 조치 플래그가 NULL인 경우 이 때 장애가 발생하지 않았다. 장애 조치 플래그가 네트워크 ID에 설정된 경우 이 때 장애 조치 플래그는 장애 네트워크를 식별한다. 이 정보는 그것이 2차 네트워크에서 재생될 때 작업 요청에 사용되는 임의의 매핑을 결정하기 위해 사용될 수 있다.
장애 조치 시간(326)은 장애 시간이다. 일 실시예에 따르면, 장애 시간은 UTC 시간이다.
네트워크 ID(328)는 작업이 제출되는 네트워크를 식별한다.
데이터베이스 내의 복사 행은 그것이 동일한 태스크 타입 및 데이터 값을 가지면 수행되기 전에 제거될 수 있다. 예를 들어, 다수의 요청은 데이터베이스의 다수의 행에 저장되는 동일한 태스크를 수행하기 위해 이루어질 수 있다.
작업은 그것과 연관되는 하나 이상의 로크(355)를 가질 수 있다. 그것이 이용 가능하지 않으면 이 때 작업은 로크가 이용 가능할 때까지 스케줄링되지 않을 것이다. 로크는 많은 상이한 방법으로 구성될 수 있다. 예를 들어, 로크는 뮤텍스, 세마포어 등에 기초할 수 있다. 일반적으로, 뮤텍스는 코드가 하나보다 많은 스레드에 의해 동시에 실행되는 것을 방지하며 세마포어는 공유 자원의 동시 사용의 수를 최대 수까지 제한한다. 일 실시예에 따르면, 로크는 자원을 나타내는 문자 스트링이다. 자원은 임의의 타입의 자원일 수 있다. 예를 들어, 로크는 팜, 머신, 테넌트 등일 수 있다. 일반적으로, 로크는 하나 이상의 작업의 연기하기 위해 사용된다. 각각의 작업은 실행 전에 그것이 요구하는 하나 이상의 로크를 지정할 수 있다. 작업은 로크를 임의의 시간에 그의 동작 동안 해제할 수 있다. 로크가 존재할 때, 작업은 스케줄링되지 않는다. 하나보다 많은 로크를 요구하는 작업은 즉시 요구되는 모든 로크를 요청한다. 예를 들어, 로크를 이미 소유하는 작업은 추가 로크를 요청하지 않을 수 있다. 그러한 방식은 다수의 작업 중에서 원형 로크 종속성에 의해 야기되는 가능한 데드로크 상황을 방지하는 것을 원조한다.
상이한 작업은 작업의 요건에 따라 상이한 필드를 사용할 수 있다.
이제 도 4를 참조하면, 작업을 2차 네트워크에서 재생하는 프로세스가 설명될 것이다.
본 명세서에 제시되는 루틴의 논의를 판독할 때, 다양한 실시예의 논리 동작은 (1) 컴퓨팅 시스템 상에 실행되는 컴퓨터 구현 행위 또는 프로그램 모듈의 시퀀스로서 및/또는 (2) 컴퓨팅 시스템 내의 인터커넥트 머신 로직 회로 또는 회로 모듈로서 구현된다는 점이 이해되어야 한다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요건에 종속되는 선택의 문제이다. 따라서, 예시되며 본 명세서에 설명되는 실시예를 구성하는 논리 동작은 동작, 구조적 장치, 행위 또는 모듈로서 다양하게 언급된다. 이 동작, 구조적 장치, 행위 및 모듈은 소프트웨어, 펌웨어, 특수 목적 디지털 로직, 및 그의 임의의 결합으로 구현될 수 있다.
시작 동작 후에, 프로세스(400)는 동작 410으로 진행되며, 장애 조치 이벤트가 검출된다. 장애 조치 이벤트는 기획된/기획되지 않은 이벤트에 대응하여 검출될 수 있다. 예를 들어, 장애 조치 이벤트는 1차 네트워크에서 돌발 고장에 의해 야기될 수 있거나 1차 네트워크를 사용하여 정지하는 결정에 의해 야기될 수 있다. 장애 조치 이벤트는 수동으로/자동으로 개시될 수 있다. 예를 들어, 인가된 사용자는 장애 조치를 1차 네트워크로부터 2차 네트워크로 촉발시킬 수 있거나 장애 조치는 하나 이상의 조건(예를 들어, 하나 이상의 머신의 장애)의 검출에 기초하여 자동으로 촉발될 수 있다.
동작 420으로 진행되면, 2차 네트워크에서 재생하는 작업은 장애 네트워크로부터 획득된다. 일 실시예에 따르면, 1차 네트워크로부터 획득되는 작업은 장애 조치 이벤트 전의 기간(예를 들어, 15분)에 제출 받은 작업 및 2차 네트워크에 대한 장애 조치가 완료될 때까지 1차 네트워크에 제출되는 작업을 포함한다.
동작 430으로 진행되면, 획득된 작업은 2차 네트워크 및 1차 네트워크에서의 장애 조치의 발생을 반영하기 위해 갱싱된다. 일 실시예에 따르면, 작업은 장애 네트워크의 ID, 장애 조치 이벤트의 시간, 2차 네트워크의 ID 및 새로운 작업에 의해 사용될 임의의 비밀 정보에 의해 갱신된다.
동작 440으로 이행되면, 임의의 파라미터(예를 들어, 식별자)는 네트워크에 특정되며 실행되고 있는 작업이 갱신된다. 예를 들어, 작업은 1차 네트워크에서 12의 ID를 가지며 2차 네트워크에서 26의 ID를 갖는 특정 데이터베이스에 타겟팅하고 있을 수 있다. 일 실시예에 따르면, 작업은 질의를 클라우드 관리자에게 제출하여 작업에 대한 원하는 매핑 정보를 수신한다.
동작 450으로 이동하면, 작업은 2차 네트워크 상에 제출된다. 작업은 2차 네트워크 상에 제출될 때 상이한 동작을 수행할 수 있다. 예를 들어, 작업은 그 자체를 없앨 수 있고, 그의 커맨트 라인 파라미터를 변환하고, 다음 단계가 실행되는 것을 결정하고, 객체의 상태를 변경하며, 새로운 작업을 생성할 수 있는 등등이다. 일 실시예에 따르면, 작업은 스트립트를 실행함으로써 개시된다. 스크립트를 실행하는 것은 원격 호출을 호출하여 스크립트를 개시하며/하거나 일부 다른 태스크를 원격 머신 상에 수행할 수 있다.
그 다음, 프로세스는 종료 동작으로 이동하고 다른 동작을 처리하는 것으로 복귀된다.
이제 도 5를 참조하면, 다양한 실시예에 이용되는 컴퓨터(500)에 대한 예시적 컴퓨터 아키텍처가 설명될 것이다. 도 5에 도시된 컴퓨터 아키텍처는 서버, 데스크톱 또는 이동 컴퓨터로 구성될 수 있으며 CPU(central processing unit)(5), RAM(random access memory)(9) 및 ROM(read-only memory)(11)를 포함하는 시스템 메모리(7), 및 메모리를 CPU(central processing unit)(5)에 결합하는 시스템 버스(12)를 포함한다.
시동 중과 같이 정보를 컴퓨터 내의 요소들 사이에서 전송하는 데에 도움이 되는 기본 루틴을 포함하는 기본 입력/출력 시스템이 ROM(11)에 저장된다. 컴퓨터(500)는 운영 체제(16), 응용 프로그램(10), 데이터 저장소(24), 파일, 및 클라우드 시스템(100)의 실행 및 클라우드 시스템과 상호 작용에 관한 클라우드 프로그램(25)을 저장하는 대량 저장 장치(14)를 더 포함한다.
대량 저장 장치(14)는 버스(12)에 연결되는 대량 저장 제어기(도시되지 않은)를 통해 CPU(5)에 연결된다. 대량 저장 장치(14) 및 그의 연관된 컴퓨터 판독 가능 매체는 비휘발성 저장을 컴퓨터(500)에게 제공한다. 본 명세서에 포함되는 컴퓨터 판독 가능 매체에 대한 설명은 하드 디스크 또는 CD-ROM 드라이브와 같은 대량 저장 장치를 언급하지만, 컴퓨터 판독 가능 매체는 컴퓨터(100)에 의해 액세스될 수 있는 임의의 이용 가능 매체일 수 있다.
제한이 아닌 예로서, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술으로 구현되는 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read Only memory), 플래시 메모리 또는 다른 고체 상태 메모리 기술, CD-ROM, DVD(digital versatile disks), 또는 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있으며 컴퓨터(500)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지 않는다.
다양한 실시예에 따르면, 컴퓨터(500)는 인터넷(18)과 같은 네트워크를 통해 원격 컴퓨터에 대한 논리적 연결을 사용하여 네트워크 환경에서 동작할 수 있다. 컴퓨터(500)는 버스(12)에 연결되는 네트워크 인터페이스 유닛(20)를 통해 인터넷(18)에 연결될 수 있다. 네트워크는 무선 및/또는 유선일 수 있다. 네트워크 인터페이스 유닛(20)은 또한 다른 타입의 네트워크 및 원격 컴퓨터 시스템에 연결하기 위해 사용될 수 있다. 컴퓨터(500)는 또한 키보드, 마우스, 또는 전자 스타일러스(도 5에 도시되지 않은)를 포함하는 다수의 다른 장치로부터의 입력을 수신 및 처리하는 입력/출력 제어기(22)를 포함할 수 있다. 유사하게, 입력/출력 제어기(22)는 출력을 디스플레이 스크린(28), 프린터, 또는 다른 타입의 출력 장치에 제공할 수 있다.
간단히 상술한 바와 같이, 다수의 프로그램 모듈 및 데이터 파일은 워싱톤 레드몬드의 MICROSOFT® 코포레이션으로부터의 WINDOWS® 운영 체제와 같이 네트워크 컴퓨터의 동작을 제어하는데 적절한 운영 체제(16)를 포함하는 컴퓨터(500)의 대량 저장 장치(14) 및 RAM(9)에 저장될 수 있다. 대량 저장 장치(14) 및 RAM(9)은 또한 하나 이상의 프로그램 모듈을 저장할 수 있다. 특히, 대량 저장 장치(14) 및 RAM(9)은 클라우드 시스템에 관한 작업을 수행하는 클라우드 프로그램(25)과 같은 하나 이상의 응용 프로그램을 저장할 수 있다.
상기 명세서, 예 및 데이터는 본 발명의 구성의 제조 및 사용에 대한 완전한 설명을 제공한다. 본 발명의 실시예가 본 발명의 사상 및 범위에서 벗어나지 않으면서 구성될 수 있으므로, 본 발명은 이하 첨부된 청구범위에 속한다.

Claims (40)

  1. 서비스의 네트워크에서 작업(job)을 재생(replaying)하는 방법으로서,
    상기 서비스의 1차 위치로부터 상기 서비스의 상기 서비스의 2차 위치로 동작(operation)을 이동시키는 장애 조치(fail-over) 이벤트가 발생하는 때를 검출하는 단계와,
    상기 서비스의 상기 1차 위치로부터 작업을 획득하는 단계와,
    상기 획득된 작업을 상기 서비스의 2차 위치에서 제출하는 단계와,
    1차 위치 파라미터의 2차 위치 파라미터로의 매핑을 획득함으로써, 획득된 상기 작업을 상기 2차 위치 파라미터에 부합하도록 업데이트하는 단계를 포함하되,
    상기 장애 조치 이벤트 이후에, 상기 2차 위치가 상기 서비스의 상기 1차 위치가 되는
    작업 재생 방법.
  2. 제1항에 있어서,
    상기 서비스의 상기 1차 위치로부터 작업을 획득하는 단계는 상기 장애 조치 이벤트로부터 미리 결정된 시간 내에 상기 1차 위치에 제출된 작업 각각을 획득하는 단계를 포함하는
    작업 재생 방법.
  3. 제2항에 있어서,
    상기 미리 결정된 시간은 상기 장애 조치 이벤트의 1 시간 이내이고,
    획득된 상기 작업은 상기 장애 조치 이벤트 전후에 상기 서비스의 상기 1차 위치에 제출된 작업을 포함하는
    작업 재생 방법.
  4. 제1항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 단계는 각각의 작업 내에 장애 조치 플래그를 설정하는 단계를 포함하는
    작업 재생 방법.
  5. 제1항에 있어서,
    각각의 작업은 중앙 서비스에 질의하여 상기 1차 위치와 상기 2차 위치 사이의 매핑을 판단하는
    작업 재생 방법.
  6. 제1항에 있어서,
    상기 1차 위치가 상기 2차 위치와 재동기화되도록 상기 1차 위치의 동기화 시간을 미리 결정된 양의 시간만큼 되돌리는(rolling back) 단계를 더 포함하는
    작업 재생 방법.
  7. 제1항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 단계는 상기 서비스의 상기 2차 위치를 반영하도록 제출된 작업의 네트워크 식별자를 변경하는 단계 및 상기 2차 위치에 관한 임의의 비밀 정보를 갱신하는 단계를 포함하는
    작업 재생 방법.
  8. 제1항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 단계는 각각의 획득된 작업이 자신의 요청을 제출하는 단계를 포함하는
    작업 재생 방법.
  9. 적어도 하나의 프로세서에 의해 실행될 경우에, 상기 적어도 하나의 프로세서로 하여금 서비스의 네트워크에서 작업을 재생하는 방법을 수행하는 컴퓨터 실행 가능 명령어가 저장되어 있는 컴퓨터 판독 가능 저장 매체로서,
    상기 방법은
    상기 서비스의 1차 위치로부터 상기 서비스의 상기 서비스의 2차 위치로 동작을 이동시키는 장애 조치 이벤트가 발생하는 때를 검출하는 단계와,
    상기 서비스의 상기 1차 위치로부터 작업을 획득하는 단계와,
    상기 획득된 작업을 상기 서비스의 2차 위치에서 제출하는 단계와,
    1차 위치 파라미터의 2차 위치 파라미터로의 매핑을 획득함으로써, 획득된 상기 작업을 상기 2차 위치 파라미터에 부합하도록 업데이트하는 단계를 포함하되,
    상기 장애 조치 이벤트 이후에, 상기 2차 위치가 상기 서비스의 상기 1차 위치가 되는
    컴퓨터 판독 가능 저장 매체.
  10. 제9항에 있어서,
    상기 서비스의 상기 1차 위치로부터 작업을 획득하는 단계는 상기 장애 조치 이벤트로부터 미리 결정된 시간 내에 실행되도록 제출된 각각의 상기 작업을 획득하는 단계를 포함하는
    컴퓨터 판독 가능 저장 매체.
  11. 제10항에 있어서,
    상기 제출된 작업 중 하나 이상은 아무런 동작도 수행되지 않는다는 판정에 응답하여 자동으로 종료되는
    컴퓨터 판독 가능 저장 매체.
  12. 제9항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 단계는 각각의 작업 내에 장애 조치 플래그를 설정하는 단계를 포함하는
    컴퓨터 판독 가능 저장 매체.
  13. 제9항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 단계는 각각의 획득된 작업이 자신의 요청을 제출하는 단계를 포함하고, 자신의 요청을 제출하는 각각의 획득된 작업은 상기 2차 위치에서 다시 시작할지 아니면 클린업을 계산할지를 결정하고 작업 자체를 새로운 클린업 입력 파라미터로 재인스턴스화(reinstantiate)하는
    컴퓨터 판독 가능 저장 매체.
  14. 제9항에 있어서,
    상기 방법은 동기화 시간을 미리 결정된 양의 시간만큼 되돌리는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  15. 서비스의 네트워크에서 작업을 재생하는 시스템으로서,
    프로세서 및 컴퓨터 판독 가능 매체와,
    상기 컴퓨터 판독 가능 매체 상에 저장되며 상기 프로세서 상에서 실행되는 운영 환경과,
    액션을 수행하도록 동작하는 클라우드 관리자를 포함하되,
    상기 액션은
    상기 서비스의 1차 위치로부터 상기 서비스의 상기 서비스의 2차 위치로 동작을 이동시키는 장애 조치 이벤트가 발생하는 때를 검출하는 것과,
    상기 서비스의 상기 1차 위치로부터 작업을 획득하는 것과,
    상기 획득된 작업을 상기 서비스의 2차 위치에서 제출하는 것과,
    1차 위치 파라미터의 2차 위치 파라미터로의 매핑을 획득함으로써, 획득된 상기 작업을 상기 2차 위치 파라미터에 부합하도록 업데이트하는 것을 포함하되,
    상기 장애 조치 이벤트 이후에, 상기 2차 위치가 상기 서비스의 상기 1차 위치가 되는
    시스템.
  16. 제15항에 있어서,
    상기 서비스의 상기 1차 위치로부터 작업을 획득하는 것은 상기 장애 조치 이벤트로부터 미리 결정된 시간 내에 실행되도록 제출된 각각의 작업을 획득하는 것을 포함하는
    시스템.
  17. 제15항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 것은 각각의 작업 내에 장애 조치 플래그를 설정하는 것을 포함하는
    시스템.
  18. 제15항에 있어서,
    상기 획득된 작업을 상기 서비스의 상기 2차 위치에서 제출하는 것은 각각의 획득된 작업이 자신의 요청을 제출하는 것을 포함하고, 자신의 요청을 제출하는 각각의 획득된 작업은 상기 2차 위치에서 다시 시작할지 아니면 클린업을 계산할지를 결정하고 작업 자체를 새로운 클린업 입력 파라미터로 재인스턴스화하는
    시스템.
  19. 제15항에 있어서,
    상기 액션은 동기화 시간을 미리 결정된 양의 시간만큼 되돌리는 것을 더 포함하는
    시스템.
  20. 제8항에 있어서,
    자신의 요청을 제출하는 각각의 획득된 작업은 상기 2차 위치에서 다시 시작할지 아니면 클린업을 계산할지를 결정하고 작업 자체를 새로운 클린업 입력 파라미터로 재인스턴스화하는
    방법.
  21. 컴퓨터로 구현되는 방법으로서,
    2차 위치에서, 작업 요청을 수신하는 단계와,
    상기 2차 위치에서, 상기 작업 요청에 포함된 장애 조치 플래그(flag)를 식별하는 단계 - 상기 장애 조치 플래그는 장애 조치 이벤트 발생시에 상기 작업 요청이 1차 위치로부터 전달됨을 나타냄 - 와,
    상기 장애 조치 플래그를 검사하여, 상기 장애 조치 이벤트에 대응하여 상기 2차 위치에서 수행할 적어도 하나의 액션을 결정하는 단계와,
    상기 작업 요청을 실행하기 전에 상기 액션을 수행하는 단계와,
    상기 1차 위치에서 상기 작업 요청에 대해 수행된 업무의 상태를 판단하는 단계와,
    상기 2차 위치에서, 상기 1차 위치에서 상기 작업 요청에 대해 수행된 업무의 상태에 기초하여 상기 작업 요청의 나머지 부분을 실행하는 단계를 포함하는
    방법.
  22. 제21항에 있어서,
    상기 액션을 수행하는 단계는 상기 2차 위치에서 상기 작업 요청을 재생하는 단계를 더 포함하는
    방법.
  23. 제21항에 있어서,
    상기 액션은, 저장된 매핑 데이터에 액세스하여 상기 작업 요청의 파라미터를 결정하는 것과, 상기 저장된 매핑 데이터의 평가에 기초하여 상기 작업 요청의 파라미터를 재매핑함으로써 상기 작업 요청의 파라미터를 상기 2차 위치에 대응하도록 업데이트하는 것을 더 포함하는
    방법.
  24. 제21항에 있어서,
    상기 액션은 상기 2차 위치에서 상기 작업 요청을 실행하기 전에 작업 큐에서 상기 작업 요청을 제거하는 것을 포함하는
    방법.
  25. 제21항에 있어서,
    상기 액션은 상기 2차 위치에서의 실행을 위해 상기 작업 요청의 작업 커맨드 라인을 변환하는 것을 포함하고, 상기 변환된 작업 커맨드 라인은 상기 2차 위치를 식별하는 데이터를 포함하는
    방법.
  26. 제21항에 있어서,
    상기 액션은 상기 장애 조치 이벤트의 평가에 기초하여 상기 작업 요청의 기본적 객체와 연관된 상태를 변경하는 것을 포함하는
    방법.
  27. 제21항에 있어서,
    상기 액션은, 상기 작업 요청으로부터 상기 2차 위치에서 새로운 작업 순서를 생성하는 것과, 상기 새로운 작업 순서를 실행하는 것을 포함하는
    방법.
  28. 적어도 하나의 프로세서에 의해 실행될 경우에, 상기 적어도 하나의 프로세서로 하여금 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함하는 컴퓨터 판독 가능 저장 장치로서,
    상기 방법은,
    2차 위치에서, 작업 요청을 수신하는 단계와,
    상기 2차 위치에서, 상기 작업 요청에 포함된 장애 조치 플래그를 식별하는 단계 - 상기 장애 조치 플래그는 장애 조치 이벤트 발생시에 상기 작업 요청이 1차 위치로부터 전달됨을 나타냄 - 와,
    상기 장애 조치 플래그를 검사하여, 상기 장애 조치 이벤트에 대응하여 상기 2차 위치에서 수행할 적어도 하나의 액션을 결정하는 단계와,
    상기 작업 요청을 실행하기 전에 상기 액션을 수행하는 단계와,
    상기 1차 위치에서 상기 작업 요청에 대해 수행된 업무의 상태를 판단하는 단계와,
    상기 2차 위치에서, 상기 1차 위치에서 상기 작업 요청에 대해 수행된 업무의 상태에 기초하여 상기 작업 요청의 나머지 부분을 실행하는 단계를 포함하는
    컴퓨터 판독 가능 저장 장치.
  29. 제28항에 있어서,
    상기 액션을 수행하는 단계는 상기 2차 위치에서 상기 작업 요청을 재생하는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 장치.
  30. 제28항에 있어서,
    상기 액션은, 저장된 매핑 데이터에 액세스하여 상기 작업 요청의 파라미터를 결정하는 것과, 상기 저장된 매핑 데이터의 평가에 기초하여 상기 작업 요청의 파라미터를 재매핑함으로써 상기 작업 요청의 파라미터를 상기 2차 위치에 대응하도록 업데이트하는 것을 더 포함하는
    컴퓨터 판독 가능 저장 장치.
  31. 제28항에 있어서,
    상기 액션은 상기 2차 위치에서 상기 작업 요청을 실행하기 전에 작업 큐에서 상기 작업 요청을 제거하는 것을 포함하는
    컴퓨터 판독 가능 저장 장치.
  32. 제28항에 있어서,
    상기 액션은 상기 2차 위치에서의 실행을 위해 상기 작업 요청의 작업 커맨드 라인을 변환하는 것을 포함하고, 상기 변환된 작업 커맨드 라인은 상기 2차 위치를 식별하는 데이터를 포함하는
    컴퓨터 판독 가능 저장 장치.
  33. 제28항에 있어서,
    상기 액션은 상기 장애 조치 이벤트의 평가에 기초하여 상기 작업 요청의 기본적 객체와 연관된 상태를 변경하는 것을 포함하는
    컴퓨터 판독 가능 저장 장치.
  34. 제28항에 있어서,
    상기 액션은, 상기 작업 요청으로부터 상기 2차 위치에서 새로운 작업 순서를 생성하는 것과, 상기 새로운 작업 순서를 실행하는 것을 포함하는
    컴퓨터 판독 가능 저장 장치.
  35. 시스템으로서,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서와 동작가능하게 연결되어 있으며, 상기 적어도 하나의 프로세서로 하여금 방법을 수행하게 하도록 프로그램된 컴퓨터 실행가능 명령어를 포함하는 메모리를 포함하되,
    상기 방법은
    2차 위치에서, 작업 요청을 수신하는 단계와,
    상기 2차 위치에서, 상기 작업 요청에 포함된 장애 조치 플래그를 식별하는 단계 - 상기 장애 조치 플래그는 장애 조치 이벤트 발생시에 상기 작업 요청이 1차 위치로부터 전달됨을 나타냄 - 와,
    상기 장애 조치 플래그를 검사하여, 상기 장애 조치 이벤트에 대응하여 상기 2차 위치에서 수행할 적어도 하나의 액션을 결정하는 단계와,
    상기 작업 요청을 실행하기 전에 상기 액션을 수행하는 단계와,
    상기 1차 위치에서 상기 작업 요청에 대해 수행된 업무의 상태를 판단하는 단계와,
    상기 2차 위치에서, 상기 1차 위치에서 상기 작업 요청에 대해 수행된 업무의 상태에 기초하여 상기 작업 요청의 나머지 부분을 실행하는 단계를 포함하는
    시스템.
  36. 제35항에 있어서,
    상기 액션을 수행하는 단계는 상기 2차 위치에서 상기 작업 요청을 재생하는 단계를 더 포함하는
    시스템.
  37. 제35항에 있어서,
    상기 액션은, 저장된 매핑 데이터에 액세스하여 상기 작업 요청의 파라미터를 결정하는 것과, 상기 저장된 매핑 데이터의 평가에 기초하여 상기 작업 요청의 파라미터를 재매핑함으로써 상기 작업 요청의 파라미터를 상기 2차 위치에 대응하도록 업데이트하는 것을 더 포함하는
    시스템.
  38. 제35항에 있어서,
    상기 액션은, 상기 2차 위치에서 상기 작업 요청을 실행하기 전에 작업 큐에서 상기 작업 요청을 제거하는 것과, 상기 작업 요청으로부터 상기 2차 위치에서 새로운 작업 순서를 생성하는 것과, 상기 새로운 작업 순서를 실행하는 것 중 적어도 하나를 포함하는
    시스템.
  39. 제35항에 있어서,
    상기 액션은 상기 2차 위치에서의 실행을 위해 상기 작업 요청의 작업 커맨드 라인을 변환하는 것을 포함하고, 상기 변환된 작업 커맨드 라인은 상기 2차 위치를 식별하는 데이터를 포함하는
    시스템.
  40. 제35항에 있어서,
    상기 액션은 상기 장애 조치 이벤트의 평가에 기초하여 상기 작업 요청의 기본적 객체와 연관된 상태를 변경하는 것을 포함하는
    시스템.
KR1020197010333A 2011-06-01 2012-05-28 서비스의 2차 위치에서의 작업의 재생 기법 KR102047216B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/151,114 US8850261B2 (en) 2011-06-01 2011-06-01 Replaying jobs at a secondary location of a service
US13/151,114 2011-06-01
PCT/US2012/039788 WO2012166689A2 (en) 2011-06-01 2012-05-28 Replaying jobs at a secondary location of a service

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020137031901A Division KR101970839B1 (ko) 2011-06-01 2012-05-28 서비스의 2차 위치에서의 작업의 재생 기법

Publications (2)

Publication Number Publication Date
KR20190041033A true KR20190041033A (ko) 2019-04-19
KR102047216B1 KR102047216B1 (ko) 2019-11-20

Family

ID=47260238

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197010333A KR102047216B1 (ko) 2011-06-01 2012-05-28 서비스의 2차 위치에서의 작업의 재생 기법
KR1020137031901A KR101970839B1 (ko) 2011-06-01 2012-05-28 서비스의 2차 위치에서의 작업의 재생 기법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020137031901A KR101970839B1 (ko) 2011-06-01 2012-05-28 서비스의 2차 위치에서의 작업의 재생 기법

Country Status (6)

Country Link
US (3) US8850261B2 (ko)
EP (1) EP2715558A4 (ko)
JP (1) JP5984918B2 (ko)
KR (2) KR102047216B1 (ko)
CN (3) CN103562904B (ko)
WO (1) WO2012166689A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850261B2 (en) 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8745445B1 (en) * 2012-02-10 2014-06-03 Pivotal Software, Inc. Mirrored database upgrade using state machine
JP5948933B2 (ja) * 2012-02-17 2016-07-06 日本電気株式会社 ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
US9274824B2 (en) * 2013-06-27 2016-03-01 Verizon Patent And Licensing Inc. Network technology standard operating environment
US9430306B2 (en) * 2013-10-08 2016-08-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Anticipatory protection of critical jobs in a computing system
US9846618B2 (en) 2013-12-27 2017-12-19 Oracle International Corporation System and method for supporting flow control in a distributed data grid
CN105446827B (zh) * 2014-08-08 2018-12-14 阿里巴巴集团控股有限公司 一种数据库故障时的数据存储方法和设备
US9514010B2 (en) 2014-09-19 2016-12-06 Netapp, Inc Cluster-wide service agents
US9954949B2 (en) * 2015-04-30 2018-04-24 Hewlett Packard Enterprise Development Lp Cloud images
US11226985B2 (en) 2015-12-15 2022-01-18 Microsoft Technology Licensing, Llc Replication of structured data records among partitioned data storage spaces
US10248709B2 (en) 2015-12-15 2019-04-02 Microsoft Technology Licensing, Llc Promoted properties in relational structured data
US10599676B2 (en) 2015-12-15 2020-03-24 Microsoft Technology Licensing, Llc Replication control among redundant data centers
US10235406B2 (en) 2015-12-15 2019-03-19 Microsoft Technology Licensing, Llc Reminder processing of structured data records among partitioned data storage spaces
US9996432B2 (en) 2016-02-03 2018-06-12 International Business Machines Corporation Automated local database connection affinity and failover
CN106022007B (zh) * 2016-06-14 2019-03-26 中国科学院北京基因组研究所 面向生物组学大数据计算的云平台系统及方法
US10917469B2 (en) * 2017-03-22 2021-02-09 Western Digital Technologies, Inc. Read performance enhancement by enabling read from secondary in highly available cluster setup
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
WO2019030698A1 (en) * 2017-08-08 2019-02-14 Perry + Currier Inc. METHOD, SYSTEM AND APPARATUS FOR PROCESSING DATABASE UPDATES
US10931780B2 (en) 2018-02-28 2021-02-23 International Business Machines Corporation Resource pre-caching and tenant workflow recognition using cloud audit records
US11321183B2 (en) * 2018-05-02 2022-05-03 Commvault Systems, Inc. Multi-tiered backup indexing
US10673943B2 (en) 2018-05-02 2020-06-02 Commvault Systems, Inc. Network storage backup using distributed media agents
US11249863B2 (en) 2018-05-02 2022-02-15 Commvault Systems, Inc. Backup-based media agent configuration
US11263173B2 (en) 2019-07-30 2022-03-01 Commvault Systems, Inc. Transaction log index generation in an enterprise backup system
US11762743B2 (en) * 2021-06-28 2023-09-19 International Business Machines Corporation Transferring task data between edge devices in edge computing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
US20070256081A1 (en) * 2006-04-28 2007-11-01 Michael Comer System and method for management of jobs in a cluster environment
JP2010061667A (ja) * 1995-09-27 2010-03-18 Immersion Corp ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307481A (en) 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US6898727B1 (en) 2000-03-22 2005-05-24 Emc Corporation Method and apparatus for providing host resources for an electronic commerce site
US7281031B1 (en) 2000-03-22 2007-10-09 Emc Corporation Method and apparatus for providing additional resources for a host computer
US7219260B1 (en) 2000-05-26 2007-05-15 Emc Corporation Fault tolerant system shared system resource with state machine logging
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US6820218B1 (en) 2001-09-04 2004-11-16 Microsoft Corporation Persistent stateful component-based applications via automatic recovery
US7003694B1 (en) 2002-05-22 2006-02-21 Oracle International Corporation Reliable standby database failover
JP2004032103A (ja) 2002-06-21 2004-01-29 Ntt Docomo Tokai Inc ネットワークシステム及びサーバ切り替え方法
US6947940B2 (en) 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
ATE542182T1 (de) 2002-09-06 2012-02-15 Dell Marketing Usa L P Verfahren und system zum verarbeiten von email während einer ungeplanten ausfallzeit
WO2004023620A1 (en) 2002-09-09 2004-03-18 Evergreen Assurance, Inc. System and method for application monitoring and automatic disaster recovery for high-availability
US7107483B2 (en) 2002-11-15 2006-09-12 Lsi Logic Corporation Apparatus and method for enhancing data availability by leveraging primary/backup data storage volumes
WO2004086191A2 (en) 2003-03-20 2004-10-07 Rosenfelt Michael I Method and system for providing backup messages to wireless devices during outages
US7178059B2 (en) 2003-05-07 2007-02-13 Egenera, Inc. Disaster recovery for processing resources using configurable deployment platform
US7617369B1 (en) 2003-06-30 2009-11-10 Symantec Operating Corporation Fast failover with multiple secondary nodes
US7330859B2 (en) 2003-09-10 2008-02-12 International Business Machines Corporation Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
JP2005250626A (ja) 2004-03-02 2005-09-15 Hitachi Ltd コンピュータシステム及びそのプログラム。
US7376078B1 (en) * 2004-03-24 2008-05-20 Juniper Networks, Inc. Selective replay of a state information within a computing device
US7822741B2 (en) * 2004-06-21 2010-10-26 Microsoft Corporation API for programmatic retrieval and replay of database trace
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7325156B1 (en) 2004-10-07 2008-01-29 Hewlett-Packard Development Company, L.P. Methods and apparatus for backing up data in a data center
US7349903B2 (en) 2004-11-17 2008-03-25 International Business Machines Corporation Apparatus, system, and method for an alternate lock facility connection path
US7668962B2 (en) 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
US7483929B2 (en) 2005-02-08 2009-01-27 Pro Softnet Corporation Systems and methods for storing, backing up and recovering computer data files
US7720820B2 (en) 2005-07-12 2010-05-18 Microsoft Corporation Logless persistent components for enterprise applications
US7823153B1 (en) * 2005-09-30 2010-10-26 Symantec Corporation System and method for detecting and logging in-line synchronization primitives in application program code
JP4668763B2 (ja) * 2005-10-20 2011-04-13 株式会社日立製作所 ストレージ装置のリストア方法及びストレージ装置
DE602005014992D1 (de) 2005-10-31 2009-07-30 Packetfront Systems Ab Hochverfügbarkeitsnetzwerksystem
US7634679B2 (en) 2005-11-30 2009-12-15 Microsoft Corporation Remote location failover server application
US7549079B2 (en) 2005-11-30 2009-06-16 Oracle International Corporation System and method of configuring a database system with replicated data and automatic failover and recovery
US8156083B2 (en) 2005-12-01 2012-04-10 Oracle International Corporation Database system that provides for history-enabled tables
US20070174723A1 (en) 2006-01-18 2007-07-26 Omar Cardona Sub-second, zero-packet loss adapter failover
US7730538B2 (en) 2006-06-02 2010-06-01 Microsoft Corporation Combining virus checking and replication filtration
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7627687B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for managing data flow in a continuous data replication system having journaling
US7917469B2 (en) 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US7844851B2 (en) 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US20080147689A1 (en) 2006-12-19 2008-06-19 Fujitsu Limited Test data registration method, program and apparatus
US7685179B2 (en) 2007-03-13 2010-03-23 Microsoft Corporation Network flow for constrained replica placement
WO2008129620A1 (ja) * 2007-04-09 2008-10-30 Fujitsu Limited 完全二重化システム、システム制御方法およびシステム制御プログラム
US8225129B2 (en) 2007-04-10 2012-07-17 International Business Machines Corporation Methods and apparatus for effective on-line backup selection for failure recovery in distributed stream processing systems
US7779298B2 (en) 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery
US7861111B2 (en) 2007-06-15 2010-12-28 Savvis, Inc. Shared data center disaster recovery systems and methods
US8181071B2 (en) 2007-06-29 2012-05-15 Microsoft Corporation Automatically managing system downtime in a computer network
US20090019094A1 (en) 2007-07-13 2009-01-15 Scott David Lashley Redirected updates on a backup server
US7770064B2 (en) * 2007-10-05 2010-08-03 International Business Machines Corporation Recovery of application faults in a mirrored application environment
US8020046B2 (en) 2007-10-15 2011-09-13 International Business Machines Corporation Transaction log management
US9258360B2 (en) 2007-11-07 2016-02-09 International Business Machines Corporation Intelligent disaster recovery for database connection failures
US7836207B2 (en) 2007-12-20 2010-11-16 Fast Health Corporation System and method for redirecting a website upon the occurrence of a disaster or emergency event
JP5098700B2 (ja) 2008-03-03 2012-12-12 沖電気工業株式会社 情報通信システムのファイル交換装置およびファイル交換方法
US8250577B2 (en) * 2008-04-16 2012-08-21 International Business Machines Corporation Mechanism to enable and ensure failover integrity and high availability of batch processing
JP4659062B2 (ja) 2008-04-23 2011-03-30 株式会社日立製作所 フェイルオーバ方法、プログラム、管理サーバおよびフェイルオーバシステム
CN101299201B (zh) * 2008-05-08 2010-06-02 成都市华为赛门铁克科技有限公司 存储系统数据备份方法及装置
US7793141B1 (en) 2008-05-15 2010-09-07 Bank Of America Corporation eCommerce outage customer notification
US7962458B2 (en) 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8301593B2 (en) 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US8255739B1 (en) * 2008-06-30 2012-08-28 American Megatrends, Inc. Achieving data consistency in a node failover with a degraded RAID array
JP5438371B2 (ja) * 2009-04-30 2014-03-12 キヤノン株式会社 画像処理装置および画像処理方法
KR20100120397A (ko) 2009-05-06 2010-11-16 주식회사 히타치엘지 데이터 스토리지 코리아 선택적 미러 방법
CN101599026A (zh) * 2009-07-09 2009-12-09 浪潮电子信息产业股份有限公司 一种具有弹性架构的集群作业调度系统
US7992031B2 (en) 2009-07-24 2011-08-02 International Business Machines Corporation Automated disaster recovery planning
US20110047413A1 (en) 2009-08-20 2011-02-24 Mcgill Robert E Methods and devices for detecting service failures and maintaining computing services using a resilient intelligent client computer
CN101645022B (zh) * 2009-08-28 2013-07-10 曙光信息产业(北京)有限公司 用于多个集群的作业调度管理系统及方法
US8886788B2 (en) 2009-08-31 2014-11-11 Accenture Global Services Limited Enterprise-level management, control and information aspects of cloud console
JP5498102B2 (ja) * 2009-09-02 2014-05-21 アラクサラネットワークス株式会社 ネットワークシステム、ネットワーク中継装置、それらの制御方法
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
KR101050476B1 (ko) 2009-12-03 2011-07-20 (주)한국아이오테크 스토리지 관리 서버 기반 스크립트 관리 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
US20110289484A1 (en) 2010-05-19 2011-11-24 Also Energy Method and System for Script Processing for Web-Based Applications
US20120311375A1 (en) 2011-06-01 2012-12-06 Microsoft Corporation Redirecting requests to secondary location during temporary outage
US8850261B2 (en) 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US9141493B2 (en) * 2013-07-12 2015-09-22 International Business Machines Corporation Isolating a PCI host bridge in response to an error event

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061667A (ja) * 1995-09-27 2010-03-18 Immersion Corp ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
US20070256081A1 (en) * 2006-04-28 2007-11-01 Michael Comer System and method for management of jobs in a cluster environment
JP2009535688A (ja) * 2006-04-28 2009-10-01 ネットアップ,インコーポレイテッド クラスタ環境においてジョブを管理するシステム、及び方法

Also Published As

Publication number Publication date
US20120311377A1 (en) 2012-12-06
WO2012166689A3 (en) 2013-01-31
KR101970839B1 (ko) 2019-04-19
CN107102916B (zh) 2021-02-26
CN107122270B (zh) 2020-07-03
US9442813B2 (en) 2016-09-13
CN107102916A (zh) 2017-08-29
US9311199B2 (en) 2016-04-12
KR102047216B1 (ko) 2019-11-20
EP2715558A4 (en) 2016-11-16
JP5984918B2 (ja) 2016-09-06
JP2015507229A (ja) 2015-03-05
US20150039931A1 (en) 2015-02-05
CN103562904B (zh) 2016-11-09
US20150347244A1 (en) 2015-12-03
EP2715558A2 (en) 2014-04-09
CN103562904A (zh) 2014-02-05
WO2012166689A2 (en) 2012-12-06
CN107122270A (zh) 2017-09-01
US8850261B2 (en) 2014-09-30
KR20140025503A (ko) 2014-03-04

Similar Documents

Publication Publication Date Title
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
US20230023262A1 (en) System and method for supporting patching in a multitenant application server environment
US11720456B2 (en) Automatic configuration of a recovery service
US8296267B2 (en) Upgrade of highly available farm server groups
US9043370B2 (en) Online database availability during upgrade
US8799453B2 (en) Managing networks and machines for an online service
US8751656B2 (en) Machine manager for deploying and managing machines
KR20170058955A (ko) 멀티테넌트 어플리케이션 서버 환경에서 패치를 지원하는 시스템 및 방법
WO2012054160A2 (en) High availability of machines during patching
WO2012054192A2 (en) Web service patterns for globally distributed service fabric
WO2012054202A2 (en) Installing software remotely using a high privilege process

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant