KR101021394B1 - 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법 및 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법, 및 컴퓨터 판독가능 저장 매체 - Google Patents

컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법 및 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법, 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR101021394B1
KR101021394B1 KR1020040031824A KR20040031824A KR101021394B1 KR 101021394 B1 KR101021394 B1 KR 101021394B1 KR 1020040031824 A KR1020040031824 A KR 1020040031824A KR 20040031824 A KR20040031824 A KR 20040031824A KR 101021394 B1 KR101021394 B1 KR 101021394B1
Authority
KR
South Korea
Prior art keywords
module
computing system
root cause
diagnostic
error conditions
Prior art date
Application number
KR1020040031824A
Other languages
English (en)
Other versions
KR20040095682A (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 KR20040095682A publication Critical patent/KR20040095682A/ko
Application granted granted Critical
Publication of KR101021394B1 publication Critical patent/KR101021394B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B5/00Packaging individual articles in containers or receptacles, e.g. bags, sacks, boxes, cartons, cans, jars
    • B65B5/10Filling containers or receptacles progressively or in stages by introducing successive articles, or layers of articles
    • B65B5/101Filling containers or receptacles progressively or in stages by introducing successive articles, or layers of articles by gravity
    • B65B5/103Filling containers or receptacles progressively or in stages by introducing successive articles, or layers of articles by gravity for packaging pills or tablets
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B35/00Supplying, feeding, arranging or orientating articles to be packaged
    • B65B35/10Feeding, e.g. conveying, single articles
    • B65B35/12Feeding, e.g. conveying, single articles by gravity
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B61/00Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages
    • B65B61/04Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages for severing webs, or for separating joined packages
    • B65B61/06Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages for severing webs, or for separating joined packages by cutting
    • B65B61/10Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages for severing webs, or for separating joined packages by cutting using heated wires or cutters
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61JCONTAINERS SPECIALLY ADAPTED FOR MEDICAL OR PHARMACEUTICAL PURPOSES; DEVICES OR METHODS SPECIALLY ADAPTED FOR BRINGING PHARMACEUTICAL PRODUCTS INTO PARTICULAR PHYSICAL OR ADMINISTERING FORMS; DEVICES FOR ADMINISTERING FOOD OR MEDICINES ORALLY; BABY COMFORTERS; DEVICES FOR RECEIVING SPITTLE
    • A61J7/00Devices for administering medicines orally, e.g. spoons; Pill counting devices; Arrangements for time indication or reminder for taking medicine
    • A61J7/0076Medicament distribution means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

컴퓨팅 시스템에서 프로그램적으로 문제의 근본 원인을 진단하는 방법이 개시된다. 운영 체제 내에서 이벤트가 모니터되고, 적어도 이벤트의 부분집합이 로그 파일에 기록된다. 에러 조건 검출에 응답하여, 진단 모듈이 호출된다. 진단 모듈은 로그 파일을 질의하여 문제의 진단과 관련된 이벤트들을 상관시키고, 질의 결과를 평가함으로써 근본 원인을 파악한다. 일단 문제의 근본 원인이 진단되면, 그 근본 원인에 대응하는 해결 모듈이 호출되어 프로그램적으로 문제를 해결한다. 진단 및 해결 모듈은 정책 규칙에 따라 호출된다. 또한, 기록, 진단 및 해결 모듈은 필요 시 자동적으로 업데이트될 수 있다.
Figure 112004019088565-pat00001
문제 진단, 문제 해결, 근본 원인, 이벤트, 정책 규칙

Description

컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법 및 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법, 및 컴퓨터 판독가능 저장 매체{PROGRAMMATIC COMPUTER PROBLEM DIAGNOSIS AND RESOLUTION AND AUTOMATED REPORTING AND UPDATING OF THE SAME}
도 1은 본 발명의 특징을 구현하기에 적합한 컴퓨팅 시스템.
도 2는 본 발명의 특징을 구현하는 데 사용되는 보다 구체적인 구조도.
도 3은 본 발명의 원리에 따라 컴퓨팅 시스템에서 문제를 프로그램적으로 진단하고 잠재적으로 해결하는 방법의 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100: 컴퓨팅 시스템
102: 처리 장치
104: 메모리
본 발명은 일반적으로 소프트웨어, 보다 구체적으로는, 퍼스널 컴퓨터를 동작시킬 때 발생하는 문제의 근본 원인을 프로그램적으로 결정하고 사용자가 그 문제를 다룰 수 있도록 프로그램적 해결 방안 및/또는 풍부한 진단 데이터를 제공해 주는 시스템 및 방법에 관한 것이다.
컴퓨팅 기술은 우리가 일하고 노는 방식을 바꿔 왔다. 최근 몇 십년간, 컴퓨터 기술은 상당히 복잡해졌다. 이러한 복잡성으로 인해 컴퓨팅 시스템은 아주 다양하고 복잡한 기능 및 애플리케이션을 수행할 수 있게 되었고, 따라서 컴퓨팅 시스템의 실용성(utility)도 꾸준히 증가되었다. 한편으로는, 이러한 복잡성으로 인해 또한 가장 기술이 뛰어난 소프프웨어 기술자조차 가능한 모든 환경에서 완벽하게 호환되고 기능을 하는 소프트웨어를 개발하는 것이 점점 어려워지고 있다. 따라서, 향상된 컴퓨팅 시스템에서조차 충돌(crash), 시스템 장애(system hang), 또는 성능 저하(performance degradation)와 같은 문제를 종종 경험한다.
현재, 컴퓨팅 시스템에서 많은 문제의 근본 원인을 쉽게 진단하고 결정하는 것은 어렵거나 불가능하다. 컴퓨팅 시스템의 운영 체제는 일반적으로 기본적인 에러 메세지의 형태로 문제의 실재를 확인하는 일부 제한된 메커니즘을 포함한다. 그러나, 이 에러 메세지는 문제의 근본 원인을 진단하고 해결하려고 하거나 그 문제를 피하는 차선책을 알아보기 위해 시도하는 사람들에게 충분한 정보를 제공하지 못한다.
다수의 서로 다른 애플리케이션 및 장치가 어떤 주어진 시간에 운영 체제 상에서 수행될 수 있기 때문에, 그리고 이러한 컴포넌트들 간의 상호 운용성(interoperability)이 복잡한 문제를 초래할 수 있기 때문에, 운영 체제가 어느 애플리케이션이, 어느 장치 드라이버가, 또는 어느 구성이 표면에 나타난 문제의 근본 원인인가를 결정하는 것은 종종 어렵다. 상호 운용성은 특히 여러 상호 운용 컴포넌트들이 서로 다른 공급자들에 의해 제공되는 환경에서 복잡한 문제를 초래한다. 이 문제들은 운영 체제, 애플리케이션, 또는 장치 드라이버와 관련되었을 수 있지만, 일단 그 문제가 표면에 나타나면(예를 들어 시스템 충돌(system crash)을 통해), 이미 너무 늦어져 문제를 해결하는 데 도움이 되는 어떠한 정보도 제공할 수 없다. 이러한 문제는 운영 제체 상에서 실행하고 있는 애플리케이션 또는 장치 드라이버가 운영 체제의 프로그래밍 지침(programming guideline)을 따르지 않을 때 더욱 악화된다.
게다가, 문제를 진단하는 데 사용될 충분한 자료가 있다 하더라도, 문제의 근본 원인을 진단하고 해결 방안을 제공하기 위해서는 종종 상당한 사용자의 노력이 필요하다. 컴퓨팅 시스템 문제를 진단하고 해결하는 데에 상당한 사용자의 노력을 필요로 하는 것은, 특히 사용자가 컴퓨팅 시스템에 더 적은 문제를 기대한다면, 컴퓨팅 시스템으로 작업하는 데 있어 사용자의 경험을 저하시킬 수 있다.
또한, 많은 사용자들은 그들 스스로 컴퓨팅 시스템 문제를 진단하고 해결할 만큼 경험이 충분하지 않다. 그러므로, 사용자들은 문제를 해결할 수 있을 것이라고 기대하는 조치를 취할 수 있지만, 문제에 대한 부정확한 진단 또는 해결 방안으로 인해 문제를 해결할 수 없을 것이다. 이러한 조치는 실제로 컴퓨팅 시스템의 성능 또는 안정성(stability)을 더욱 저하시킬 수도 있다. 사용자는 또한 문제를 진단하고 해결하기 위해 다른 사람들에게 도움을 요청할 수도 있기 때문에, 사용자측 또는 문제를 해결하기 위해 도와주는 측에 시간 또는 비용에 있어 불필요한 대가를 초래하게 된다.
이러한 이유로 인해, 운영 체제로 하여금 컴퓨팅 시스템 문제의 근본 원인을 더 잘 결정할 수 있도록 해주는 시스템 및 방법이 이로울 것이다. 또한, 파악된 문제를 다루는 프로그램적인 수단을 제공하는 시스템 및 방법이 이로울 것이다.
종래 기술과 함께 앞서 설명된 문제점들은, 컴퓨팅 시스템에서 프로그램적으로 문제의 근본 원인을 진단하는 시스템 및 방법에 대한 본 발명의 원리에 의해 극복된다. 한 실시예에서, 그 방법은 운영 체제 내에서 적절한 도구에 의해 발생된 이벤트를 모니터링하고, 적어도 이벤트들의 부분집합을 로그 파일에 기록하고, 하나 이상의 에러 조건을 검출하는 것을 포함한다. 이에 응답하여, 진단 모듈이 호출된다. 진단 모듈은 문제 진단과 관련된 이벤트에 대해 로그 파일을 질의하고, 질의 결과를 평가함으로써 근본 원인을 파악한다. 일단 문제의 근본 원인이 진단되면, 그 근본 원인에 대응하는 해결 모듈(resolution module)이 호출되어 문제를 프로그램적으로 해결한다.
사용자 정의(user-defined) 또는 디폴트 정책 규칙(default policy rules)은 진단 모듈 및/또는 해결 모듈이 언제 호출되는가 또는 호출 여부를 결정할 수 있다. 그러므로, 컴퓨팅 시스템 문제는 프로그램적으로 진단되고 해결될 수 있고, 따라서 사용자 경험을 향상시키는 것과 동시에, 또한 여전히 사용자는 진단 및 해결 프로세스 전반에 걸쳐 어느 정도 제어할 수 있다. 한 실시예에서, 질의 결과의 적어도 일부가 에러 보고 서비스(error reporting service)로 전송되고, 에러 보고 서비스는 컴퓨팅 시스템에 하나 이상의 업데이트 사항을 리턴한다. 이러한 업데이 트 사항은 기록 대상 이벤트, 진단 모듈의 진단 방법, 및/또는 해결 모듈의 해결 방법 등을 변경시킨다.
본 발명의 부가적인 특성 및 이점이 이하에 설명되며, 일부는 설명으로부터 명백하고 또는 본 발명의 실행을 통해 알게 될 것이다. 본 발명의 특징 및 이점들은 특히 첨부된 청구범위에 개시되는 수단 및 조합에 의해 알게 되고 획득될 것이다. 본 발명의 이러한 특징 및 기타 특징은 이하의 설명 및 첨부되는 청구범위를 통해 더욱 명백해지거나, 또는 이하에서 설명되는 본 발명의 수행을 통해 알게 될 것이다.
상술된 내용 및 본 발명의 다른 이점과 특징을 얻을 수 있는 방식을 설명하기 위해, 앞서 개략적으로 설명된 본 발명의 보다 구체적인 설명이 첨부된 도면에 도시된 특정 실시예를 참조로 하여 제공될 것이다. 이들 도면은 단지 본 발명의 일반적인 실시예를 도시할 뿐 본 발명의 범위를 제한하고자 하는 것이 아니라는 것을 이해하고, 본 발명은 첨부된 도면을 이용하여 추가적인 특수성 및 상세사항과 함께 기술되고 설명될 것이다.
본 발명은 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 메커니즘에 관한 것이다. 먼저, 진단될 태스크의 실행 상태를 기술하는 이벤트를 발생시키기에 적절한 수단이 추가된다. 이 이벤트들은 운영 체제 내에서 모니터되고, 이 이벤트들의 적어도 일부는 파일에 기록된다. 에러 조건 검출에 응답하여, 진단 모듈(diagnotics module)이 호출된다. 진단 모듈은 문제 진단과 관련된 이벤 트에 대해 로그 파일을 질의하고, 질의 결과를 평가함으로써 그 근본 원인을 확인한다. 일단 문제의 근본 원인이 진단되면, 그 근본 원인에 대응하는 해결 모듈(resolution module)이 호출되어 문제를 프로그램적으로 해결한다. 진단 및 해결 모듈은 정책 규칙(policy rules)에 따라 호출된다. 게다가, 검출, 진단 및 해결 모듈은 업데이트 서비스에 의해 필요 시 자동으로 업데이트될 수 있다.
도면에서, 유사한 참조 번호는 유사한 구성 요소(element)를 나타내며, 본 발명은 적합한 컴퓨팅 환경에서 구현되는 것으로 도시된다. 이하의 설명은 본 발명의 도시된 실시예에 기초하며, 본 명세서에 명시적으로 기술되어 있지 않은 대안의 실시예에 관련하여 본 발명을 제한하는 것으로 받아들여져서는 안 된다.
이하의 설명에서, 다른 언급이 없을 경우, 본 발명은 하나 이상의 컴퓨터에 의해 수행되는 오퍼레이션들의 단계(acts) 및 상징적인 표현(symbolic representations)을 참조하여 설명된다. 그러한 것으로, 이러한 단계 및 오퍼레이션들은, 때때로 컴퓨터 실행가능한 것이고, 구조화된 형태로 데이터를 나타내는 전자 신호를 컴퓨터 처리 장치(processing unit)에 의해 조작하는 것을 포함한다는 것을 이해할 것이다. 이러한 조작 처리는 데이터를 변형시키거나 컴퓨터 메모리 시스템의 어떤 위치에 그 데이터를 보유하며, 이것은 당업자에게 잘 알려진 방식으로 컴퓨터의 오퍼레이션을 재구성하거나 그것이 아니라면 변경시킨다. 데이터가 보유된 데이터 아키텍쳐는 데이터 포맷에 의해 정의된 특별한 속성을 지니는 메모리의 물리적 위치이다. 그러나, 본 발명이 앞의 컨텍스트에서 설명되면서, 당업자들이 이하에 설명된 여러 단계 및 오퍼레이션들이 또한 하드웨어에서 구현될 수 있 다는 것을 이해하고 있듯이 제한된다는 것은 아니다.
도 1에서, 본 발명은 소프트웨어 애플리케이션 모니터링 및 하드웨어 신뢰도와 이용도(hardware reliability and availability)에 관한 것이다. 소프트웨어 애플리케이션은 여러 다른 컴퓨터 구조 중 하나를 구비하는 컴퓨터 상에 위치한다. 설명의 목적상, 도 1은 이 장치들을 사용할 수 있는 예시적인 컴퓨터 아키텍쳐의 개략도를 보여준다. 묘사된 구조는 단지 적합한 환경의 한가지 예일 뿐이며, 본 발명의 사용 또는 기능의 범위에 관해 어떤 제한을 두고자 하는 것이 아니다. 또한, 컴퓨팅 장치가 도 1에 도시된 컴포넌트들 중의 임의의 하나 또는 그 조합에 관하여 어떤 종속성(dependency) 또는 요건(requirement)을 갖춰야 하는 것으로 해석되어서도 안된다.
본 발명은 많은 다른 범용 또는 전용 컴퓨팅 또는 통신 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및 구성의 예로는, 이동전화, 포켓 컴퓨터(pocket computer), 퍼스널 컴퓨터, 서버, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
가장 기본적인 구성으로, 컴퓨팅 시스템(100)은 일반적으로 적어도 하나의 처리 장치(102) 및 메모리(104)를 포함한다. 메모리(104)는 휘발성(RAM), 비휘발성(ROM, 플래쉬 메모리 등)일 수 있고 또는 그 두가지의 일부 조합일 수 있다. 이러한 가장 기본적인 구성이 도 1에 점선(106)으로 도시되어 있다.
스토리지 매체 장치는 부가적인 특징 및 기능을 구비할 수 있다. 예를 들어, 스토리지 매체 장치는 PCMCIA 카드, 자기 및 광학 디스크 및 자기 테이프를 포함하는 부가적인 스토리지(이동식 및 이동불가식)를 포함할 수 있지만, 이에 한정되지 않는다. 이러한 부가적인 스토리지가 도 1에 이동식 스토리지(108) 및 이동불가식 스토리지(110)로 도시되어 있다. 컴퓨터 스토리지 매체는 컴퓨터 판독가능 명령, 데이터 아키텍쳐, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 이동불가식 매체를 모두 포함한다. 메모리(104), 이동식 스토리지(108) 및 이동불가식 스토리지(110)는 모두 컴퓨터 스토리지 매체의 예다. 컴퓨터 스토리지 매체는 RAM, ROM, EEPROM, 플래쉬 메모리, 기타 메모리 기술, CD-ROM, DVD(digital versatile disk), 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 기타 자기 스토리지 장치, 및 컴퓨팅 장치에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다.
본 명세서에서 사용되는 "모듈(module)" 또는 "컴포넌트(component)"라는 용어는 컴퓨팅 시스템상에서 실행되는 소프트웨어 객체(software object) 또는 루틴(routine)을 나타낸다. 본 명세서에서 기술된 다른 컴포넌트, 모듈, 엔진 및 서비스는 컴퓨팅 시스템상에서 실행되는 객체 및 프로세스로서(예를 들어,분리된 스레드(thread)로서) 구현될 수 있다. 본 명세서에 기술된 시스템 및 방법이 바람직하게는 소프트웨어로 구현되고, 소프트웨어와 하드웨어로 또는 하드웨어로 구현 하는 것 또한 가능하며 고려될 수 있다.
컴퓨팅 장치(100)는 또한 호스트로 하여금 다른 장치들과 통신할 수 있도록 해 주는 통신 채널(112)을 포함할 수 있다. 통신 채널(112)은 통신 매체의 한 예이다. 통신 매체는 일반적으로 반송파(carrier wave) 또는 기타 전송 메카니즘 등의 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령, 데이터 아키텍쳐, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성 중 하나 이상이 설정되거나 변환된 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 및 직접 유선 접속(direct-wired connection) 등의 유선 매체와, 음향, 라디오, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 본 명세서에 사용된 컴퓨터 판독가능 매체라는 용어는 스토리지 매체 및 통신 매체 둘 다 포함한다.
컴퓨팅 장치(100)는 또한 키보드, 마우스, 펜, 음성 입력 컴포넌트(voice-input component), 터치 입력 장치(touch-input device) 등과 같은 입력 컴포넌트(114)를 포함할 수 있다. 출력 컴포넌트(116)는 스크린 디스플레이, 스피커, 프린터 등 및 그들을 구동시키는 렌더링 모듈(rendering module)(보통 "어댑터(adapter)"라 불림)을 포함한다. 이러한 모든 컴포넌트는 종래 기술에서 잘 알려져 있으므로 본 명세서에서는 길게 논의될 필요가 없다.
도 2는 본 발명의 특징을 구현하는 데 사용될 수 있는 더 구체적인 아키텍쳐(200)를 도시하고 있다. 아키텍쳐(200)는 원격 컴퓨팅 시스템(236)과 통신하는 컴퓨팅 시스템(201)을 포함한다. 그러나, 컴퓨팅 시스템(201)은 또한 원격 컴퓨팅 시스템(236)의 도움 없이, 그리고 이하에 기술된 업데이트 서비스의 특징 없이도 본 발명의 특징을 구현할 수 있다. 필수는 아니지만, 컴퓨팅 시스템(201) 및 컴퓨팅 시스템(236) 각각은 컴퓨팅 시스템(100)에 대해 상술된 것처럼 구조화될 수 있다.
도 3은 본 발명의 원리에 따라 컴퓨팅 시스템에서 문제를 프로그램적으로 진단하고 잠재적으로 해결하는 방법(300)의 흐름도를 도시하고 있다. 방법(300)이 아키텍쳐(200)의 컨텍스트에서 수행될 수 있기 때문에, 도 2 및 도 3은 이제 종종 서로를 참조하여 설명될 것이다.
도 3에서, 방법(300)은 운영 체제 내에서 이벤트를 모니터링 하는 단계를 포함한다(단계 301). 도 2에 관해, 모니터링된 이벤트는 다수의 운영 체제(operating system, OS) 컴포넌트, 드라이버, 애플리케이션, 및 서비스(262)에 의해 발생되고, 이들은 본 명세서에서 또한 총괄하여 "이벤트 제공자(event provider)(262)"로 불릴 것이다. 이벤트 제공자(262)는 자동기록기(logger)(204)에 이벤트(202)를 전달한다. 한 실시예에서, 주어진 시점에 취합될 수 있는 데이터의 양은 그 당시의 환경에 의해 제한된다. 그러므로, 자동기록기(204)는 더 적은 수의 이벤트를 처리할 것이다. 따라서, 모든 이벤트 제공자가 그것이 감지하는 모든 상호 작용(interaction)에 대해 이벤트를 발생시킬 필요는 없지만, 문제의 근본 원인과 더 관련이 있는 이벤트만을 발생시킬 수 있다. 예를 들어, 디스크 드라이브가 섹터(sector)에 기입을 행할 때마다 이벤트가 발생될 필요는 없다. 그러나, 디스크 드라이브가 읽기 또는 쓰기 명령 응답에 실패했을 경우, 또는 금지 섹 터(forbidden sector)에 기입을 행하려고 시도했을 경우에는 이벤트가 발생되어야 한다.
이벤트 제공자(262)의 예로는 전원, 플러그 앤플레이(plug and play, PnP) 오퍼레이션, 메모리 관리(memory management), 버스 제어(bus control)(예를 들어, PCI), 및 기타 저급 APIs(low level application programming interfaces)를 관리하는 소프트웨어 모듈 등이 있다. 기타 운영 체제 컴포넌트들(또는 애플리케이션 또는 드라이버)도 또한 자동기록기(logger)(204)에 이벤트를 발생시킬 수 있다. 기타 운영 체제 컴포넌트들의 예로는 네트워킹 모듈(networking module), 그래픽 모듈(graphic module), 오디오 모듈(audio module) 및 프린팅 모듈(printing module)이 있다.
자동기록기(204)에 전달되는 이벤트(202) 유형의 예로는 사용자 요청(user requests), 시스템 호출(system calls), 장치 연결(device connections), 통신 요청(communication requests) 등이 있다. 예를 들어, 하나의 이벤트는 사용자가 컴퓨팅 시스템(201)을 저전력(low power) 또는 스탠바이(standby) 상태로 놓도록 요청했다는 것을 나타내고, 사용자를 돕거나 기술자를 지원하는 이후의 이벤트들은 사용자의 요청이 성공하지 못했을 경우 스탠바이 실패(standby failure)를 진단하고 해결할 것이다. 예를 들어, 스탠바이 실패는 어떤 애플리케이션 또는 어떤 드라이버가 저전력 상태가 되도록 하는 요청을 반대했는가를 포함할 수 있다. 그러나, 운영체제에 의해 검출 가능한 기타 모든 이벤트들은 이벤트 제공자(262)에 의해 자동기록기(204)로 제공될 수 있다.
컴퓨팅 시스템(201)(특히 자동기록기(204))이 이벤트를 모니터하기 때문에, 자동기록기(204)는 적어도 이벤트들의 부분집합을 로그 파일에 기록한다(단계 302). 예를 들어, 이벤트 추적 로그 파일(event trace log file)(248)은 이러한 로그 파일의 한 예이다. 자동기록기(204)는 모든 이벤트(202) 또는 그 일부를 기록하도록 구성된다. 선택적으로, 자동기록기는 문제 진단에 있어 도움이 될 만한 이벤트들을 기록하도록 구성될 수도 있다. 자동기록기(204)는 이벤트를 진단 정책 서비스(diagnotics policy service)(208)로 통보한다. 일부 실시예에서 진단 정책 서비스(208)로 흐르는 이벤트의 양은 이벤트 추적 로그 파일(248)로 흐르는 이벤트의 양보다 훨씬 적을 수 있다. 예를 들어, 자동기록기(204)는 단지 트랜잭션이 시작되거나 종료될 때, 또는 에러 조건이 발생할 때만 진단 정책 서비스(208)로 통보할 수 있다.
모니터된 이벤트들의 적어도 부분집합을 로그 파일에 기록하는 동안(단계 302) 어떤 시점에서, 컴퓨팅 시스템(201)은 하나 이상의 에러 조건을 검출한다(단계 303). 도 2에 관해, 이것은 진단 정책 서비스(208)에 의해 실행될 수 있다. 진단 정책 서비스(208)는 예를 들어, 미리 결정된 하나의 에러 조건을 검출함으로써, 또는 에러 조건이 발생된 미리 결정된 순서를 검출함으로써 실제 문제가 언제 발생했는지를 결정한다.
일단 문제가 검출되면, 컴퓨팅 시스템(201)은 하나 이상의 에러 조건에 의해 밝혀진 문제를 프로그램적으로 진단하는 기능적이고, 결과 지향적인 단계를 실행한다(단계 310). 이것은 이 결과를 얻을 수 있는 모든 대응 단계를 포함할 수 있다. 그러나, 도시된 실시예에서, 이것은 대응 단계(311 내지 314)를 포함한다.
진단 모듈을 호출함으로써 프로그램적인 진단을 실제로 수행하기에 앞서(단계 311), 컴퓨팅 시스템(210)은 규칙에 따라 진단 모듈이 호출되어야 하는지를 결정하기 위해 규칙을 참조한다(단계 304). 규칙은 사용자 입력 명령 수신에 의해 아마도 디폴트로 설정될 수 있다. 따라서, 진단 정책 서비스(208)는 모니터링 서비스(212)를 통해 간접적으로 진단 모듈(220)에 연결되어 있다.
모니터링 서비스(212)는 정책을 적용하여 근본 원인을 결정하는 진단 모듈(220)을 호출하기 위해 어떤 이벤트를 전달할 것인가를 필터링한다. 이러한 이벤트를 필터링하는 것이 바람직할 경우의 예로는, 운영 체제가 어떤 자동적인 근본 원인 결정 및/또는 문제 해결 액션들을 자동적으로 수행하지 않는 것을 정보 기술(Information Technology, IT) 관리자 또는 시스템 관리자가 더 선호하는 기업 환경이 있다. 예를 들어, IT 관리자는 문제가 발생했다는 것을 통보 받지만, 자동화된 근본 원인 분석 또는 자동화된 해결이 발생하지 않는 것을 원할 수 있다. 또는 IT 관리자는 근본 원인 분석이 발생하되, 자동적으로 발생되는 것이 아니기를 바랄 수 있다.
예를 들어, 근본 원인 문제 결정에 응답하여 컴퓨팅 시스템(201)이 착수할 수 있는 하나의 액션은 업데이트된 장치 드라이버를 자동적으로 설치하는 것이다. 업데이트된 장치 드라이버들은 일부 인스턴스에서 예기치 못한 동작상의 변경을 초래하기 때문에, 기업의 IT 관리자는 사용자가 장치 드라이버를 업데이트 할 수 없거나 업데이트할 권한을 받지 못했다는 것을 명시하는 정책(214)을 입력한다(216). IT 관리자가 모니터링 서비스(212)에 적용할 수 있는 정책의 또 다른 예는 자동 문제 해결 조치를 전혀 취할 수 없게 하는 것이다. 이것은 컴퓨팅 시스템(201)이 자동적으로 어떤 조치를 취하는 대신 사용자 또는 IT 관리자로 하여금 조치를 취하도록 할 것인지의 여부를 결정하도록 해 준다.
만약 저장된 정책이 그렇게 허락한다면, 모니터링 서비스(212)는 하나 이상의 에러 조건의 특별한 집합이 진단 정책 서비스(208)에 의해 검출될 때 진단 모듈(220) 중 적절한 하나를 호출한다(218)(단계 311). 다른 대안으로, 적절한 진단 모듈은 진단 정책 서비스(208)에 의해 또는 이벤트 제공자(262) 중의 하나에 의해 직접적으로 호출될 수도 있다(즉, 모니터링 서비스(212)가 없는 실시예의 경우). 컴퓨팅 시스템(201)은 다수의 진단 모듈을 포함할 수 있고, 이들 각각은 미리 결정된 에러 조건들 또는 미리 결정된 에러 조건들 순서의 근본 원인을 진단하기 위한 것이다.
호출될 때, 각 진단 모듈은 어떤 이벤트 및/또는 상태가 그 문제 이벤트에 앞서 발생하는지에 대한 정보를 결정하는 하나 이상의 에러 조건에 의해 밝혀진 문제를 진단하기 위해 관련 데이터 소스를 질의하고 상관시키도록 구성된다(242)(단계 312). 이러한 관련 데이터 소스에는 예를 들어 이벤트 추적 로그 파일(248), 레지스트리와 같은 구성 데이터베이스(252), 시스템 호환성 관리자(254), WMI 제공자(WMI provider)(256), 및 기타 데이터 소스 및 로그 파일(250)등이 있다.
특정 운영 체제 구현에 따라, 도 2에 도시된 소스 외에 또는 도 2에 도시된 소스 대신 기타 로그 파일(250)(예를 들어, 네트워크 상태 로그(network status log)) 및 기타 데이터 소스가 질의될 수 있다.
시스템 호환성 관리자(254)는 문제의 하드웨어가 바르게 기능을 하기 위해서는 장치 특정 차선책(device specific workaround)을 필요로 하는 하드웨어 변형(hardware anomalies)으로 알려진 것에 관해 시스템에 있는 다른 서브시스템(예를 들어, PCI 버스 서브시스템, USB 서브시스템 및 AGP 서브시스템);기타 버스 드라이버(bus driver); 및 드라이버 스택(driver stack)으로부터, 상태 및 에러 메세지를 수신하는 서비스이다. 이러한 차선책은 장치 기능에 영향을 줄 수 있으므로 결국 엔드 유저(end user)는 문제의 근본 원인을 인식하게 된다. WMI 제공자는 시스템상의 하드웨어 장치에 대한 진단 정보를 노출시킨다.
진단 모듈은 질의의 결과(244)를 평가하고(단계 313), 평가에 응답하여 하나 이상의 에러 조건의 근본 원인을 파악한다(단계 314). 이것은 그 에러 조건에 대응하는 진단 루틴을 수행함으로써 이루어질 수도 있다. 진단 모듈의 적어도 일부 각각(또한 해결 모듈(224)의 적어도 일부 및 진단 정책 서비스(208)의 적어도 일부)은 대응 진단 모듈을 보다 적게 변경시킬 수 있도록 하는 플러그인(plug-in) 기능을 보유할 수 있다. 더 구체적으로 한 실시예에서, 진단 모듈(220)은 질의 결과(244)를 근본 원인 관련성(root cause association) 리스트와 비교한다. 이것은 하나 이상의 에러 조건에 의해 밝혀진 문제를 프로그램적으로 진단하는 단계를 완성한다(단계 310).
질의 결과(244)가 파악된 근본 원인과 관련이 있을 경우, 호출된 진단 모듈(220)은 적절한 해결 모듈(224)을 호출하여 파악된 근본 원인에 대응하는 파악 된 해결을 수행한다(단계 308). 문제에 대해 파악된 근본 원인은 이미 있다고 알려진 어떤 문제이다. 질의는 그 문제가 실재하는지 여부를 진단하기 위해 특별히 행해진다. 모니터링 서비스(212)는 규칙에 따라 해결 모듈이 호출되어야하는지 여부를 결정하기 위해 저장된 정책을 다시 한번 고려한다(단계 307). 따라서, 진단 모듈은 우선 모니터링 서비스(212)에 근본 원인을 통보한다(222A). 만약 저장된 정책이 그렇게 허락한다면, 모니터링 서비스(212)는 적절한 해결 모듈(224)을 호출한다(222B). 다수의 해결 모듈(224)이 있을 수 있고, 이들 각각은 하나 이상의 근본 원인들의 다른 세트들과 관련되어 있다. 각 해결 모듈은 또한 필요시 경미한 변경을 허용하는 플러그인(plug-in) 기능을 보유한다.
해결 모듈(224) 각각은 모니터링 서비스(212)에 있는 정책에 따라 적절한 진단 모듈에 의해 호출되는 에러 해결 루틴(error resolution routine)으로 구성될 수 있다. 에러 해결 루틴의 예로는 새 장치 드라이버 검색 및/또는 설치, 충돌하는 장치 드라이버 또는 애플리케이션을 기능을 못하게 만들거나 재구성하는 것이 있다. 한 실시예에서, 루틴의 적어도 일부는 자동적으로 수행된다(즉, 사용자 입력을 필요로 하지 않는다). 그러나, 일부 해결 모듈은 진단 사용자 인터페이스 모듈(232)을 호출함으로써(228) 획득할 수 있는 사용자 입력을 이용할 수 있다[즉, "장애 해소 마법사(trouble-shotter wizard)"]. 진단 사용자 인터페이스 모듈(232)은 사용자로 하여금 문제를 파악하거나 해결하고자 시도하는 적절한 해결 모듈에 의해(또는 대체적으로 컴퓨팅 시스템에 의해) 사용될 부가 정보를 입력하도록 하는 데 사용된다. 이것은 특히 하나 이상의 에러 조건의 근본 원인이 프로그램적으로 파악되지 않을 때 및/또는 추가적인 사용자의 도움 없이는 해결될 수 없는 경우에 유용하다.
해결 모듈(224)과 진단 사용자 인터페이스(232)간의 상호작용은 양방향 화살표(228A)로 나타난다. 진단 모듈(220)과 진단 사용자 인터페이스(232)간의 상호작용도 양방향 화살표(228B)로 나타난다. 진단 사용자 인터페이스(232)는 또한 어떤 이벤트를 발생시킬 것인가를 변경하기 위해 이벤트 생성자(262)와의 사용자 상호작용(228C)을 허용한다.
장애 해소 애플리케이션(trouble shooter application)(264)은 진단 정책 서비스(208)의 문제 검출을 기다리지 않고, 사용자로 하여금 모니터링 서비스(212)에 즉각적으로 문제를 보고할 수 있도록 해 주는 사용자 인터페이스를 제공한다. 그러면 진단 모듈(220)은 보고된 문제의 근본 원인을 진단하고, 이후 해결 모듈(224)은 문제를 해결한다.
때때로, 기록 대상 이벤트, 진단 모듈의 진단 방법, 또는 해결 모듈이 파악된 문제의 근본 원인을 어떻게 해결할 것인가를 변경하는 것이 이로울 수 있다. 예를 들어, 아마도 진단 모듈은 기록된 이벤트에 기초한 문제를 진단할 수 없거나, 또는 해결 모듈은 변경 없이는 문제를 바르게 해결할 수 없다. 따라서, 진단 정책 서비스(208), 진단 모듈(220), 해결 모듈(224) 및/또는 진단 사용자 인터페이스 모듈(232)로부터의 정보는 에러 보고 서비스(238)에 보고되기 위해 액티비티 로그(activity log)(230)로 전달될 수 있다(단계 305). 예를 들어, 해결 모듈은 화살표(226)에 나타난 것처럼 액티비티 로그(230)로 보고한다.
액티비티 로그(230)는 또한 사용자가 검출된 문제를 보고, 진단이 무엇이며, 진단된 문제가 어떻게 해결되었는가를 볼 수 있도록 사용자에게 디스플레이될 수 있다. 액티비티 로그(230)는 또한 기술 지원자(technical support)가 관련된 사항을 알기 위해 사용자에게 의존하지 않아도 관련사항을 볼 수 있도록 원격 위치로도 제공된다. 액티비티 로그(230)는 또한 사용자 시스템에 일반적으로 어떤 문제가 발생하는가에 관한 통계 정보 생성을 돕기 위해 에러 보고 서비스(238)로 전달될 수 있다.
업데이트 서비스(update service)(240)는 컴퓨팅 시스템(201)에 의해 수신된 업데이트 사항을 컴퓨팅 시스템(201)의 하나 이상의 모듈들에게 전송하는 데 사용된다(행위 306). 예를 들어, 업데이트 서비스(240)는 부가 이벤트 또는 이벤트 시퀀스로 자동기록기(204)를 업데이트하여 이벤트 추적 로그파일(248)에 저장하고, 이것은 에러 보고 서비스(238) 또는 사용자가 경험한 실패에 관한 정보의 다른 소스에 의해 검출된 새 문제의 근본 원인을 해결하는 데 도움을 준다. 업데이트 서비스(240)는 또한 진단 정책 서비스(208)를 업데이트하여, 문제 검출 방법을 바꾼다. 업데이트 서비스(240)는 또한 하나 이상의 진단 모듈(220) 및 해결 모듈(224)을 업데이트(기존의 모듈을 바꾸고, 새 모듈을 제공하고, 또는 플러그인(plug in)을 추가하거나 변경하는 것)하여 특정 문제에 대해 결정된 새 해결방법을 반영하는 데 사용된다. 한 실시예에서, 업데이트 서비스(240)는 공급자 컴퓨팅 시스템(vender computing system)(236)에 의해 작동되고, 인터넷을 통해 컴퓨팅 시스템(201)의 모듈에 업데이트 사항을 전송한다. 다른 대안으로, 제3자(third party)가 맞춤화된 변경(custom changes) 또는 완전히 새로운 모듈 및 구성 정보를 제공할 수도 있다.
만약 에러 이벤트가 그것과 관련하여 알려지지 않은 근본 원인을 가지고 있다면, 진단 모듈(220)은 이 정보를 액티비티 로그(230)로 보고할 것이고, 이어 액티비티 로그는 에러 보고(234)를 에러 보고 서비스(238)로 전송할 것이다.
만약 공급자가 액티비티 로그(230)에 의해 전송된 정보로부터 근본 원인을 결정할 수 있다면, 근본 원인 관련 정보 및 대응 문제 해결 정보는 업데이트 서비스(240)를 통해 컴퓨팅 시스템(201)으로 전송된다. 만약 공급자가 근본 원인을 결정할 수 없다면, 공급자는 업데이트 서비스(240)를 이용하여 자동기록기(204)로 하여금 이벤트 추적 로그 파일(248)에 부가 이벤트 또는 상태 정보를 저장하도록 명령할 수 있다. 해결 모듈(224)도 이와 유사하게 적절한 해결이 이루어질 수 있도록 자동기록기(204)로 하여금 부가 이벤트를 저장하도록 명령할 수 있다(260). 그 문제가 다음에 발생한 후 부가 정보가 에러 보고 서비스(238)로 전송되면, 그 부가 정보로 인해 공급자는 문제의 근본 원인을 더 잘 확인할 수 있다.
에러 보고(234)는 알려진 근본 원인이 진단되기 이전에도 전송될 수 있다. 이렇게 이른 단계에서 에러를 보고함으로써 업데이트 서비스(240)는 진단 및 해결을 시도하기에 앞서 업데이트 될 진단 모듈(220) 및/또는 해결 모듈(224)을 업데이트할 수 있다. 다른 대안으로, 진단 후에, 그러나 해결 이전에, 에러가 보고될 수도 있다(234). 이 경우, 업데이트 서비스(240)는 진단된 특정 문제 해결 전용의 특정 해결 모듈을 업데이트 할 수 있다.
진단 정책 서비스(208), 진단 모듈(220), 및 해결 모듈(224)은 그들의 액티비티(예를 들어, 에러가 검출되었고, 진단 모듈이 호출되었고, 진단 모듈이 어떤 조치를 취했고, 근본 원인이 발견되었고, 근본 원인이 이것이고, 근본 원인이 결정될 수 없었고, 해결 모듈이 호출되었고, 해결 모듈이 이러한 조치를 취하였고, 문제가 해결되었고, 문제가 해결되지 않았음 등등)를 액티비티 로그(230)에 보고하도록 구성될 수 있다. 이것은 공급자에게 시스템이 문제를 진단하고 있는지의 여부 및 문제가 해결되고 있는지의 여부에 관한 정보를 제공한다. 이러한 정보는 이것이 진단 모듈(220) 또는 해결 모듈(224) 둘 중 하나가 업데이트 될 필요가 있는지 여부를 결정하는 데 사용될 수 있기 때문에 공급자에게 유용할 수 있다. 이러한 정보는 또한 공급자들이 어떤 문제가 엔드 유저에게 가장 자주 발생하는지를 이해하는데 도움을 주며, 따라서 공급자들이 그 정보에 대해 어떤 조치를 취할 수 있도록 해 준다. 예를 들어, 공급자들은 미래에 이러한 자주 발생하는 문제를 피할 수 있는 새 아키텍쳐를 생성함으로써 이러한 문제에 대응할 수 있다.
에러 보고(234)는 알려진 근본 원인이 진단되기 이전에도 전송될 수 있다. 이렇게 이른 단계에서 에러를 보고함으로써 업데이트 서비스(240)는 진단 및 해결을 시도하기에 앞서 업데이트 될 진단 모듈(220) 및/또는 해결 모듈(224)을 업데이트할 수 있다. 다른 대안으로, 진단 후에, 그러나 해결 이전에, 에러가 보고될 수도 있다. 이 경우, 업데이트 서비스(240)는 진단된 특정 문제 해결 전용의 특정 해결 모듈을 업데이트 할 수 있다.
상술된 바와 같이, 업데이트 서비스(240)를 통해 전송될 수 있는 업데이트 사항의 한 예는 해결 모듈(224)의 새 문제 해결이다. 에러의 특별한 형태가 확인되었으나 근본 원인을 결정하기 어려운 경우, 업데이트 서비스는 이벤트 제공자 또는 자동기록기에게 더 많은 이벤트 정보를 이벤트 추적 로그 파일(248)에 저장하도록 명령할 수 있다. 이것은 진단 모듈(220)로 하여금 액티비티 로그(230)에 더 상세한 정보를 전송하도록 하고, 따라서 액티비티 로그(230)는 더 상세한 정보를 에러 보고 서비스로 전송한다. 부가 정보는 공급자 컴퓨팅 시스템(236)이 근본 원인 및 문제에 대한 해결 방안을 결정하는 데 도움을 준다. 이어서, 그 문제를 다루는 새로운 진단 및 해결 모듈이 다운로드된다.
따라서, 내부의 정책 제약에 따라 문제를 프로그램적으로 진단하고 해결하는 메커니즘이 소개되었다. 또한, 이러한 메커니즘은 에러 조건의 근본 원인을 더 잘 진단하고 근본 원인을 더 해결할 수 있도록 하기 위해, 필요 시 스스로 업데이트한다.
사용자 정의(user-defined) 또는 디폴트(default) 정책 규칙(policy rules)은 진단 모듈 및/또는 해결 모듈이 언제 호출되는가 또는 호출 여부를 결정할 수 있다. 그러므로, 컴퓨팅 시스템 문제는 프로그램적으로 진단되고 해결될 수 있고, 따라서 사용자 경험을 향상시키는 것과 동시에, 또한 여전히 사용자는 진단 및 해결 프로세스 전반에 걸쳐 어느 정도 제어할 수 있다.

Claims (35)

  1. 운영 체제를 실행하는 컴퓨팅 시스템에서, 상기 컴퓨팅 시스템에서 문제의 근본 원인(the root cause of a problem)을 프로그램적으로 진단(diagnosing)하는 방법으로서,
    운영 체제 내에서 이벤트를 발생시키는 단계,
    적어도 상기 이벤트의 부분집합을 로그 파일에 기록하는(logging) 단계,
    하나 이상의 에러 조건을 검출하는 단계, 그리고 이후에,
    하나 이상의 에러 조건을 검출하는 상기 단계에 응답하여 진단 모듈을 호출(invoking)하는 단계 - 상기 진단 모듈은, 호출 시,
    상기 하나 이상의 에러 조건에 의해 밝혀진 상기 문제의 진단과 관련된 이벤트들을 상관시키기(correlate) 위해 상기 로그 파일을 질의하는 단계,
    질의 결과를 평가하는 단계, 및
    상기 평가에 응답하여 상기 하나 이상의 에러 조건의 근본 원인을 파악(identifying)하는 단계를 실행하도록 구성됨 - , 및
    기록 대상 이벤트를 변경하는 하나 이상의 업데이트 사항을 수신하는 단계
    를 포함하는, 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  2. 제1항에 있어서, 하나 이상의 에러 조건을 검출하는 상기 단계 이후에,
    규칙을 참조하여 상기 규칙에 따라 상기 진단 모듈이 호출되어야 하는지를 결정하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  3. 제2항에 있어서, 상기 규칙을 설정하기 위한 사용자 입력을 수신하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  4. 제1항에 있어서, 적어도 상기 질의 결과의 부분집합을 에러 보고 서비스에 전송하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  5. 제4항에 있어서, 상기 진단 모듈의 진단 방법을 변경하는 하나 이상의 업데이트 사항을 수신하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  6. 제1항에 있어서, 상기 업데이트 사항은 또한 상기 진단 모듈의 진단 방법을 변경하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 에러 조건의 근본 원인을 파악하는 상기 단계에 응답하여 해결 모듈을 호출하는 단계 - 상기 해결 모듈은, 호출 시,
    상기 하나 이상의 에러 조건의 근본 원인을 해결하는 단계를 실행하도록 구성됨 - 를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  8. 제7항에 있어서, 하나 이상의 에러 조건을 검출하는 상기 단계 이후에,
    규칙을 참조하여 상기 규칙에 따라 상기 해결 모듈이 호출되어야 하는지를 결정하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  9. 제8항에 있어서, 상기 규칙을 설정하기 위한 사용자 입력을 수신하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  10. 제7항에 있어서, 적어도 상기 질의 결과의 부분집합을 에러 보고 서비스에 전송하는 단계를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  11. 제10항에 있어서, 상기 업데이트 사항은 또한 상기 진단 모듈의 진단 방법을 변경하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  12. 제11항에 있어서, 상기 업데이트 사항은 또한 상기 해결 모듈의 해결 방법을 변경하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  13. 제10항에 있어서, 상기 업데이트 사항은 상기 해결 모듈의 해결 방법을 변경하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  14. 제1항에 있어서,
    상기 하나 이상의 에러 조건의 근본 원인이 프로그램적으로 해결될 수 없는 것으로 결정하는 단계, 및
    상기 문제를 파악하거나 해결하기 위해 상기 진단 또는 해결 모듈에 의해 사용될 부가적인 정보를 사용자가 입력할 수 있도록 촉구(prompt)하는 사용자 인터페이스 모듈을 사용하는(engage) 단계
    를 더 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  15. 제14항에 있어서, 상기 사용자 인터페이스 모듈은 장애 해소 마법사(trouble shooter wizard)인 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  16. 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법을 구현하기 위한 컴퓨터 실행가능 명령어가 저장되어 있는, 운영 체제를 실행하는 상기 컴퓨팅 시스템에서 사용되는 하나 이상의 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 실행가능 명령어는, 상기 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    운영 체제 내에서 이벤트를 발생시키는 단계,
    적어도 상기 이벤트의 부분집합을 로그 파일에 기록하는 단계,
    하나 이상의 에러 조건을 검출하는 단계,
    하나 이상의 에러 조건을 검출하는 상기 단계에 응답하여 진단 모듈을 호출하는 단계- 상기 진단 모듈은, 호출 시,
    상기 하나 이상의 에러 조건에 의해 밝혀진 상기 문제의 진단과 관련된 이벤트들을 상관시키기 위해 상기 로그 파일에 질의하는 단계,
    질의 결과를 평가하는 단계, 및
    상기 평가에 응답하여 상기 하나 이상의 에러 조건의 근본 원인을 파악하는 단계를 실행하도록 구성됨 -, 및
    기록 대상 이벤트를 변경하는 하나 이상의 업데이트 사항을 수신하는 단계를 수행하도록 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서, 상기 컴퓨터 실행가능 명령어는 또한, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    적어도 상기 질의 결과의 부분집합을 에러 보고 서비스에 전송하는 단계 및,
    상기 진단 모듈의 진단 방법을 변경하는 하나 이상의 업데이트 사항을 수신하는 단계
    를 수행하도록 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
  18. 제16항에 있어서, 상기 컴퓨터 실행가능 명령어는 또한, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    상기 하나 이상의 에러 조건의 근본 원인을 파악하는 상기 단계에 응답하여 해결 모듈을 호출하는 단계 - 상기 해결 모듈은, 호출 시, 상기 하나 이상의 에러 조건의 근본 원인을 해결하도록 구성됨 -
    를 수행하도록 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서, 상기 컴퓨터 실행가능 명령어는 또한, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    적어도 상기 질의 결과의 부분집합을 에러 보고 서비스에 전송하는 단계, 및
    상기 진단 모듈의 진단 방법을 변경하거나, 또는 상기 해결 모듈의 해결 방법을 변경하는 하나 이상의 업데이트 사항을 수신하는 단계
    를 수행하도록 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
  20. 제18항에 있어서, 상기 컴퓨터 실행가능 명령어는 또한, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    상기 하나 이상의 에러 조건의 근본 원인이 프로그램적으로 해결될 수 없는 것으로 결정하는 단계, 및
    상기 문제를 파악하고 해결하기 위해 상기 해결 모듈에 의해 사용될 부가적인 정보를 사용자가 입력할 수 있도록 촉구하는 사용자 인터페이스 모듈을 사용하는(engage) 단계
    를 수행하도록 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
  21. 운영 체제를 실행하는 컴퓨팅 시스템에서, 상기 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법으로서,
    운영 체제 내에서 이벤트를 발생시키는 단계,
    적어도 상기 이벤트의 부분집합을 로그 파일에 기록하는 단계,
    기록 대상 이벤트를 변경하는 하나 이상의 업데이트 사항을 수신하는 단계
    하나 이상의 에러 조건을 검출하는 단계, 및
    상기 하나 이상의 에러 조건에 의해 밝혀진 문제를 프로그램적으로 진단하는 단계
    를 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  22. 제21항에 있어서, 상기 하나 이상의 에러 조건에 의해 밝혀진 문제를 프로그램적으로 진단하는 상기 단계는, 하나 이상의 에러 조건을 검출하는 상기 단계에 응답하여 진단 모듈을 호출하는 단계 - 상기 진단 모듈은, 호출 시,
    상기 하나 이상의 에러 조건에 의해 밝혀진 상기 문제의 진단과 관련된 이벤트들을 상관시키기 위해 상기 로그 파일에 질의하는 단계,
    질의 결과를 평가하는 단계, 및
    상기 평가에 응답하여 상기 하나 이상의 에러 조건의 근본 원인을 파악하는 단계를 실행하도록 구성됨 - 를 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법.
  23. 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금 메모리에서,
    로그 파일에 이벤트를 기록하고 상기 로그 파일에서 기록 대상 이벤트를 변경하는 업데이트 사항을 수신하도록 구성된 이벤트 기록기(event logger),
    하나 이상의 에러 조건이 발생했을 때 문제를 검출하고, 상기 문제가 검출되었을 때 적어도 어떤 환경에서 해결 모듈이 호출되도록 구성된 문제 검출 모듈(problem detection module), 및
    상기 로그 파일에 질의하고, 질의 결과를 평가하고, 상기 평가에 기초하여 상기 문제를 진단하는 진단 모듈
    을 인스턴스화(instantiate)하도록 하는 컴퓨터 실행가능 명령어가 저장되어 있는 컴퓨터 판독가능 저장 매체.
  24. 제23항에 있어서, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금 또한 메모리에서,
    상기 진단 모듈이 언제 호출되어야 하는가에 관한 규칙을 보유하는 모니터링 모듈(monitoring module) - 상기 모니터링 모듈은 상기 규칙이 그렇게 하도록 허용하는 경우, 상기 문제를 검출하는 상기 문제 검출 모듈에 응답하여 상기 진단 모듈이 호출되도록 함 - 을 인스턴스화(instantiate)하도록 하는 컴퓨터 실행가능 명령어가 저장되어 있는 컴퓨터 판독가능 저장 매체.
  25. 제23항에 있어서, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금 또한 메모리에서,
    호출 시 상기 문제를 해결하도록 구성된 해결 모듈 - 상기 진단 모듈은 또한 자신이 상기 문제를 진단했을 때 적어도 어떤 환경에서 상기 해결 모듈이 호출되도록 구성됨 - 을 인스턴스화하도록 하는 컴퓨터 실행가능 명령어가 저장되어 있는 컴퓨터 판독가능 저장 매체.
  26. 제25항에 있어서, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금 또한 메모리에서,
    상기 해결 모듈이 언제 호출되어야 하는가에 관한 규칙을 보유하는 모니터링 모듈(monitoring module) - 상기 모니터링 모듈은 상기 규칙이 그렇게 하도록 허용하는 경우, 상기 문제를 진단하는 상기 진단 모듈에 응답하여 상기 해결 모듈이 호출되도록 함 - 을 인스턴스화하도록 하는 컴퓨터 실행가능 명령어가 저장되어 있는 컴퓨터 판독가능 저장 매체.
  27. 운영 체제를 실행하고 에러 보고 서비스에 네트워크 연결된 컴퓨팅 시스템에서, 상기 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법으로서,
    운영 체제 내에서 이벤트를 발생시키는 단계,
    적어도 상기 이벤트의 부분집합을 로그 파일에 기록하는 단계,
    하나 이상의 에러 조건을 검출하는 단계, 및 이에 응답하여,
    관련된 이벤트들을 상관시키기 위해 상기 로그 파일에 질의하는 단계,
    적어도 질의 결과의 부분집합을 에러 보고 서비스에 전송하는 단계,
    하나 이상의 업데이트 사항 - 상기 업데이트 사항은 기록 대상 이벤트, 실행될 진단 방안, 또는 상기 컴퓨팅 시스템의 운영 체제에 의해 실행될 해결 방안 또는 최종 사용자(end user)에게 권고되는 해결 방안을 수정함 - 을 수신하는 단계
    를 포함하는 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법.
  28. 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법을 구현하기 위한 컴퓨터 실행가능 명령어가 저장되어 있는, 운영 체제를 실행하고 에러 보고 서비스에 네트워크 연결된 상기 컴퓨팅 시스템에서 사용되는 하나 이상의 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 실행가능 명령어는, 상기 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    운영 체제 내에서 이벤트를 발생시키는 단계,
    적어도 상기 이벤트의 부분집합을 로그 파일에 기록하는 단계,
    하나 이상의 에러 조건을 검출하는 단계, 및 이에 응답하여,
    관련된 이벤트들을 상관시키기 위해 상기 로그 파일에 질의하는 단계,
    적어도 질의 결과의 부분집합을 에러 보고 서비스에 전송하는 단계,
    하나 이상의 업데이트 사항 - 상기 업데이트 사항은 기록 대상 이벤트, 실행될 진단 방안, 또는 상기 컴퓨터에 의해 실행될 해결 방안을 수정함 - 을 수신하는 단계
    를 수행하도록 하는 하나 이상의 컴퓨터 판독가능 저장 매체.
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
KR1020040031824A 2003-05-07 2004-05-06 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법 및 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법, 및 컴퓨터 판독가능 저장 매체 KR101021394B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US46877203P 2003-05-07 2003-05-07
US60/468,772 2003-05-07
US10/651,430 2003-08-30
US10/651,430 US7263632B2 (en) 2003-05-07 2003-08-30 Programmatic computer problem diagnosis and resolution and automated reporting and updating of the same

Publications (2)

Publication Number Publication Date
KR20040095682A KR20040095682A (ko) 2004-11-15
KR101021394B1 true KR101021394B1 (ko) 2011-03-14

Family

ID=33423772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040031824A KR101021394B1 (ko) 2003-05-07 2004-05-06 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법 및 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법, 및 컴퓨터 판독가능 저장 매체

Country Status (5)

Country Link
US (1) US7263632B2 (ko)
EP (1) EP1515234A3 (ko)
JP (1) JP2004334869A (ko)
KR (1) KR101021394B1 (ko)
CN (1) CN100412802C (ko)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1557075A4 (en) 2002-10-22 2010-01-13 Sullivan Jason CONTROL MODULE NOT ASSOCIATED WITH PERIPHERALS HAVING IMPROVED HEAT DISSIPATION PROPERTIES
US7242574B2 (en) 2002-10-22 2007-07-10 Sullivan Jason A Robust customizable computer processing system
JP2006505874A (ja) 2002-10-22 2006-02-16 ジェイソン エイ サリヴァン ダイナミックにモジュラー式の処理ユニットを提供するためのシステムおよび方法
WO2005008496A1 (en) * 2003-07-11 2005-01-27 Alex Zakonov Dynamic discovery algorithm
DE102004022624A1 (de) * 2004-05-07 2005-12-08 Robert Bosch Gmbh Verfahren zur Überwachung eines Systems
US7440933B2 (en) * 2004-06-18 2008-10-21 International Business Machines Corporation Method for facilitating problem resolution
DE102004047363A1 (de) * 2004-09-29 2006-03-30 Siemens Ag Prozessor bzw. Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems im Fall einer Störung
US20060155595A1 (en) * 2005-01-13 2006-07-13 Microsoft Corporation Method and apparatus of managing supply chain exceptions
US20060177004A1 (en) * 2005-01-26 2006-08-10 N-Able Technologies International, Inc. Apparatus and method for monitoring network resources
US20060200548A1 (en) * 2005-03-02 2006-09-07 N-Able Technologies International, Inc. Automation engine and method for providing an abstraction layer
CN100373350C (zh) * 2005-03-21 2008-03-05 华为技术有限公司 故障告警上报管理方法
US10210529B2 (en) * 2005-04-04 2019-02-19 Mediaport Entertainment, Inc. Systems and methods for advertising on remote locations
US20060249576A1 (en) * 2005-04-04 2006-11-09 Mark Nakada Systems and methods for providing near real-time collection and reporting of data to third parties at remote locations
US20060224517A1 (en) * 2005-04-04 2006-10-05 Anirudha Shimpi Systems and methods for delivering digital content to remote locations
US9189792B2 (en) * 2005-04-04 2015-11-17 Mediaport Entertainment, Inc. System and methods for monitoring devices, systems, users, and user activity at remote locations
US7421625B2 (en) * 2005-05-26 2008-09-02 Microsoft Corporation Indicating data connection and status conditions
KR100731497B1 (ko) * 2005-05-31 2007-06-21 지멘스 오토모티브 주식회사 마이컴의 고장 코드 제어 장치 및 방법
DE102005061386A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Verfahren zur Fehlerdiagnose
CN101438249A (zh) * 2006-05-07 2009-05-20 应用材料股份有限公司 用于错误诊断的多种错误特征
CN101192192B (zh) * 2006-11-21 2010-08-18 华为技术有限公司 用于实时操作系统的任务异常诊断方法及系统
JP2008134705A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd データ処理方法及びデータ分析装置
US20080155305A1 (en) * 2006-12-22 2008-06-26 International Business Machines Corporation Collaborative problem determination based on graph visualization
JP2008271126A (ja) 2007-04-19 2008-11-06 Ntt Docomo Inc 移動端末装置、移動端末装置の診断方法
JP4582167B2 (ja) * 2007-04-27 2010-11-17 ダイキン工業株式会社 群管理装置及び群管理プログラム
US10223858B2 (en) 2007-07-05 2019-03-05 Mediaport Entertainment, Inc. Systems and methods monitoring devices, systems, users and user activity at remote locations
DE102007035584B4 (de) * 2007-07-30 2009-12-17 Texas Instruments Deutschland Gmbh Watchdog-Vorrichtung zur Überwachung eines elektronischen Systems
DE102007035586B4 (de) * 2007-07-30 2009-12-17 Texas Instruments Deutschland Gmbh Watchdog-Vorrichtung zur Überwachung eines elektronischen Systems
JP2009048291A (ja) * 2007-08-15 2009-03-05 Oki Electric Ind Co Ltd システム解析装置及びプログラム
KR101441506B1 (ko) * 2007-11-20 2014-09-18 삼성전자주식회사 휴대 단말기 진단 및 감시 방법과 시스템
US20090182707A1 (en) * 2008-01-10 2009-07-16 Dbix Corporation Database changeset management system and method
JP2009181441A (ja) * 2008-01-31 2009-08-13 Nomura Research Institute Ltd 自動修復システム及び方法
US8201029B2 (en) * 2008-01-31 2012-06-12 International Business Machines Corporation Method and apparatus for operating system event notification mechanism using file system interface
US8806037B1 (en) 2008-02-29 2014-08-12 Netapp, Inc. Remote support automation for a storage server
US7793141B1 (en) * 2008-05-15 2010-09-07 Bank Of America Corporation eCommerce outage customer notification
US20090320021A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Diagnosis of application performance problems via analysis of thread dependencies
CN100592315C (zh) * 2008-08-29 2010-02-24 中国科学院软件研究所 一种xacml策略规则检测方法
JP5237034B2 (ja) * 2008-09-30 2013-07-17 株式会社日立製作所 イベント情報取得外のit装置を対象とする根本原因解析方法、装置、プログラム。
US8086909B1 (en) * 2008-11-05 2011-12-27 Network Appliance, Inc. Automatic core file upload
US8069374B2 (en) * 2009-02-27 2011-11-29 Microsoft Corporation Fingerprinting event logs for system management troubleshooting
US20100229022A1 (en) * 2009-03-03 2010-09-09 Microsoft Corporation Common troubleshooting framework
CN102341788A (zh) * 2009-04-13 2012-02-01 索尼公司 计算设备的系统维护
US8464221B2 (en) * 2009-06-16 2013-06-11 Microsoft Corporation Visualization tool for system tracing infrastructure events
CN102143008A (zh) * 2010-01-29 2011-08-03 国际商业机器公司 用于数据中心的诊断故障事件的方法及装置
US8060782B2 (en) * 2010-03-01 2011-11-15 Microsoft Corporation Root cause problem identification through event correlation
US8380729B2 (en) 2010-06-04 2013-02-19 International Business Machines Corporation Systems and methods for first data capture through generic message monitoring
US20110307746A1 (en) * 2010-06-07 2011-12-15 Sullivan Jason A Systems and Methods for Intelligent and Flexible Management and Monitoring of Computer Systems
US9891971B1 (en) * 2010-06-30 2018-02-13 EMC IP Holding Company LLC Automating the production of runbook workflows
US9009530B1 (en) * 2010-06-30 2015-04-14 Purdue Research Foundation Interactive, constraint-network prognostics and diagnostics to control errors and conflicts (IPDN)
US9294946B2 (en) * 2010-08-27 2016-03-22 Qualcomm Incorporated Adaptive automatic detail diagnostic log collection in a wireless communication system
US8499197B2 (en) 2010-11-15 2013-07-30 Microsoft Corporation Description language for identifying performance issues in event traces
US8850172B2 (en) 2010-11-15 2014-09-30 Microsoft Corporation Analyzing performance of computing devices in usage scenarios
KR20140012084A (ko) * 2011-01-31 2014-01-29 톰슨 라이센싱 진단 정보 로깅
US9189317B1 (en) * 2011-03-17 2015-11-17 Extreme Networks, Inc. Software sustaining system
US8862938B2 (en) * 2011-04-18 2014-10-14 General Electric Company System, method, and apparatus for resolving errors in a system
US8600992B2 (en) 2011-08-17 2013-12-03 International Business Machines Corporation Coordinating problem resolution in complex systems using disparate information sources
US8868064B1 (en) * 2011-11-09 2014-10-21 Sprint Communications Company L.P. Mobile device metrics management
JP2013101548A (ja) * 2011-11-09 2013-05-23 Hitachi Systems Ltd コンピュータシステム及びリカバリ方法
FR2986879B1 (fr) * 2012-02-15 2014-10-17 Airbus Operations Sas Procede et systeme de detection d'anomalies a solutionner dans un aeronef
US8977909B2 (en) 2012-07-19 2015-03-10 Dell Products L.P. Large log file diagnostics system
US10162693B1 (en) 2012-10-18 2018-12-25 Sprint Communications Company L.P. Evaluation of mobile device state and performance metrics for diagnosis and troubleshooting of performance issues
US20140282426A1 (en) * 2013-03-12 2014-09-18 Microsoft Corporation Divide and conquer approach to scenario timeline activity attribution
CN104346571B (zh) * 2013-07-23 2019-03-15 深圳市腾讯计算机系统有限公司 安全漏洞管理方法、系统及设备
US9471474B2 (en) 2013-08-19 2016-10-18 Microsoft Technology Licensing, Llc Cloud deployment infrastructure validation engine
KR101537680B1 (ko) * 2013-09-02 2015-07-17 엘에스산전 주식회사 보호 계전기의 이벤트 통신 장치
WO2015040688A1 (ja) * 2013-09-18 2015-03-26 株式会社日立製作所 計算機システムを管理する管理システム及びその管理方法
US9535780B2 (en) * 2013-11-18 2017-01-03 International Business Machines Corporation Varying logging depth based on user defined policies
US20150161123A1 (en) * 2013-12-09 2015-06-11 Microsoft Corporation Techniques to diagnose live services
US9678825B2 (en) * 2014-02-18 2017-06-13 International Business Machines Corporation Autonomous reconfiguration of a failed user action
WO2015187001A2 (en) * 2014-06-04 2015-12-10 Mimos Berhad System and method for managing resources failure using fast cause and effect analysis in a cloud computing system
US9946614B2 (en) 2014-12-16 2018-04-17 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for managing faults in a virtual machine network
EP3059676B1 (en) * 2015-02-20 2019-09-11 Siemens Aktiengesellschaft A method and apparatus for analyzing the availability of a system, in particular of a safety critical system
US10650085B2 (en) 2015-03-26 2020-05-12 Microsoft Technology Licensing, Llc Providing interactive preview of content within communication
US10379702B2 (en) 2015-03-27 2019-08-13 Microsoft Technology Licensing, Llc Providing attachment control to manage attachments in conversation
US10540225B2 (en) * 2015-05-27 2020-01-21 Hewlett Packard Enterprise Development Lp Data validation
US10365962B2 (en) * 2015-11-16 2019-07-30 Pearson Education, Inc. Automated testing error assessment system
CN105930329A (zh) * 2015-12-28 2016-09-07 中国银联股份有限公司 一种交易日志分析方法及装置
US10073753B2 (en) * 2016-02-14 2018-09-11 Dell Products, Lp System and method to assess information handling system health and resource utilization
US10176034B2 (en) * 2016-02-16 2019-01-08 International Business Machines Corporation Event relationship analysis in fault management
CN105786635B (zh) * 2016-03-01 2018-10-12 国网江苏省电力公司电力科学研究院 一种面向故障敏感点动态检测的复杂事件处理系统及方法
US10162698B2 (en) * 2016-03-25 2018-12-25 Dropbox, Inc. System and method for automated issue remediation for information technology infrastructure
US10223145B1 (en) * 2016-06-21 2019-03-05 Amazon Technologies, Inc. System for impairment issues of distributed hosts
US10095504B1 (en) * 2016-06-30 2018-10-09 EMC IP Holding Company LLC Automated analysis system and method
US10416982B1 (en) 2016-06-30 2019-09-17 EMC IP Holding Company LLC Automated analysis system and method
KR102195640B1 (ko) * 2016-08-18 2020-12-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 화상 형성 장치의 네트워크 진단을 수행하는 호스트 장치 및 방법, 네트워크 진단이 수행되는 화상 형성 장치 및 이를 제어하는 방법
US10216622B2 (en) 2016-09-01 2019-02-26 International Business Machines Corporation Diagnostic analysis and symptom matching
WO2018061258A1 (ja) * 2016-09-29 2018-04-05 株式会社ディーアンドエムホールディングス 音響映像機器
US10241848B2 (en) 2016-09-30 2019-03-26 Microsoft Technology Licensing, Llc Personalized diagnostics, troubleshooting, recovery, and notification based on application state
US10394633B2 (en) 2016-09-30 2019-08-27 Microsoft Technology Licensing, Llc On-demand or dynamic diagnostic and recovery operations in conjunction with a support service
US10476768B2 (en) 2016-10-03 2019-11-12 Microsoft Technology Licensing, Llc Diagnostic and recovery signals for disconnected applications in hosted service environment
US10929363B2 (en) * 2016-11-11 2021-02-23 International Business Machines Corporation Assisted problem identification in a computing system
US11429473B2 (en) 2016-11-30 2022-08-30 Red Hat, Inc. Automated problem resolution
US10467083B2 (en) * 2017-06-08 2019-11-05 International Business Machines Corporation Event relationship analysis in fault management
US10565045B2 (en) * 2017-06-28 2020-02-18 Microsoft Technology Licensing, Llc Modularized collaborative performance issue diagnostic system
US10452465B2 (en) * 2017-09-08 2019-10-22 Oracle International Corporation Techniques for managing and analyzing log data
US10678630B2 (en) * 2017-12-15 2020-06-09 Wipro Limited Method and system for resolving error in open stack operating system
US11075925B2 (en) 2018-01-31 2021-07-27 EMC IP Holding Company LLC System and method to enable component inventory and compliance in the platform
US10769009B2 (en) * 2018-03-21 2020-09-08 International Business Machines Corporation Root cause analysis for correlated development and operations data
US10713110B2 (en) * 2018-03-27 2020-07-14 Accenture Global Solutions Limited Automated issue detection and resolution framework for enterprise resource planning
US10693722B2 (en) 2018-03-28 2020-06-23 Dell Products L.P. Agentless method to bring solution and cluster awareness into infrastructure and support management portals
US10754708B2 (en) 2018-03-28 2020-08-25 EMC IP Holding Company LLC Orchestrator and console agnostic method to deploy infrastructure through self-describing deployment templates
US10795756B2 (en) 2018-04-24 2020-10-06 EMC IP Holding Company LLC System and method to predictively service and support the solution
US11086738B2 (en) * 2018-04-24 2021-08-10 EMC IP Holding Company LLC System and method to automate solution level contextual support
US10970632B2 (en) * 2018-06-25 2021-04-06 Hcl Technologies Ltd Generating a score for a runbook or a script
US10769043B2 (en) * 2018-06-25 2020-09-08 Hcl Technologies Ltd. System and method for assisting user to resolve a hardware issue and a software issue
US11599422B2 (en) 2018-10-16 2023-03-07 EMC IP Holding Company LLC System and method for device independent backup in distributed system
US10282248B1 (en) * 2018-11-27 2019-05-07 Capital One Services, Llc Technology system auto-recovery and optimality engine and techniques
US10824528B2 (en) 2018-11-27 2020-11-03 Capital One Services, Llc Techniques and system for optimization driven by dynamic resilience
US11288114B2 (en) * 2019-01-26 2022-03-29 Microsoft Technology Licensing, Llc Remote diagnostic of computing devices
WO2020166004A1 (ja) * 2019-02-14 2020-08-20 三菱電機株式会社 制御システム、プログラマブルロジックコントローラ、方法、及びプログラム
US10862761B2 (en) 2019-04-29 2020-12-08 EMC IP Holding Company LLC System and method for management of distributed systems
US11061800B2 (en) * 2019-05-31 2021-07-13 Microsoft Technology Licensing, Llc Object model based issue triage
US11301557B2 (en) 2019-07-19 2022-04-12 Dell Products L.P. System and method for data processing device management
US10686645B1 (en) 2019-10-09 2020-06-16 Capital One Services, Llc Scalable subscriptions for virtual collaborative workspaces
US10866872B1 (en) 2019-11-18 2020-12-15 Capital One Services, Llc Auto-recovery for software systems
US20210406112A1 (en) * 2020-06-29 2021-12-30 International Business Machines Corporation Anomaly classification in information technology environments
US11322976B1 (en) * 2021-02-17 2022-05-03 Sas Institute Inc. Diagnostic techniques for monitoring physical devices and resolving operational events

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073844A1 (en) 1999-10-28 2004-04-15 Unkle C. Richard Method and apparatus for diagnosing difficult diagnose faults in a complex system
US7065767B2 (en) * 2001-06-29 2006-06-20 Intel Corporation Managed hosting server auditing and change tracking

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6822553B1 (en) * 1985-10-16 2004-11-23 Ge Interlogix, Inc. Secure entry system with radio reprogramming
US5200958A (en) * 1990-09-28 1993-04-06 Xerox Corporation Method and apparatus for recording and diagnosing faults in an electronic reprographic printing system
US5245615A (en) * 1991-06-06 1993-09-14 International Business Machines Corporation Diagnostic system and interface for a personal computer
US5463768A (en) * 1994-03-17 1995-10-31 General Electric Company Method and system for analyzing error logs for diagnostics
JP2868114B2 (ja) * 1994-06-07 1999-03-10 三菱電機株式会社 監視診断機能付計算機
EP0690378A1 (en) * 1994-06-30 1996-01-03 Tandem Computers Incorporated Tool and method for diagnosing and correcting errors in a computer programm
US5495573A (en) * 1994-08-05 1996-02-27 Unisys Corporation Error logging system with clock rate translation
JPH08305595A (ja) * 1995-05-11 1996-11-22 Mitsubishi Electric Corp 情報処理装置の診断方法
US5884073A (en) * 1996-10-28 1999-03-16 Intel Corporation System and method for providing technical support of an electronic system through a web bios
US6247149B1 (en) * 1997-10-28 2001-06-12 Novell, Inc. Distributed diagnostic logging system
US6212653B1 (en) * 1998-02-18 2001-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Logging of events for a state driven machine
JP3141856B2 (ja) * 1998-09-30 2001-03-07 日本電気株式会社 障害復旧補助方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
US6550055B1 (en) * 1998-12-29 2003-04-15 Intel Corp. Method and apparatus for cheating an information report resulting from a diagnostic session
US6446136B1 (en) * 1998-12-31 2002-09-03 Computer Associates Think, Inc. System and method for dynamic correlation of events
US6467052B1 (en) * 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
JP2001067417A (ja) * 1999-06-29 2001-03-16 General Electric Co <Ge> 利用者に医療診断システムのサービス・ワークフローを自動的にガイドする方法及び装置
CN1283029A (zh) * 1999-07-29 2001-02-07 神基科技股份有限公司 远端系统诊断方法
US7500143B2 (en) * 2000-05-05 2009-03-03 Computer Associates Think, Inc. Systems and methods for managing and analyzing faults in computer networks
JP2002049508A (ja) * 2000-05-29 2002-02-15 Mirae E Net Co Ltd インターネットを通したコンピュータシステム診断方法
US7043661B2 (en) * 2000-10-19 2006-05-09 Tti-Team Telecom International Ltd. Topology-based reasoning apparatus for root-cause analysis of network faults
JP3979000B2 (ja) * 2000-11-27 2007-09-19 株式会社日立製作所 ログ情報取得出力方法および該方法を実現するプログラムを記録した記録媒体
US6738933B2 (en) * 2001-05-09 2004-05-18 Mercury Interactive Corporation Root cause analysis of server system performance degradations
US7120685B2 (en) * 2001-06-26 2006-10-10 International Business Machines Corporation Method and apparatus for dynamic configurable logging of activities in a distributed computing system
US6738832B2 (en) * 2001-06-29 2004-05-18 International Business Machines Corporation Methods and apparatus in a logging system for the adaptive logger replacement in order to receive pre-boot information
JP2004535018A (ja) * 2001-07-06 2004-11-18 コンピュータ アソシエイツ シンク,インコーポレイテッド システム及び企業事象の根本原因を相関付けし判定するための方法とシステム
US7194445B2 (en) * 2002-09-20 2007-03-20 Lenovo (Singapore) Pte. Ltd. Adaptive problem determination and recovery in a computer system
US7516362B2 (en) * 2004-03-19 2009-04-07 Hewlett-Packard Development Company, L.P. Method and apparatus for automating the root cause analysis of system failures
US7398429B2 (en) * 2005-02-03 2008-07-08 Cisco Technology, Inc. System and method for tracing and logging for software module

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073844A1 (en) 1999-10-28 2004-04-15 Unkle C. Richard Method and apparatus for diagnosing difficult diagnose faults in a complex system
US7065767B2 (en) * 2001-06-29 2006-06-20 Intel Corporation Managed hosting server auditing and change tracking

Also Published As

Publication number Publication date
KR20040095682A (ko) 2004-11-15
US7263632B2 (en) 2007-08-28
EP1515234A3 (en) 2007-08-08
EP1515234A2 (en) 2005-03-16
JP2004334869A (ja) 2004-11-25
CN1550989A (zh) 2004-12-01
US20040225381A1 (en) 2004-11-11
CN100412802C (zh) 2008-08-20

Similar Documents

Publication Publication Date Title
KR101021394B1 (ko) 컴퓨팅 시스템에서 문제의 근본 원인을 프로그램적으로 진단하는 방법 및 컴퓨팅 시스템에서 문제의 근본 원인을 결정하는 방법, 및 컴퓨터 판독가능 저장 매체
KR102268355B1 (ko) 클라우드 배치 기반구조 검증 엔진
US7028175B2 (en) System and method for computer hardware identification
US10152364B2 (en) Predicting, diagnosing, and recovering from application failures based on resource access patterns
US7606814B2 (en) Tracing a web request through a web server
EP2427822B1 (en) Exception raised notification
US7664986B2 (en) System and method for determining fault isolation in an enterprise computing system
US7523340B2 (en) Support self-heal tool
US8271956B2 (en) System, method and program product for dynamically adjusting trace buffer capacity based on execution history
US6460151B1 (en) System and method for predicting storage device failures
US7363546B2 (en) Latent fault detector
US6698016B1 (en) Method for injecting code into another process
US20070192700A1 (en) Support of remote software applications
US20080126887A1 (en) Method and system for site configurable error reporting
US20080320336A1 (en) System and Method of Client Side Analysis for Identifying Failing RAM After a User Mode or Kernel Mode Exception
CN108431781B (zh) 设备驱动器检测的错误的自诊断和自动诊断数据收集
US10657027B2 (en) Aggregating data for debugging software
CN111522703A (zh) 监控访问请求的方法、设备和计算机程序产品
US20060271591A1 (en) Method and system for an incidental feedback platform
US7296273B2 (en) System, method and program tool to reset an application
US8122203B2 (en) Serviceability level indicator processing for storage alteration
US20080154574A1 (en) Application emulation on a non-production computer system
JP5840290B2 (ja) ソフトウェア操作性サービス
CN111488230A (zh) 修改日志输出级别的方法、装置、电子设备及存储介质
US20050262335A1 (en) Performing resource analysis on one or more cards of a compute system

Legal Events

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

Payment date: 20140217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 10