KR19990013427A - 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물 - Google Patents

컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물 Download PDF

Info

Publication number
KR19990013427A
KR19990013427A KR1019980022440A KR19980022440A KR19990013427A KR 19990013427 A KR19990013427 A KR 19990013427A KR 1019980022440 A KR1019980022440 A KR 1019980022440A KR 19980022440 A KR19980022440 A KR 19980022440A KR 19990013427 A KR19990013427 A KR 19990013427A
Authority
KR
South Korea
Prior art keywords
task
computer
execution
computer devices
devices
Prior art date
Application number
KR1019980022440A
Other languages
English (en)
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 KR19990013427A publication Critical patent/KR19990013427A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따르면, 컴퓨터 환경의 다수의 컴퓨터 장치상에서 최초 태스크의 실행이 개시된다. 최초 태스크의 실행에 응답하여, 제 2 태스크가 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 자동으로 스케줄링된다. 제 2 태스크는 최초 태스크와 동일하거나 상이한 태스크일 수 있다. 선택된 그룹은 존재하지 않거나 혹은 존재하더라도 상기 다수의 컴퓨터 장치 전체보다 적은 수로 되어 있다. 제 2 태스크는 하나 이상의 컴퓨터 장치에 대해 최초 태스크가 실패로 실행될 경우 또는 최초 태스크가 성공적으로 실행될 경우에 실행될 수 있다. 또한, 제 2 태스크를 실행하기 위해 선택된 상기 선택된 그룹은 최초 태스크가 실패로 실행되었는지 또는 성공했는지에 따라 달라질 수 있다. 제 2 태스크는 지정된 모든 컴퓨터 장치들상에서 성공적으로 실행될 때 또는 재시도 횟수가 모두 사용될 때까지 반복적으로 스케줄링될 수 있다.

Description

컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물
본 발명은 일반적으로 컴퓨터 환경에서의 태스크 관리에 관한 것으로, 특히 분산형 컴퓨터 시스템 환경에서 실행되는 태스크를 자동으로 관리하는 것에 관한 것이다.
컴퓨터 시스템 관리자는 통상 하나 이상의 컴퓨터 시스템에 대해 태스크들을 개시함으로써 그 컴퓨터 시스템을 관리한다. 이 태스크들에는 컴퓨터 시스템의 일부의 특징의 상태에 대해 질의 및 보고하는 태스크들 혹은 시스템의 일부 상태를 변경함으로써 컴퓨터 시스템의 실행에 영향을 끼치는 태스크들을 비롯한 여러 가지 유형의 태스크들이 있다.
태스크는 여러 가지 이유로 인해 성공적으로 완료될 수 없다. 예를 들어, 만약 태스크가 시스템상에서 모순된 상태에 부닥치게 되면 성공적으로 완료되지 않을 것이다. 또한, 하나 이상의 시스템에 장애가 발생하면, 태스크는 그 시스템상에서 개시될 수 없다. 또다른 일예로서, 하나 이상의 시스템에 대한 통신 링크에 장애가 발생되면, 그 시스템상에서 태스크는 개시될 수 없다.
장애가 발생한 관리 태스크에 대한 관리자의 응답은 태스크의 유형, 태스크의 중요도 및 태스크의 장애 발생 사유를 비롯한 다수의 요인에 따라 변화할 것이다. 따라서, 관리자는 상이한 요인들에 따라 적절한 응답을 선택할 필요가 있다.
이 선택 과정은 특히, 분산형 다중 시스템 환경에서는 관리상 복잡해 질 수 있다. 태스크가 다중 시스템상에 호출되는 분산형 환경에서, 그 태스크는 일부의 시스템상에서 장애를 일으키고, 나머지 시스템상에서는 성공적으로 종료되며, 다른 시스템상에서는 개시되지 않을 수 있다. 따라서, 관리자는 응답 방법을 결정하기 위해 전술한 결과들을 분석할 필요가 있다. 이러한 것은 막대한 량의 시간을 소모하며 에러를 유발하기가 쉽다.
그러므로, 특정 상황에 대한 응답을 자동으로 선택할 수 있는 태스크 관리 기능의 필요성이 대두되고 있다. 사전결정된 조건이 만족될 때까지 컴퓨터 시스템의 선택 세트에 기초하여 최초 태스크 혹은 새로운 태스크를 반복적으로 스케줄링할 수 있는 또다른 자동 태스크 관리 기능의 필요성이 대두되고 있다. 태스크가 스케줄링되고 시스템이 스케줄링되는 시간내에서 유동적인 또다른 태스크 관리 기능의 필요성이 대두되고 있다.
태스크 관리 방법을 제공함으로써 종래 기술의 단점이 극복되며, 부가적인 장점이 제공된다. 본 발명의 제 1 특징에 따르면, 태스크 관리 방법이 제공되는데, 이 태스크 관리 방법은 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시하는 단계와, 상기 실행 개시에 응답하여 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 단계를 포함한다. 상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함한다.
본 발명의 일 실시예에서, 상기 제 2 태스크는 다음과 같은 상황, 즉, 다수의 컴퓨터 장치중 하나 이상의 컴퓨터 장치들상에서의 최초 태스크의 실행 실패와, 다수의 컴퓨터 장치상에서의 최초 태스크의 실행 성공 중의 어느 하나에 응답하여 스케줄링된다.
본 발명의 다른 실시예에서, 상기 태스크 관리 방법은 최초 태스크의 실행 결과에 기초하여 어떠한 컴퓨터 장치가 선택된 그룹의 일부가 되는지를 결정하는 단계를 포함한다.
본 발명의 또다른 실시예에서, 자동 스케줄링 단계는 사전결정된 조건이 만족될 때까지 반복된다. 사전결정된 조건은 컴퓨터 장치의 선택된 그룹상에서 최초 태스크를 성공적으로 실행하는지 혹은 제 2 태스크와 관련된 재시도 횟수(retry count)를 모두 사용했는지 등을 포함할 수 있다.
본 발명의 제 2 특징에 따르면, 태스크 관리 방법이 제공되는데, 이 태스크 관리 방법은 컴퓨터 장치상에서 최초 태스크의 실행을 대화식으로 개시하는 단계와, 전술한 대화식의 실행 개시에 응답하여 상기 컴퓨터 장치 또는 또다른 컴퓨터 장치상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 단계를 포함한다.
본 발명의 일 실시예에서, 최초 태스크의 실행은 다수의 컴퓨터 장치상에서 개시되고, 제 2 태스크는 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 자동으로 스케줄링된다.
본 발명의 제 3 특징에 따르면, 태스크 관리 시스템이 제공되는데, 이 태스크 관리 시스템은 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시하는 개시 수단과, 상기 실행 개시에 응답하여 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 수단을 포함한다. 상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함한다.
본 발명의 제 4 특징에 따르면, 태스크 관리 시스템이 제공되는데, 이 태스크 관리 시스템은 컴퓨터 장치상의 최초 태스크의 실행을 대화식으로 개시하는 수단과, 상기 대화식의 실행 개시에 응답하여 상기 컴퓨터 장치 또는 또다른 컴퓨터 장치상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 수단을 포함한다.
본 발명의 제 5 특징에 따르면, 적어도 하나의 컴퓨터에 사용가능한 매체를 갖는 제조물이 제공된다. 상기 적어도 하나의 컴퓨터에 사용가능한 매체는 내부에 구현된 컴퓨터 판독가능 프로그램 코드 수단을 가져, 태스크 관리를 가능케 한다. 제조물내의 컴퓨터 판독가능 프로그램 코드 수단은, 예를 들어 컴퓨터 장치로 하여금 다수의 컴퓨터 장치상에서 최초 태스크의 실행의 개시를 가능케 하는 컴퓨터 판독가능 프로그램 코드 수단과, 상기 실행 개시에 응답하여 컴퓨터 장치로 하여금 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 제 2 태스크를 자동으로 스케줄링가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함한다. 상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함한다.
본 발명의 제 6 특징에 따르면, 적어도 하나의 컴퓨터에 사용가능한 매체를 갖는 제조물이 제공된다. 상기 적어도 하나의 컴퓨터에 사용가능한 매체는 내부에 구현된 컴퓨터 판독가능 프로그램 코드 수단을 가져, 태스크 관리를 가능케 한다. 제조물내의 컴퓨터 판독가능 프로그램 코드 수단은, 예를 들어 컴퓨터 장치로 하여금 하나의 컴퓨터 장치상에서 최초 태스크의 실행의 개시를 대화식으로 가능케 하는 컴퓨터 판독가능 프로그램 코드 수단과, 상기 대화식 실행 개시에 응답하여 컴퓨터 장치로 하여금 상기 하나의 컴퓨터 장치 또는 또다른 컴퓨터 장치상에서 실행될 제 2 태스크를 자동으로 스케줄링가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함한다.
본 발명의 원리에 따르면, 태스크 관리 기능이 제공되어 관리자는 하나 이상의 컴퓨터 장치상에서 발생하는 하나의 태스크를 한 스텝으로 지정할 수 있으며, 이에 따라 태스크가 성공적으로 종료되거나 혹은 지정된 재시도 횟수가 모두 사용될 때까지 태스크(또는 새로운 태스크)가 자동으로 재스케줄링될 수 있다. 본 발명의 태스크 관리 기능은, 재스케줄링된 태스크가 임의의 성질을 가질 수 있으며, 또한 원본 태스크와 전적으로 동일할 필요가 없다는 점에서 유동적이다. 또한, 본 발명의 태스크 관리 기능에 따라, 원본 태스크가 실패로 종료된 컴퓨터 장치, 원본 태스크가 성공적으로 종료된 컴퓨터 장치, 또는 그외 임의의 컴퓨터 장치 세트상에서 재스케줄링된 태스크가 효과적으로 실행될 수 있다. 본 발명의 태스크 관리 기능은 대안의 재스케줄링 기능을 갖는 대화식 명령 실행을 제공한다.
부가적인 특징들 및 장점들은 본 발명의 방법들을 통해 구현된다. 본 발명의 다른 실시예들 및 특징들은 본 명세서에서 상세히 기술되며, 또한 본 발명의 특허청구범위로 간주된다.
본 발명으로 여겨지는 요지는 본 명세서의 결론부의 특허청구범위에서 상세히 특정되고 구별되게 청구된다. 본 발명의 전술 및 그외의 목적들, 특징들 및 장점들은 첨부되는 도면과 관련하여 상세히 기술되는 다음의 상세한 설명으로부터 명확히 이해될 수 있다.
도 1a는 본 발명의 태스크 관리 기능을 구현 및 이용하는 컴퓨터 환경의 일예를 도시한 도면.
도 1b는 본 발명의 태스크 관리 기능을 구현 및 이용하는 컴퓨터 환경의 다른 일예를 도시한 도면.
도 2는 본 발명의 태스크 관리 기능과 관련한 처리의 논리 흐름의 일예를 나타낸 도면.
도 3은 본 발명의 태스크 관리 기능의 일예를 도시한 개략적 도면.
도면의 주요 부분에 대한 부호의 설명
101: 컴퓨터 장치 102: 중앙처리장치
104: 주기억 장치 106: 입/출력 장치
107: 컴퓨터 환경 110: 코넥션 장치
본 발명의 원리에 따르면, 컴퓨터 환경의 하나 이상의 컴퓨터 장치에 대해 최초에 스케줄링된 태스크가 실패로 종료할 때 태스크를 자동으로 재스케줄링가능케 하는 태스크 관리 기능이 제공된다. 재스케줄링되는 태스크는 최초 태스크와 동일한 태스크일 수 있거나 최초 태스크과는 상이한 태스크일 수 있다. 또한, 재스케줄링되는 태스크는 최초 태스크를 성공적으로 종료한 컴퓨터 장치, 최초 태스크를 실패로 종료한 컴퓨터 장치, 또는 컴퓨터 환경에서 선택된 임의의 컴퓨터 장치상에서 실행될 수 있다. 마찬가지로, 최초 태스크의 실행이 성공적일 때, 본 발명의 태스크 관리 기능은 최초 태스크의 자동 재스케줄링이나 새로운 태스크의 자동 스케줄링을 가능케 한다. 재스케줄링되는 태스크 또는 새로운 태스크는 최초 태스크가 성공적으로 실행된 컴퓨터 장치 혹은 컴퓨터 환경에서 선택된 임의의 컴퓨터 장치상에서 실행될 수 있다.
본 발명의 태스크 관리 기능을 구현 및 이용하는 컴퓨터 환경의 일예는 도 1a에 도시되며, 아래에서 기술된다.
도 1a를 참조하면, 컴퓨터 환경(100)은, 예를 들어 적어도 하나의 중앙처리장치(102)를 갖는 컴퓨터 장치(101), 주기억장치(104), 하나 이상의 입/출력 장치(106)을 포함하되, 그 각각은 아래에서 설명된다.
주지된 바와 같이, 중앙처리장치(102)는 컴퓨터 장치(101)의 제어부로서, 명령 실행, 인터럽션 동작, 타이밍 동작, 최초 프로그램 로딩 및 다른 기계 관련 동작에 대한 순서화 및 처리 수단을 제공한다. 중앙처리장치는 주지된 적어도 하나의 운영 체제를 실행시키며, 이 운영 체제는, 다른 프로그램의 실행을 제어하고 주변 장치와의 통신을 제어하고 컴퓨터 자원들의 사용을 제어함으로써 컴퓨터 장치의 동작을 제어하는데 사용된다.
중앙처리장치(102)는, 직접 어드레스가능하며 중앙처리장치에 의해 데이타 처리를 고속으로 행하게 하는 주기억장치에 접속되어 있다. 주기억장치는 중앙처리장치와 물리적으로 통합되거나 단독 장치로 구성될 수 있다.
주기억장치(104)는 또한 하나 이상의 입/출력 장치(106)에 접속된다. 이 입/출력 장치는 예를 들어 키보드, 통신 제어기, 전신 처리 장치(teleprocessing device), 프린터, 자기 기억 매체(가령, 테이프, 디스크 등), 직접 액세스 기억 장치, 센서 장치 등을 포함한다. 데이타는 주기억장치(104)로부터 입/출력 장치(106)로 전송되며, 다시 입/출력 장치로부터 주기억장치로 전송된다.
일실시예에서, 컴퓨터 환경(100)은 단일 시스템 환경이며, 이 단일 시스템 환경은 AIX 운영 체제에서 동작하는 RS/6000 컴퓨터 시스템을 포함한다(RS/6000 및 AIX는 IBM사로부터 제공됨). 그러나 본 발명은 이러한 환경에 국한되지는 않는다. 본 발명의 기능들은 여러 형태의 컴퓨터 환경 및 컴퓨터 시스템내에서 구현 및 사용된다. 가령, 컴퓨터 환경(100)은 유닉스 운영 체제를 동작시키는 유닉스 워크스테이션을 포함할 수 있다. 또한 다른 변형이 사용될 수 있으며, 이는 또한 본 발명의 특허청구범위의 일부를 형성할 수도 있다.
본 발명의 태스크 관리 기능을 구현 및 이용하는 컴퓨터 환경의 다른 실시예는 도 1b에 도시되며, 아래에서 보다 상세히 설명된다.
일실시예에서, 컴퓨터 환경(107)은 코넥션 장치(110)를 통해 서로 접속된 다수의 컴퓨터 장치(108)을 포함한다. 일실시예에서, 각각의 컴퓨터 장치는 유닉스 운영 체제를 동작시키는 유닉스 워크스테이션이며, 이 장치들은 TCP/IP 접속 장치를 통해 서로 접속되어 있다. 각각의 컴퓨터 장치는 널리 주지된 바와 같이, 예를 들어 중앙처리장치, 메모리, 하나 이상의 입/출력 장치를 포함한다.
전술한 컴퓨터 환경에 있어서 각 장치는 유닉스 운영 체제를 동작시키는 유닉스 워크스테이션이며, 이 컴퓨터 환경은 단순히 일예에 지나지 않는다. 본 발명의 태스크 관리 기능은 본 발명의 사상을 벗어나지 않는 범위내에서 임의의 형태의 컴퓨터 장치, 컴퓨터, 프로세서, 노드, 시스템, 워크스테이션 및 환경과 함께 구현 및 이용될 수 있다.
예를 들어, 다른 실시예에서, 하나 이상의 장치는 IBM상에 의해 제공되는 PS/2이다. 또다른 실시예에서, 하나 이상의 장치는 IBM상에 의해 제공되는 엔터프라이즈 시스템 아키텍쳐(Enterprise System Architecture)에 토대를 두고 있다. 또한, 운영 체제는 유닉스 운영 체제일 필요는 없다. 가령, 운영 체제는 IBM상에 의해 제공되는 다중 가상 기억(Multiple Virtual Storage;MVS) 운영 체제를 포함할 수 있다. 또한, 코넥션 장치(104)는 TCP/IP일 필요는 없다. 그것은 임의의 유형의 와이어 코넥션 장치, 토큰 링 또는 네트워크 코넥션 장치일 수 있다.
또다른 실시예에서, 컴퓨터 환경은 스위치와 같은 네트워크 코넥션 장치를 통해 서로 접속된 다수의 장치(가령, 512개의 노드)를 갖는 대형의 병렬 시스템을 포함한다. 또한, 다른 환경에서, 컴퓨터 장치들은 하나 이상의 코넥션 장치를 통해 서로 접속된 상이한 형태일 수 있다. 본 발명은 함께 접속된 특정 갯수의 장치나 접속된 장치의 형태에 제한되지는 않는다.
또한, 본 발명이나 컴퓨터 장치 어느 것도 전술한 실시에에 제한되지는 않는다. 컴퓨터 장치는 본 발명의 사상을 벗어나지 않는 범위내에서 다른 형태의 노드, 컴퓨터, 프로세서, 시스템, 워크스테이션 및 환경을 포함할 수 있다. 이러한 형태의 모두는 본 발명의 범위내에 있는 것으로 간주된다.
본 발명의 태스크 관리 기능의 한 실시예는 도 2를 참조하여 하기에서 보다 상세히 설명된다. 일실시예에서, 컴퓨터 환경의 하나 이상의 장치들상에서 태스크가 실행될 때 본 명세서에서 세퍼드 프로그램(Shepherd program)으로 지칭되는 프로그램이 관리자에 의해 호출된다(스텝 200). 세퍼드 프로그램은 예를 들어 PERL과 같은 스크립트 언어로 기술된 셀 스크립트(shell script)이며, 컴퓨터 환경의 적어도 하나의 컴퓨터 장치상에 위치된다. 가령, 태스크를 국소적으로 실행하는데 세퍼드 프로그램이 사용된다면, 그 프로그램은 국소 장치상에 위치되어 실행될 필요가 있다. 그러나, 세퍼드 프로그램이 하나 이상의 원격 컴퓨터 장치상에서 태스크를 실행한다면, 그 프로그램은 하나의 호스트 장치상에 위치되며(가령, 그 장치는 태스크 관리를 제어하는데 사용됨), 원격 장치상에서 태스크를 원격적으로 실행한다.
태스크는 컴퓨터 환경의 일부 특징의 상태에 대해 질의 및 보고하는 태스크 또는 컴퓨터 환경의 일부 상태(가령, 데이타 또는 기능)를 변경하는 태스크를 비롯한 다양한 유형의 태스크일 수 있다. 그러나 이 태스크는 여기에 제한되지는 않는다.
일실시예에서, 관리자는 실행될 태스크를 관리할 경우 사용될 다양한 정보를 세퍼드 프로그램에 지정한다. 이 정보는, 가령 다음의 항목을 포함한다.
a. 실행할 관리 태스크(가령, 명령어). 이는 실행될 명령어, 모든 명령어 옵션 및 오퍼랜드, 태스크가 실행될 하나 이상의 컴퓨터 장치를 포함하는 텍스트열(text string)이다.
유닉스 문법에서 옵션 및 오퍼랜드를 갖는 명령어의 일예는 rm -f F00이며, 여기서, rm은 명령어이며, -f는 옵션이며, F00는 오퍼랜드이다. 명령어 rm은 (-f로 표시되는)상태에 무관하게 파일명 F00을 제거한다.
b. 출구 코드 검사 메카니즘(exit code checking mechanism). 이는 loc 이거나 rem이다.
loc는 그 명령어가 단순화된 (비병렬의) 국소 명령어였음을 나타내며, 그 명령어의 출구 코드를 단순히 검사함으로써 성공 또는 실패가 결정된다는 것을 나타낸다.
rem은 명령어가 하나 이상의 원격 장치상에서 원격적으로(가령, 병렬적으로) 실행되었음을 나타낸다. 이 경우, 명령어의 성공 또는 실패는 명령어의 상태를 포함하는 특정 열(special string)에 대한 각각의 원격 명령어의 확장형 표준 출력을 분석함으로써 결정된다.
표준 출력에 특정 열을 제공하는 것은, 본 출원과 공동 계류중에 있으며 본 출원과 동일 양수인인 리차드 씨 러셀(Richard C. Russell)에 의해 발명된 Method of propagating a command status code from a remote unit to a host unit이라는 명칭의 특허 출원(IBM 도킷 제 PO9-97-012호)에서 상세히 기술되며, 이 출원은 본 명세서에서 참조로 인용된다.
일실시예에서, 원격 명령어는 각각의 원격 장치상에서 그 호출이 성공적이라면 성공적인 것으로 간주되며, 하나 이상의 원격 장치상에서 호출에 실패하면 실패인 것으로 간주된다.
c. 최초 태스크가 성공적일 경우에 실행할 다른 후속 태스크가 되는 성공 태스크. 만약 이 항목이 비어있다면, 다른 후속하는 성공태스크는 스케줄링되지 않는다. 성공 태스크는 최초 태스크와 동일한 태스크이거나 상이한 태스크일 수 있다.
d. 성공 태스크를 스케줄링할 시간. 이는 성공 태스크를 실행할 날짜 및 시간(day and time)를 결정하는데 사용되는 스케줄링 정보이다. 일실시예에서, 유닉스의 at 명령어는 후속 태스크를 스케줄링하는데 사용된다.
특히, at 명령어는 가까운 미래의 시점에서 명령어 또는 스크립트의 개시를 스케줄링하는데 사용된다. 전술한 가까운 미래의 시점을 여러가지 다양한 방식으로 지정할 수 있다. 특정의 날짜/시간을 지정할 수 있거나 시간량(현재 시간으로부터 약간의 시간량)을 선택적으로 증가시킬 수 있다. 약간의 일예들은 다음과 같다. 즉,
echo date | at now + 2 days ― 이 일예는 현재 시간으로부터 2일 후에 날짜 명령어를 실행한다.
echo date | at 3:00 pm Jan 24 ― 이 일예는 1월 24일 pm 3:00에 날짜 명령어를 실행한다.
echo p-clean-tmp-w sys2 | at now 1 hour ― 이 일예는 현재 시간으로부터 1시간 후에 (아래에 기술된)p-clean-tmp-w sys2 명령어를 실행한다.
Echo는 표준 출력의 인자(argument)를 반향시키는 주지된 유닉스 명령어이다.
e. 성공 태스크에 대한 출구 코드 검사 메카니즘. 이 메카니즘은 loc이거나 rem이며, 후속의 성공 태스크의 성공 또는 실패를 결정하는 방식을 나타낸다. 이 메카니즘은 성공 태스크가 세퍼드 프로그램을 이용하여 실행되는 경우 필수적으로 입력 리스트 항목 b가 된다.
f. 성공 태스크를 실행하는 장소. 이는 컴퓨터 장치가 성공 태스크를 실행하는 장소를 나타낸다. 이는, 가령 다음 중의 하나일 수 있다. 즉,
성공 ― 이는 최초 태스크를 성공적으로 실행한 컴퓨터 장치가 성공 태스크를 실행한 장소를 의미한다(주목할 것은 최초의 명령어가 로컬 명령어였다고 하면, 이 장소는 단일의 로컬 장치일 수 있다는 것이다).
명시 ― 이는 성공 태스크를 실행하는 컴퓨터 장치의 리스트가 성공 명령어 열내에서 명시적으로 코드화된 장소를 의미한다.
g. 성공 태스크를 위한 재시도 횟수. 이는 후속의 성공 태스크를 재시도하는 최대의 횟수이다.
h. 실패 태스크. 이는 최초의 명령어가 실패로 될 경우 실행할 다른 구제 태스크이다. 이 항목이 비어 있다면, 후속하는 구제책인 실패 태스크가 스케줄링되지 않는다. 실패 태스크는 최초의 태스크와 동일한 태스크일 수 있거나 상이한 태스크일 수 있다.
i. 실패 태스크를 스케줄링하는 시기. 이는 실패 태스크를 실행하는 날짜 및 시간을 결정하는데 사용되는 스케줄링 정보이다.
일실시예에서, 유닉스의 at 명령어는 구제책의 태스크를 스케줄링하는데 사용된다.
j. 실패 태스크를 위한 출구 코드 검사 메카니즘. 이는 loc이거나 rem이며, 구제책인 실패 태스크의 성공 또는 실패를 결정하는 방식을 나타낸다. 이는 실패 태스크가 세퍼드 프로그램을 이용하여 실행될 경우에 필수적으로 입력 리스트 항목 b가 된다.
k. 실패 태스크를 실행하는 장소. 이는 컴퓨터 장치가 실패 태스크를 실행하는 장소를 나타낸다. 이는, 가령 다음 중의 하나일 수 있다. 즉,
성공 ― 이는 최초의 태스크를 성공적으로 실행한 컴퓨터 장치가 실패 태스크를 실행한 장소를 의미한다(주목할 것은 최초의 명령어가 로컬 명령어였다고 하면, 이 장소는 단일의 로컬 장치일 수 있다는 것이다). 이것은 타겟 장치의 서브세트에서만 성공적으로 실행된 명령어를 복원하는데 사용될 수 있다.
실패 ― 이는 최초의 태스크를 실패로 실행한 컴퓨터 장치가 실패 태스크를 실행하는 장소를 의미한다(주목할 것은 최초의 명령어가 로컬 명령어였다고 하면, 이 장소는 또한 단일의 로컬 장치일 수 있다는 것이다).
명시 ― 이는 실패 태스크를 실행하는 컴퓨터 장치의 리스트가 실패 명령어 열내에서 명시적으로 코드화된 장소를 의미한다.
l. 실패 태스크에 대한 재시도 횟수. 이는 구제책인 실패 태스크를 재시도하는 최대의 횟수이다.
전술한 정보가 세퍼드 프로그램에 어떻게 지정되는지에 대한 일예가 유닉스 문법을 이용하여 아래에서 기술된다.
defrun -a clean-tmp -w sys1
-b loc
-h clean-tmp
-i +24:00
-j loc
-k failure
-l 10
전술한 실시예에서, 문자들은 전술한 항목에 해당한다. 따라서, defrun(또는 세퍼드 프로그램)은 입력으로서 명령어의 이름(가령, clean-tmp) 및 명령어가 실행될 시스템의 명칭(가령, sys1)(항목 a)을 수신하고 있다. 또한, defrun에는 다음과 같은 정보가 제공된다. 즉, 이 정보에는 명령어가 로컬 명령어임을 나타내는 loc 출구 코드 검사 메카니즘(항목 b), 본 실시예에서 동일한 clean-tmp 태스크인 실행될 실패 태스크(항목 h), 현재 시간으로부터 24시간 후에 태스크가 실행될 것이라는 것을 나타내는 표시(항목 i), 실패 태스크에 대한 loc 출구 코드 검사 메카니즘(항목 j), 실패 태스크가 실행될 장소, 본 실시예에서는 최초의 태스크가 실패로 실행된 장치를 나타내는 표시(항목 k), 10인 실패 태스크에 대한 재시도 횟수(항목 l)가 있다.
이 특정 실시예에서, 전술한 항목들 이외의 것들은 이 입력 리스트에 지정되지 않으므로 그것들은 고려되지 않는다. 가령, 이 실시예에서 성공 태스크(항목 c)는 지정되지 않았다.
세퍼드 프로그램의 실행 동안, 세퍼드 프로그램은, 본 실시예에서 clean-tmp인, 항목 a에서 지정된 지정 명령어를 발생시킨다(스텝 202). clean-tmp 명령어는 (가령, PERL로 기재된)스크립트이며, 이 스크립트는 /tmp 파일 시스템으로부터 30일 이상 경과한 모든 파일들을 제거한다. 컴퓨터 시스템 관리자가 /tmp 파일 시스템내의 파일 공간을 관리하는데 도움을 주기 위해 기록할 수 있는 것은 바로 전형적인 스크립트이다.
이 명령어에 대한 로직은 최종으로 갱신된 날짜와 더불어 /tmp 파일 시스템내의 모든 파일의 리스트를 획득하는 로직과, 상기 리스트로부터 30일 이상 경과한 제 2 리스트의 파일을 발생시키는 로직과, 유닉스 rm 명령어를 사용하여 제 2 리스트의 파일을 삭제하는 로직을 포함한다. 일실시예에서, 샘플 출력은 다음과 같이 보일 수 있다. 즉,
127 file deleted
clean-tmp 명령어는 항목 a에서 지정된 하나 이상의 컴퓨터 장치상에서 실행된다. 이 실시예에서, 하나의 장치 sys1만이 지정된다. 항목 b를 주시함으로써 sys1이 로컬 장치라는 것을 알 수 있다. 즉, 태스크는 세퍼드 프로그램이 실행되고 있는 컴퓨터 장치상에서 실행된다.
세퍼드 프로그램하에서 명령어를 실행하는 다른 일예가 아래에서 기술된다.
defrun -a p-clean-tmp -w sys1, sys2, sys3
-b rem
-h p-clean-tmp
-i +24:00
-j rem
-k failure
-l 10
이 일예는 sys1, sys2, sys3의 타겟 시스템으로 p-clean-tmp 스크립트를 실행한다. p-clean-tmp는 지정된 시스템상의 /tmp 파일 시스템으로부터 30일이 경과한 모든 파일을 제거하는데 사용되는 스크립트이다. 이 스크립트는 각각의 지정된 시스템상의 clean-tmp를 병렬로 효율적으로 실행한다. 이 실시예에서, 컴퓨터 장치는 항목 b에서 지정된 바와 같은 원격 장치이다. 따라서, defrun은 호스트 장치상에 위치되며 명령어 clean-tmp를 지정된 3개의 장치상에서 원격적으로 실행하고 있다.
일실시예에서, 명령어는 원격 명령어 실행 수단(가령, 유닉스의 RSH 수단)을 사용하여 원격적으로 실행된다. RSH는 1990년, 프렌티스 홀 출판사를 통해 ISBN 0-13-949876-1로 더블유. 리차드 스티븐스(W. Richard Stevens) 저의 UNIX Network Programming에 기술되며, 이는 본 명세서에서 참고로 인용된다.
본 출원과 공동 계류중에 있으며 본 출원과 동일 양수인인 리차드 씨 러셀(Richard C. Russell)에 의해 발명되어 본 명세서에서 참고로 인용되는 Method of propagating a command status code from a remote unit to a host unit라는 명칭의 특허 출원(IBM 도킷 제 PO9-97-012호)에서 상세히 기술되는 바와 같이, 원격 명령어 실행 수단은 원격 장치상에서 실행될 지정된 명령어를 호스트 장치로부터 원격 장치로 전송하는데 사용된다. 또한, 상기 수단은 다시 지정된 명령어의 실행동안 생성된 표준 출력 및 표준 에러를 호스트 장치로 재전송한다.
일예에서, 지정된 명령어는 p-clean-tmp 스크립트 일예내에서 dsh -w systems runitrc clean-tmp를 지정함으로써 원격 장치상에 생성된다. runitrc는 각각의 원격 장치상에 위치하는 스크립트이며, 각각의 장치는 지정된 명령어를 실행하여 표준 출력의 최종 추가 라인상에 지정된 명령어의 상태 코드를 제공한다. 특히, runitrc는 명령어 라인 인자(실행 명령어)를 분석하며, 지정된 명령어 인라인(specified command inline)을 실행하며, $? 환경 변수(가령, $rc= $?;)내의 명령어 출구 코드를 포착하며, 텍스트를 갖는 표준 출력에 최종 라인을 부가한다.
The return code from the command was $rc., 여기서, $rc는 명령어의 상태(또는 출구) 코드이며, 0이면 zero이고, 0이 아니면 상태 코드의 정수값이다.
DSH는 RSH를 이용하여 지정된 장치 세트상에서 지정된 명령어를 병렬로 실행하는 유틸리티(utility)이다. 각각의 장치상의 명령어 호출로부터의 표준 출력은 단일의 표준 출력 파일에 축적된다. 유사하게, 각각의 장치상의 명령어 호출로부터의 표준 에러는 단일의 표준 에러 파일에 축적된다. 표준 출력과 표준 에러의 각각의 라인 앞에는 명령어를 실행하는 장치의 명칭이 위치한다.
유닉스에서의 DSH 문법의 일예는 다음과 같다. 즉,
dsh -w sys1, sys2, sys3 command, 여기서 -w sys1, sys2, sys3은 지정된 명령어를 실행하는, 코머로 분리된 컴퓨터 장치의 리스트이며, command는 지정된 명령어이다. 이 일예에서, 명령어는 runitrc clean-tmp이다.
DSH는 명령어 라인 인자를 분석하고, 각각의 지정된 컴퓨터 장치에 대해 rsh system command를 발생시키며, 각각의 출력 라인 앞에 컴퓨터 장치의 명칭을 부가한다. 이 일예에서, 명령어는 runitrc clean-tmp이며, 출력은 다음과 같을 수 있다.
sys1: 33 files deleted
sys1: The return code from the command was zero.
sys2: 0 files deleted
sys2: The return code from the command was zero.
sys3: 118 files deleted
sys3: The return code from the command was zero.
명령어를 원격 실행한 후, 각각의 컴퓨터 장치는 원격적으로 실행된 명령어의 상태 코드를 비롯한 표준 출력을 원격 명령어 실행 수단을 통해 호스트 장치상의 세퍼드 프로그램으로 전송한다.
그 후, 태스크가 성공적으로 실행되었는지에 대한 판정이 행해진다(스텝 204)(도 2). 일실시예에서, 성공적인 종료의 판정은 전술한 항목 b로 지정된 바와 같이 명령어가 로컬 명령어인지 원격 명령어인지에 따라 달라진다. 만약 태스크가 로컬 태스크라면, 세퍼드 프로그램은 다순히 명령어의 출구 코드를 검사하여 그것이 성공적으로 종료했는지를 판정한다.
한편, 태스크가 원격 태스크라면, 원격 장치 실행의 각각의 상태 코드는 명령어가 성공적으로 종료했는지를 판정하기 위해 검사될 필요가 있다. 전술한 바와 같이, 각각의 원격 실행의 출력은 수집되어 세퍼드 프로그램에 이용가능하게 형성된다. 따라서, 세퍼드 프로그램은 포함된 장치의 각 상태 코드를 주시하여 그 장치상에서 명령어가 성공적으로 실행되었는지를 판정한다. 일 실시예에서, 하나의 컴퓨터 장치상에서 태스크가 비성공적으로 실행되었다면, 그 실행은 실패로 간주될 것이다. 그러나, 지정된 모든 컴퓨터 장치상에서 성공적으로 실행되었다면, 그것은 성공으로 간주될 것이다.
태스크가 지정된 장치상에서 성공적으로 실행되었다고 결정되었을 경우, 다른 성공 태스크가 지정되었는지에 대한 다른 판정이 행해진다(스텝 206). 특히, 세퍼드 프로그램은 입력 리스트의 항목 c를 검사하여 성공 태스크가 지정되었는지를 판정한다. 성공 태스크가 지정되지 않았다면, 처리는 종료된다(스텝 208). 그러나, (최초에 스케줄링된 것과 동일한 태스크이거나 상이한 태스크일 수 있는) 다른 성공 태스크가 지정되었다면, 다른 태스크가 실행된다(스텝 210).
일실시예에서, 세퍼드 프로그램은 항목 d에 포함된 정보에 기초하여 실행될 다른 성공 태스크를 스케줄링하고 항목 f를 통해 지정된 컴퓨터 장치상에서 다른 태스크의 실행을 개시한다. 태스크는 전술한 바와 같이 실행된다.
그 후, 성공 태스크가 성공적으로 실행되었는지에 대한 판정이 행해진다(스텝 212). 이 판정은 전술한 방식으로 행해진다. 다른 성공 태스크가 성공적으로 실행되었다면, 처리는 종료된다(스텝 208).
그러나, 다른 성공 태스크가 성공적으로 실행되지 않았다면, 항목 g에서 지정된 재시도 횟수가 모두 사용되었는지에 대한 판정이 행해진다(스텝 214). 가령, 성공 태스크가 시도된 횟수가 재시도 횟수를 초과하지 않았다면, 다시 다른 성공 태스크가 실행된다(스텝 210). 다음에 다른 태스크가 성공적으로 실행되었거나 재시도 횟수가 모두 사용될 때까지 전술한 방식으로 처리가 지속된다.
스텝 204를 참조하면, 최초의 태스크가 실패로 되면, 다른 실패 태스크가 지정되었는지에 대한 판정이 행해진다(스텝 216). 일실시예에서, (최초에 실행된 것과 동일한 태스크이거나 상이한 태스크일 수 있는) 다른 실패 태스크는 전술한 항목 h의 세퍼드 프로그램에 지정된다. 이 항목이 비어있다면, 실패 태스크는 제공되지 않는다. 그러나, 실패 태스크가 지정되면, 그것은 항목 i 및 k에 제공된 정보에 기초하여 실행된다(스텝 210).
다른 실패 태스크가 성공적으로 실행되면, 처리는 종료된다(스텝 208). 그러나, 그것이 실패로 실행되면, 재시도 횟수(가령, 항목 1로 지정됨)가 모두 사용되지 않는 한 재스케줄링된다(스텝 214). 일단 재시도 횟수가 모두 사용되었거나 실패 태스크가 지정된 모든 컴퓨터 장치상에서 성공적으로 종료되었다면, 처리는 종료된다.
본 발명의 태스크 관리 기능의 개략적 도면이 도 3에 도시된다. 호스트(또는 로컬) 컴퓨터 장치(302)상에서 실행될 세퍼드 프로그램(300)은 컴퓨터 환경의 하나 이상의 컴퓨터 장치상에서 명령어를 실행할 때 사용될 정보 리스트를 입력으로서 수신한다. 명령어는 세퍼드 프로그램과 동일한 장치상에서 국소적으로 실행되거나 로컬 장치 및 하나 이상의 원격 장치상에서 원격적으로 실행될 수 있다.
세퍼드 프로그램은 수신된 명령어 라인 인자를 분석하고 지정된 명령어 인라인(specified command inline)을 발생시킨다. PERL 프로그래밍 언어가 사용되는 일 실시예에서, 인라인 명령어는 @stdout='command'일 수 있다. 명령어가 원격적으로 실행된다면, 'command'는 'rsh remote runitrc cmd'를 포함할 수 있으며, 여기서, CMD는 원격적으로 실행될 지정된 명령어(가령, clean-tmp)이며, remote는 명령어가 실행될 장치를 지정하고 있다. 또한, 명령어가 다중 시스템상에서 실행된다면, 'command'는 'dsh -w sys1, sys2, ...cmnd'를 포함할 수 있으며, cmnd는 runitrc cmd이다.
명령어가 국소적으로 실행될 때, 세퍼드 프로그램은 국소 실행 명령어의 출구 코드를 검사한다. 그러나, 명령어가 원격적으로 실행될 때, 세퍼드 프로그램은 명령어를 실행하는 각각의 원격 장치로부터 상태를 수신 및 검사한다. 특히, 세퍼드 프로그램은 @stdout 변수인 명령어의 표준 출력을 분석하여 지정된 각각의 원격 장치로부터 상태 코드를 검토한다.
그 후, 세퍼드 프로그램은 성공 태스크 또는 실패 태스크가 스케줄링되는지 혹은 이들 태스크 모두가 스케줄링되지 않는지에 대한 판정을 행한다. 가령, 지정된 각각의 컴퓨터 장치상에서 최초의 태스크가 성공적으로 실행되고 성공 태스크가 지정되면, 그 태스크는 스케줄링된다. (성공 태스크 혹은 실패 태스크가 제공되지 않으면, 처리는 종료된다.)
세퍼드 프로그램은 또다른 세퍼드 프로그램(314)의 호출에 제공된 개정된 입력 리스트(312)내에 지정된 정보를 사용하여 성공 태스크 또는 실패 태스크(310)를 스케줄링한다. 개정된 입력 리스트는, 가령 다른 태스크를 실행하기 위해 선택된 컴퓨터 장치 뿐만 아니라 다른 태스크의 스케줄링을 위한 시간 및 날짜를 나타낸다. 선택된 컴퓨터 장치는 전술한 바와 같이 최초 지정된 장치와 동일하거나 상이할 수 있다.
가령, 성공 태스크는 세퍼드 프로그램의 또다른 호출을 스케줄링하는 적당한 변수들을 갖는 유닉스의 at 명령어를 발생시킴으로써 스케줄링된다. 성공 태스크를 실행할 때 사용되는 개정된 입력 리스트의 일예는 다음과 같다.즉,
개정된 리스트 획득된 정보
-a command from -c success-task
-b exit-code-type from -e success-task-exit-code-type
-c success-task from -c success-task
-d success-task-time from -d success-task-time
-e success-task-exit-code-type from -e success-task-exit-code-type
-f success-task-target from -f success-task-target
-g success-task-retry-count from -g success-task-retry-count-1
주목할 것은 재시도 횟수는 1씩 감소된다는 것이다.
다른 일예로서, 다음의 개정된 입력 리스트를 사용하여 실패 태스크가 스케줄링된다. 즉,
개정된 리스트 획득된 정보
-a command from -h failure-task
-b exit-code-type from -j failure-task-exit-code-type
-h failure-task from -h failure-task
-i failure-task-time from -i failure-task-time
-j failure-task-exit-code-type from -j failure-task-exit-code-type
-k failure-task-target from -k failure-task-target
-l failure-task-retry-count from -l failure-task-retry-count-1
주목할 것은 재시도 횟수는 1씩 감소된다는 것이다.
다른 태스크의 스케줄링은 태스크가 선택된 모든 컴퓨터 장치에 의해 성공적으로 실행되거나 그 특정 태스크(성공 태스크 또는 실패 태스크)에 대한 재시도 횟수가 모두 사용될 때까지 반복된다(316).
전술한 것은 관리자가 1스텝으로 하나 이상의 컴퓨터 장치상에서 발생할 태스크를 지정할 수 있는 태스크 관리 기능이다. 태스크가 최초에 실패로 실행되면, 자동 관리 기능에 따라 태스크의 재스케줄링이 가능해진다. 또한, 본 발명의 융통성에 따라, 재스케줄링될 태스크는 임의의 성질을 가질 수 있으며, 최초에 스케줄링된 태스크와 전적으로 동일한 태스크일 필요는 없다. 본 발명에 따르면, 재스케줄링될 태스크는 최초의 태스크가 실패로 실행된 타겟 장치, 최초의 태스크가 성공적으로 실행된 타겟 장치, 및 임의의 다른 하나 이상의 컴퓨터 장치 세트상에서 실행될 수 있다.
또한, 본 발명의 기능에 따르면, 최초에 스케줄링된 태스크가 하나 이상의 컴퓨터 장치상에서 성공적으로 실행될 때 다른 태스크(또는 동일한 태스크이어도 상관없음)가 실행될 수 있다. 이 태스크는 최초의 태스크가 성공적으로 실행된 동일한 장치 또는 임의의 컴퓨터 장치 세트상에서 실행될 수 있다.
본 발명은 다중 시스템상에서 병렬로 개시된 태스크의 결과에 기초하여 최종의 구제 동작을 프로그래밍하기 위한 일반적 메카니즘을 제공한다. 이 메카니즘에 따르면, 모든 타겟 장치상의 최초 태스크의 성공 또는 하나 이상의 타겟 장치상의 태스크의 실패에 따른 자동화 동작이 가능하다. 또한, 최종의 구제 동작이 최초의 태스크와는 완전히 상이한 동작일 수 있다.
또한, 본 발명은 분산형 타겟 시스템으로부터 상태 복귀 정보를 중점적으로 분석하여 집합 정보에 기초하여 동작이 지속으로 행해지도록 할 수 있다. 또한, 본 발명은 태스크를 대화식으로 실행할 수 있는 컴퓨터 환경에서 동작할 수 있다. 즉, 태스크는 배치 모드에서와 같이 자원들이 이용가능한 경우에 실행되는 것과는 반대로 즉각적으로 실행 및 서비스될 수 있다.
본 발명은 가령 컴퓨터 사용가능 매체를 갖는 제조물(가령, 하나 이상의 컴퓨터 프로그램 제품)내에 포함될 수 있다. 매체는 가령 본 발명의 기능을 제공하기 위한 컴퓨터 판독가능 프로그램 코드 수단내부에 구현된다. 제조물은 컴퓨터 시스템의 일부로서 포함될 수 있거나 별도로 판매될 수 있다.
본 명세서에 도시된 흐름도는 실시예에 불과하다. 본 발명의 사상을 벗어나지 않는 범위내에서 도시된 도면 또는 스텝들에 대해 여러 변형이 가해질 수 있다. 가령, 스텝들은 상이한 순서로 행해질 수 있거나, 스텝들이 부가되거나, 삭제되거나 또는 변형될 수 있다. 이러한 모든 변형들은 본 특허청구범위의 일부로서 간주될 것이다.
바람직한 실시예가 상세히 기술되어 있지만, 본 기술분야의 당업자라면 본 발명의 사상을 벗어나지 않는 범위내에서 이 실시예에 여러 변형, 부가, 대체 등을 가할 수 있으며, 이는 본 특허청구범위내의 것으로 간주된다.

Claims (53)

  1. 태스크 관리 방법에 있어서,
    ① 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시하는 단계와,
    ② 상기 실행 개시에 응답하여, 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 단계―상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함함―를 포함하는
    태스크 관리 방법.
  2. 제 1 항에 있어서,
    상기 제 2 태스크는,
    상기 다수의 컴퓨터 장치들 중 하나 이상의 컴퓨터 장치에 대해 최초 태스크의 실행이 실패로 되는 경우와,
    상기 다수의 컴퓨터 장치들상에서 최초 태스크의 실행이 성공적으로 될 경우 중의 어느 하나에 응답하여 스케줄링되는 태스크 관리 방법.
  3. 제 2 항에 있어서,
    상기 최초 태스크의 실행의 결과에 기초하여, 어떠한 컴퓨터 장치들이 상기 선택된 그룹의 일부가 되는지를 결정하는 단계를 더 포함하는 태스크 관리 방법.
  4. 제 3 항에 있어서,
    상기 선택된 그룹은 최초 태스크가 상기 다수의 컴퓨터 장치들 중 하나 이상의 컴퓨터 장치에 대해 실패로 되었을 경우,
    상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 태스크 관리 방법.
  5. 제 3 항에 있어서,
    상기 제 2 태스크는 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 태스크 관리 방법.
  6. 제 1 항에 있어서,
    사전결정된 조건이 만족될 때까지 자동 스케줄링을 반복하는 단계를 더 포함하는 태스크 관리 방법.
  7. 제 6 항에 있어서,
    상기 사전결정된 조건은 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 상기 제 2 태스크를 성공적으로 실행하는 것과,
    상기 제 2 태스크와 관련한 재시도 횟수를 모두 사용하는 것 중의 하나를 포함하는 태스크 관리 방법.
  8. 제 1 항에 있어서,
    상기 최초 실행과 자동 스케줄링은 컴퓨터 프로그램에 의해 제어될 수 있는 태스크 관리 방법.
  9. 제 1 항에 있어서,
    상기 제 2 태스크는 상기 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 태스크 관리 방법.
  10. 제 1 항에 있어서,
    상기 선택된 그룹은 상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 태스크 관리 방법.
  11. 태스크 관리 방법에 있어서,
    ① 컴퓨터 장치상에서 최초 태스크의 실행을 대화식으로 개시하는 단계와,
    ② 상기 대화식 실행 개시에 응답하여, 상기 컴퓨터 장치 중의 하나의 컴퓨터 장치 및 다른 컴퓨터 장치상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 단계를 포함하는
    태스크 관리 방법.
  12. 제 11 항에 있어서,
    상기 제 2 태스크는,
    상기 컴퓨터 장치에 대해 최초 태스크의 실행이 실패로 되는 경우와,
    상기 컴퓨터 장치상에서 최초 태스크의 실행이 성공적으로 될 경우 중의 어느 하나에 응답하여 스케줄링되는 태스크 관리 방법.
  13. 제 11 항에 있어서,
    상기 대화식 실행 개시 단계는 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시하는 단계를 포함하며, 상기 자동 스케줄링 단계는 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 상기 제 2 태스크를 스케줄링하는 단계를 포함하는 태스크 관리 방법.
  14. 제 13 항에 있어서,
    다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 개시하는 단계는 상기 다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 병렬로 개시하는 단계를 포함하는 태스크 관리 방법.
  15. 제 13 항에 있어서,
    상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함하는 태스크 관리 방법.
  16. 제 15 항에 있어서,
    상기 최초 태스크의 실행의 결과에 기초하여, 어떠한 컴퓨터 장치들이 상기 선택된 그룹의 일부가 되는지를 결정하는 단계를 더 포함하는 태스크 관리 방법.
  17. 제 13 항에 있어서,
    상기 선택된 그룹은 상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 태스크 관리 방법.
  18. 제 11 항에 있어서,
    상기 제 2 태스크는 상기 최초 태스크와 동일한 태스크와 상기 최초 태스크와는 상이한 태스크 중의 하나인 태스크 관리 방법.
  19. 태스크 관리 시스템에 있어서,
    ① 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시하는 수단과,
    ② 상기 실행 개시에 응답하여, 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 수단―상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함함―을 포함하는
    태스크 관리 시스템.
  20. 제 19 항에 있어서,
    상기 제 2 태스크는,
    상기 다수의 컴퓨터 장치들 중 하나 이상의 컴퓨터 장치에 대해 최초 태스크의 실행이 실패로 되는 경우와,
    상기 다수의 컴퓨터 장치들상에서 최초 태스크의 실행이 성공적으로 될 경우 중의 어느 하나에 응답하여 스케줄링되는 태스크 관리 시스템.
  21. 제 20 항에 있어서,
    상기 최초 태스크의 실행의 결과에 기초하여, 어떠한 컴퓨터 장치들이 상기 선택된 그룹의 일부가 되는지를 결정하는 수단을 더 포함하는 태스크 관리 시스템.
  22. 제 21 항에 있어서,
    상기 선택된 그룹은 최초 태스크가 상기 다수의 컴퓨터 장치들 중 하나 이상의 컴퓨터 장치에 대해 실패로 되었을 경우,
    상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 태스크 관리 시스템.
  23. 제 21 항에 있어서,
    상기 제 2 태스크는 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 태스크 관리 시스템.
  24. 제 19 항에 있어서,
    사전결정된 조건이 만족될 때까지 자동 스케줄링을 반복하는 수단을 더 포함하는 태스크 관리 시스템.
  25. 제 24 항에 있어서,
    상기 사전결정된 조건은 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 상기 제 2 태스크를 성공적으로 실행하는 것과,
    상기 제 2 태스크와 관련한 재시도 횟수를 모두 사용하는 것 중의 하나를 포함하는 태스크 관리 시스템.
  26. 제 19 항에 있어서,
    상기 실행 개시 수단과 상기 자동 스케줄링 수단은 컴퓨터 프로그램을 포함하는 태스크 관리 시스템.
  27. 제 19 항에 있어서,
    상기 제 2 태스크는 상기 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 태스크 관리 시스템.
  28. 제 19 항에 있어서,
    상기 선택된 그룹은 상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 태스크 관리 시스템.
  29. 태스크 관리 시스템에 있어서,
    ① 컴퓨터 장치상에서 최초 태스크의 실행을 대화식으로 개시하는 수단과,
    ② 상기 대화식 실행 개시에 응답하여, 상기 컴퓨터 장치 중의 하나의 컴퓨터 장치 및 다른 컴퓨터 장치상에서 실행될 제 2 태스크를 자동으로 스케줄링하는 수단을 포함하는
    태스크 관리 시스템.
  30. 제 29 항에 있어서,
    상기 제 2 태스크는,
    상기 컴퓨터 장치에 대해 최초 태스크의 실행이 실패로 되는 경우와,
    상기 컴퓨터 장치상에서 최초 태스크의 실행이 성공적으로 될 경우 중의 어느 하나에 응답하여 스케줄링되는 태스크 관리 시스템.
  31. 제 29 항에 있어서,
    상기 대화식 실행 개시 수단은 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시하는 수단을 포함하며, 상기 자동 스케줄링 수단은 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 상기 제 2 태스크를 스케줄링하는 수단을 포함하는 태스크 관리 시스템.
  32. 제 31 항에 있어서,
    다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 개시하는 수단은 상기 다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 병렬로 개시하는 수단을 포함하는 태스크 관리 시스템.
  33. 제 31 항에 있어서,
    상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함하는 태스크 관리 시스템.
  34. 제 33 항에 있어서,
    상기 최초 태스크의 실행의 결과에 기초하여, 어떠한 컴퓨터 장치들이 상기 선택된 그룹의 일부가 되는지를 결정하는 수단을 더 포함하는 태스크 관리 시스템.
  35. 제 31 항에 있어서,
    상기 선택된 그룹은 상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 태스크 관리 시스템.
  36. 제 29 항에 있어서,
    상기 제 2 태스크는 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 태스크 관리 시스템.
  37. 제조물에 있어서,
    태스크의 관리를 가능케하는 컴퓨터 판독가능 프로그램 코드 수단을 내부에 구현한 적어도 하나의 컴퓨터 사용가능 매체를 포함하며,
    상기 제조물내의 컴퓨터 판독가능 프로그램 코드 수단은
    ① 컴퓨터 장치로 하여금 다수의 컴퓨터 장치상에서 최초 태스크의 실행을 개시가능케 하는 컴퓨터 판독가능 프로그램 코드 수단과,
    ② 컴퓨터 장치로 하여금 상기 실행 개시에 응답하여 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 제 2 태스크를 자동으로 스케줄링가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하는
    제조물.
  38. 제 37 항에 있어서,
    상기 제 2 태스크는,
    상기 다수의 컴퓨터 장치 중 하나 이상의 컴퓨터 장치에 대해 최초 태스크의 실행이 실패로 되는 경우와,
    상기 다수의 컴퓨터 장치상에서 최초 태스크의 실행이 성공적으로 될 경우 중의 어느 하나에 응답하여 스케줄링되는 태스크 관리 시스템.
  39. 제 38 항에 있어서,
    상기 최초 태스크의 실행의 결과에 기초하여, 어떠한 컴퓨터 장치들이 상기 선택된 그룹의 일부가 되는지를 컴퓨터 장치로 하여금 결정가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 더 포함하는 제조물.
  40. 제 39 항에 있어서,
    상기 선택된 그룹은 최초 태스크가 상기 다수의 컴퓨터 장치들 중 하나 이상의 컴퓨터 장치에 대해 실패로 되었을 경우,
    상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 제조물.
  41. 제 39 항에 있어서,
    상기 제 2 태스크는 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 제조물.
  42. 제 37 항에 있어서,
    컴퓨터 장치로 하여금 사전결정된 조건이 만족될 때까지 자동 스케줄링을 반복가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 더 포함하는 제조물.
  43. 제 42 항에 있어서,
    상기 사전결정된 조건은 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 상기 제 2 태스크를 성공적으로 실행하는 것과,
    상기 제 2 태스크와 관련한 재시도 횟수를 모두 사용하는 것 중의 하나를 포함하는 제조물.
  44. 제 37 항에 있어서,
    상기 제 2 태스크는 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 제조물.
  45. 제 37 항에 있어서,
    상기 선택된 그룹은 상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 제조물.
  46. 제조물에 있어서,
    태스크의 관리를 가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 내부에 구현한 적어도 하나의 컴퓨터 사용가능 매체를 포함하며,
    상기 제조물내의 컴퓨터 판독가능 프로그램 코드 수단은
    ① 컴퓨터 장치로 하여금 하나의 컴퓨터 장치상에서 최초 태스크의 실행을 대화식으로 개시가능케 하는 컴퓨터 판독가능 프로그램 코드 수단과,
    ② 컴퓨터 장치로 하여금 상기 대화식 실행 개시에 응답하여 상기 하나의 컴퓨터 장치와 또다른 컴퓨터 장치 중의 하나에서 실행될 제 2 태스크를 자동으로 스케줄링가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하는
    제조물.
  47. 제 46 항에 있어서,
    상기 제 2 태스크는,
    상기 최초 태스크의 실행이 실패로 되는 경우와,
    상기 최초 태스크의 실행이 성공적으로 될 경우 중의 어느 하나에 응답하여 스케줄링되는 제조물.
  48. 제 46 항에 있어서,
    컴퓨터 장치로 하여금 대화식 실행 개시를 가능케 하는 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터 장치로 하여금 다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 개시가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하며, 컴퓨터 장치로 하여금 자동 스케줄링을 가능케 하는 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터 장치로 하여금 적어도 하나의 컴퓨터 장치의 선택된 그룹상에서 실행될 상기 제 2 태스크를 스케줄링가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 제조물.
  49. 제 48 항에 있어서,
    컴퓨터 장치로 하여금 다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 개시가능케 하는 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터 장치로 하여금 상기 다수의 컴퓨터 장치상에서 상기 최초 태스크의 실행을 병렬로 개시가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 제조물.
  50. 제 48 항에 있어서,
    상기 선택된 그룹은 상기 다수의 컴퓨터 장치들 중 존재하는 것이 없거나 그 이상의 컴퓨터 장치들을 포함하되 상기 다수의 컴퓨터 장치 전체의 갯수보다는 적은 갯수의 컴퓨터 장치들을 포함하는 제조물.
  51. 제 50 항에 있어서,
    컴퓨터 장치로 하여금 상기 최초 태스크의 실행의 결과에 기초하여 어떠한 컴퓨터 장치들이 상기 선택된 그룹의 일부가 되는지를 결정가능케 하는 컴퓨터 판독가능 프로그램 코드 수단을 더 포함하는 제조물.
  52. 제 48 항에 있어서,
    상기 선택된 그룹은 상기 최초 태스크의 실행이 성공적으로 실행된 하나 이상의 컴퓨터 장치와,
    상기 최초 태스크의 실행이 실패로 실행된 하나 이상의 컴퓨터 장치와,
    하나 이상의 임의 선택된 컴퓨터 장치 중의 어느 하나를 포함하는 제조물.
  53. 제 46 항에 있어서,
    상기 제 2 태스크는 최초 태스크와 동일한 태스크와 상기 최초 태스크와 상이한 태스크 중의 하나인 제조물.
KR1019980022440A 1997-07-15 1998-06-15 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물 KR19990013427A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US89278797A 1997-07-15 1997-07-15
US8/892,787 1997-07-15

Publications (1)

Publication Number Publication Date
KR19990013427A true KR19990013427A (ko) 1999-02-25

Family

ID=65908725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980022440A KR19990013427A (ko) 1997-07-15 1998-06-15 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물

Country Status (1)

Country Link
KR (1) KR19990013427A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140109940A (ko) * 2012-01-09 2014-09-16 마이크로소프트 코포레이션 Paas 계층적 스케일링 및 자동 스케일링 기법
US11194604B2 (en) 2012-01-09 2021-12-07 Microsoft Technology Licensing, Llc Assignment of resources in virtual machine pools

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140109940A (ko) * 2012-01-09 2014-09-16 마이크로소프트 코포레이션 Paas 계층적 스케일링 및 자동 스케일링 기법
US11194604B2 (en) 2012-01-09 2021-12-07 Microsoft Technology Licensing, Llc Assignment of resources in virtual machine pools

Similar Documents

Publication Publication Date Title
US11704224B2 (en) Long running workflows for robotic process automation
US11288557B2 (en) Long running workflows for document processing using robotic process automation
US10528395B2 (en) Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
US7458074B2 (en) Method and apparatus for installing and upgrading an application in a computer system
US6044394A (en) Managing independently executing computer tasks that are interrelated by dataflow
US4974149A (en) Data distribution apparatus and method having a data description including information for specifying a time that a data distribution is to occur
US8473893B2 (en) Integration of external software analysis processes with software configuration management applications
EP0854431A2 (en) Events as activities in process models of workflow management systems
US8347294B2 (en) Automated administration using composites of atomic operations
JP2004505333A (ja) 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語
US20220391304A1 (en) Monitoring long running workflows for robotic process automation
US7836448B1 (en) System and methods for task management
US8806490B1 (en) Method and apparatus for managing workflow failures by retrying child and parent elements
US20080172669A1 (en) System capable of executing workflows on target applications and method thereof
KR19990013427A (ko) 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물
KR20010110097A (ko) 작업흐름-관리-시스템에서의 보관 방법
US20040181792A1 (en) Method to control, manage and monitor batched command files
US20240210903A1 (en) Software Development (DevOps) Pipelines for Robotic Process Automation
Sirvent et al. GRID superscalar and SAGA: forming a high-level and platform-independent Grid programming environment
EP0211420B1 (en) Data distribution apparatus and method
JP2010536101A (ja) Sip及びsdpプロトコルのユーザーカスタマイズ用コルーチンインターフェース
EP0892346A2 (en) Propagation of a command status code from a remote unit to a host unit
EP0892345A2 (en) Method of propagating a command status code from a remote unit to a host unit
CN117056050A (zh) 一种rpa机器人调度方法及系统
EP0902366A2 (en) System of propagating a command status code from a remote unit to a host unit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application