KR101036702B1 - 프로그램 실행 불안정성의 상태들에 기초하여 소프트웨어프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법,시스템 및 장치 - Google Patents
프로그램 실행 불안정성의 상태들에 기초하여 소프트웨어프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법,시스템 및 장치 Download PDFInfo
- Publication number
- KR101036702B1 KR101036702B1 KR1020050045549A KR20050045549A KR101036702B1 KR 101036702 B1 KR101036702 B1 KR 101036702B1 KR 1020050045549 A KR1020050045549 A KR 1020050045549A KR 20050045549 A KR20050045549 A KR 20050045549A KR 101036702 B1 KR101036702 B1 KR 101036702B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- software program
- execution
- instability
- stability
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Abstract
불안정성의 레벨들에 기초하여 컴퓨터 프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법 및 장치가 제공된다. 소프트웨어 프로그램의 실행은 프로그램의 실행 안정성을 결정하기 위하여 시간의 구간에 걸쳐 모니터링된다. 모니터링, 및 불안정성의 하나 이상의 임계값 레벨에 기초하여, 프로그램의 실행 안정성이 카테고리화된다. 카테고리화에 기초하여, 프로그램을 실행하는 컴퓨터 시스템의 사용자에게 커스텀 프로그램 지원이 제공될 수 있다. 예를 들어, 카테고리화에 기초하여 면제 또는 인하된 요금 제품 지원이 제공될 수 있다.
커스텀 제품, 카테고리화, 안정성, 임계값
Description
도 1은 본 발명의 다양한 양상들을 구현하기 위해 이용된 컴퓨터 네트워크의 양상들을 도시하는 네트워크 다이어그램.
도 2는 본 발명의 다양한 실시예들에서 이용되고 제공되는 컴퓨터 시스템을 도시하는 컴퓨터 시스템 아키텍처 다이어그램.
도 3-7은 본 발명의 다양한 실시예들에 의해 제공되고 이용된 프로세스들을 도시하는 플로우 다이어그램.
<도면의 주요부분에 대한 부호의 설명>
302: 어플리케이션이 시작되었는가?
304: 세션 로그에 새로운 엔트리 생성
306: 어플리케이션 시작 시각 기록
308: 정상적 퇴거?
310: 정상적 퇴거 기록
312: 세션 길이 기록
314: 정지 감지?
316: 정지/고장 기록
318: 세션 길이 기록
319: 예외 핸들링
320: 종료
322: 고장 감지?
소프트웨어 개발 주기에서 가장 중요한 단계들 중 하나는 소프트웨어 제품이 고객들에게 수송된 후 발생하는 디버깅 단계이다. 이 단계는 프로그램 에러들을 분리시키고, 빈번히 또는 빈번하지 않게 사용된 특성들을 식별하며, 일반적으로 소프트웨어 제품을 더욱 좋고 안정성있게 하기 위하여, 이 단계 동안 소프트웨어 제품 사용자들의 실제 경험들이 이용될 수 있기 때문에 중요하다.
배포 후의 디버깅(after-release debugging) 단계에서 분석의 주요 초점은 전형적으로 가장 빈번히 발생하는 프로그램 에러("버그(bug)"로도 언급함)들을 식별하는 것이다. 가장 빈번히 발생하는 버그들을 식별하고 수정함으로써, 많은 사용자의 유용성 경험(usability experience)이 개선될 수 있다. 그러나, 이전의 배포 후 디버깅 시스템에 의하여 일반적으로 해결되지 않는 또다른 카테고리의 분석이 있다. 이 카테고리는 어플리케이션 프로그램의 실행 동안 가장 빈번히 문제들 에 부딪히게 되는 컴퓨터 시스템들을 식별하는 것을 수반한다. 이러한 문제들은 모든 사용자 사이에서 가장 빈번히 발생하는 프로그램 에러들을 포함하거나 포함하지 않을 수 있다.
적은 수의 사용자들이 전체 문제들의 총 수 중 높은 비율(percentage)을 경험한다는 것을 통계가 보여준다. 그러한 문제들은 프로그램 고장(program crash), 프로그램 정지(program hang), 갑작스런 프로그램 종료(abrupt program termination) 및 기타 유형의 비정상적인 프로그램 종료를 포함할 수 있다. 이러한 유형의 프로그램들을 나타내는 어플리케이션 프로그램들은 본 발명에서 일반적으로 "불안정(unstable)"하거나 "프로그램 실행 불안정성(program execution instability)"을 가지는 것으로 언급된다. 불안정한 프로그램은 그 프로그램을 사용하는 동안 빈번히 문제들에 부딪히게 되는 컴퓨터 사용자에 대해 특히 실망적일 수 있다.
이전의 배포 후 디버깅 시스템들은 가장 높은 빈도의 프로그램 실행 불안정성을 갖는 컴퓨터 시스템을 식별하는 방식을 제공하지 않고, 따라서 문제들을 경험하는 사용자를 소프트웨어 개발자가 돕기 위한 메커니즘을 제공하지 않는다. 따라서, 높은 빈도의 프로그램 실행 불안정성을 갖는 컴퓨터 시스템들을 식별하고 그러한 컴퓨터 시스템의 사용자에게 커스텀 제품 지원(custom product support)을 제공하기 위한 방법, 시스템 및 장치가 필요하다.
본 발명의 다양한 실시예들이 이러한 고려 및 기타 사항들에 관해 행해진다.
본 발명의 실시예들에 따라, 실행 불안정성의 상태들에 기초하여 컴퓨터 프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법 및 장치에 의하여 상기 및 기타 문제들이 해결된다. 다양한 레벨들의 프로그램 실행 불안정성을 갖는 컴퓨터 시스템들을 식별함으로써, 가장 높은 빈도의 프로그램 실행 에러들을 갖는 사용자들에게 커스텀 제품 지원이 제공될 수 있다. 커스텀 제품 지원의 제공은 임계값들에 기초하여 프로그램 불안정성의 상태들로 카테고리화(categorize)하는 것에 기초하기 때문에, 변화하는 수의 사용자들에게 커스텀 제품 지원을 제공하기 위하여 임계값들이 조정될 수 있다.
본 발명의 한 양상에 따라서, 프로그램 실행 불안정성의 상태들에 기초하여 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법이 제공된다. 본 방법에 따라, 소프트웨어 프로그램의 실행은 프로그램의 실행 안정성을 결정하기 위하여 시간 구간에 걸쳐 모니터링된다. 모니터링 및 불안정성의 하나 이상의 임계값 레벨에 기초하여, 프로그램의 실행 안정성이 상태(state)로 카테고리화된다. 예를 들어, 프로그램의 안정성은 "좋음", "나쁨" 또는 "매우 나쁨"으로 카테고리화될 수 있다. 카테고리화에 기초하여, 프로그램을 실행하는 컴퓨터 시스템의 사용자에게 커스텀 프로그램 지원이 제공될 수 있다. 예를 들어, 카테고리화에 기초하여 면제 또는 인하된 요금 제품 지원이 제공될 수 있다. 대안적으로, 컴퓨터의 사용자는 상태에 기초하여 결정되는 웹 페이지와 같은 정보 자원에 향해질 수 있다. 마찬가지로, 카테고리화에 기초하여 컴퓨터 시스템 및 어플리케이션 프로그 램의 문제들을 식별하고 수정하기 위하여 진단 프로그램이 실행될 수 있다.
본 방법의 양상들에 따라, 프로그램이 실행될 때마다 로그(log)에 세션 엔트리(session entry)를 생성함으로써 시간 구간에 걸쳐 소프트웨어 프로그램의 실행에 대한 모니터링이 수행될 수 있다. 세션 엔트리는 프로그램, 프로그램이 실행된 시간의 길이를 식별하는 데이터, 및 프로그램이 정상적으로 종료되었는지 비정상적으로 종료되었는지를 나타내는 데이터를 포함한다. 비정상적인 종료는 프로그램 고장, 프로그램 정지(프로그램이 계속 실행되지만, 사용자에게 응답이 없는 상태로 나타남), 또는 임의의 기타 유형의 비정상적인 종료(프로그램이 실행되고 있는 동안 컴퓨터로부터 전력이 제거된 것과 같은 경우)를 포함할 수 있다.
프로그램의 실행 안정성은 로그의 분석에 기초하여 결정될 수 있다. 특히, 프로그램의 실행 안정성을 설명하는 하나 이상의 통계가 생성될 수 있다. 예를 들어, 프로그램 실행의 횟수 당 비정상적인 종료의 횟수가 계산될 수 있다. 유사하게, 프로그램 실행의 분(minutes) 당 비정상적인 종료의 횟수가 계산될 수 있다. 기타 유형의 통계들 또한 생성될 수 있다.
프로그램의 실행 안정성을 상태로 카테고리화하기 위하여, 불안정성의 하나 이상의 임계값 레벨이 이용될 수 있다. 임계값들은 컴퓨터 시스템에 저장될 수 있고, 원격 제어 파일에서 서버 컴퓨터로부터 주기적으로 갱신될 수 있다. 임계값들은 프로그램 실행의 안정성을 카테고리화하기 위하여 이용되어야 하는 값들을 정의한다. 임계값들은 프로그램의 안정성을 프로그램 실행 불안정성에 대한 하나 이상의 상태로 카테고리화하기 위하여 통계에 비교된다. 임계값들은 프로그램의 상이 한 버전들에 대해 원격 제어 파일에서 제공될 수 있다. 원격 제어 파일의 내용들은 임계값들을 변경하기 위하여 주기적으로 수정될 수 있다.
본 발명은 컴퓨터 프로세스, 컴퓨팅 장치 또는 시스템, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체와 같은 제조품의 품목으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하기 위해 컴퓨터 프로그램 명령어들을 인코딩하는 컴퓨터 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨팅 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하기 위해 컴퓨터 프로그램 명령어들을 인코딩하는 반송파 상의 전파 신호일 수도 있다.
본 발명의 실시예들의 특징을 나타내는 이점들뿐 아니라 이러한 특성들 및 다양한 기타 특성들은 후술하는 상세 설명의 판독 및 관련 도면들의 검토로부터 명백해질 것이다.
이제 숫자들이 구성요소들을 나타내는 도면들을 참조하여, 본 발명의 다양한 양상들이 설명될 것이다. 특히, 도 1 및 대응하는 논의는 본 발명의 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경의 간략하고 일반적인 설명을 제공하기 위한 것이다. 개인용 컴퓨터상의 운영 시스템에서 동작하는 프로그램 모듈들과 함께 실행하는 프로그램 모듈들의 일반적인 문맥으로 본 발명이 설명될 것이지만, 본 분야에서 숙련된 기술을 가진 자들은 본 발명이 기타 유형들의 컴퓨터 시스템 및 프로그램 모듈과 함께 구현될 수도 있다는 것을 인지할 것이다.
일반적으로, 프로그램 모듈은 루틴, 프로그램, 컴포넌트, 데이터 구조 및 특 정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 기타 유형의 구조들을 포함한다. 게다가, 본 분야에서 숙련된 기술을 가진 자들은 본 발명이 포켓형 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍 가능한 가전기기, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 기타 컴퓨터 시스템 구성에서 실행될 수 있다는 점을 잘 알 것이다. 본 발명은 또한 통신 네트워크를 통하여 연결되는 원격 프로세싱 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치 둘 모두에 위치될 수 있다. 이제 몇몇 도면을 통해 숫자들이 구성요소들을 나타내는 도면을 참조하여, 본 발명 및 예시적인 운영 환경의 양상들이 설명될 것이다.
도 1은 본 발명의 다양한 실시예에 대한 예시적인 운영 환경을 도시한다. 도 1에 도시된 바와 같이, 클라이언트 컴퓨터(2)는 본 발명의 다양한 실시예에서 이용된다. 클라이언트 컴퓨터는 하나 이상의 프로그램 모듈을 실행하기 위해 사용될 수 있는 표준 데스크탑 또는 서버 컴퓨터를 포함한다. 클라이언트 컴퓨터(2)는 또한 어플리케이션 프로그램들의 실행을 모니터링하고 프로그램들의 실행 안정성을 결정하기 위한 프로그램 모듈을 갖춘다. 클라이언트 컴퓨터(2)는 또한 하나 이상의 임계값에 기초하여 프로그램들의 안정성을 분류하고 분류에 기초하여 어플리케이션들에 대한 커스텀 제품 지원을 제공하기 위해 동작가능하다.
클라이언트 컴퓨터(2)에서 실행하는 프로그램들의 안정성을 분류하기 위하여, 클라이언트 컴퓨터(2)는 또한 소프트웨어 프로그램의 개발자에 의하여 동작되 는 에러 보고 서버 컴퓨터(10)로부터 원격 제어 파일을 주기적으로 수신하도록 동작가능하다. 에러 보고 서버 컴퓨터(10)는 LAN이나 인터넷(8)을 통해 유지되고 액세스가능한 기존의 서버 컴퓨터를 포함한다. 에러 보고 서버 컴퓨터(10)는 관심있는 어플리케이션 프로그램의 개발자에 의해 동작된다. 원격 제어 파일의 내용 및 사용에 관한 부가적인 세부사항들이 도 2-7에 대해 하기에 제공될 것이다. 제품 지원 서버 컴퓨터(6)는 또한 커스텀 제품 지원을 제공하기 위해 개발자에 의해 동작될 수 있다. 예를 들어, 제품 지원 서버는 사용자가 경험하는 프로그램 불안정성의 레벨에 기초하여 웹 페이지 또는 기타 정보를 제공할 수 있다.
이제 도 2를 참조하여, 본 발명의 다양한 실시예들에서 이용된 클라이언트 컴퓨터(2)에 대한 예시적인 컴퓨터 아키텍처가 설명될 것이다. 도 2에 도시된 컴퓨터 아키텍처는 중앙 프로세싱 유닛(5)("CPU")을 포함하는 기존의 데스크탑 또는 랩탑 컴퓨터, 랜덤 액세스 메모리(9)("RAM") 및 판독-전용 메모리(11)("ROM")를 포함하는 시스템 메모리(7), 및 메모리를 CPU(5)에 연결하는 시스템 버스(12)를 도시한다. 시작할 때 등에 컴퓨터 내의 구성요소들 사이의 정보 전달을 돕는 기본 루틴들을 포함하는 기본 입력/출력 시스템은 ROM(11)에 저장된다. 컴퓨터(2)는 하기에 더욱 상세히 설명될 운영 시스템(16), 어플리케이션 프로그램(18) 및 기타 프로그램 모듈들을 저장하기 위한 대용량 저장 장치(14)를 더 포함한다.
대용량 저장 장치(14)는 버스(12)에 연결된 대용량 저장 제어기(도시되지 않음)를 통해 CPU(5)에 연결된다. 대용량 저장 장치(14) 및 관련 컴퓨터-판독가능 매체는 컴퓨터(2)에 대한 비휘발성 저장장치를 제공한다. 본 발명에 포함된 컴퓨 터-판독가능 매체의 설명은 하드 디스크나 CD-ROM 드라이브와 같은 대용량 저장 장치를 언급하지만, 본 분야에서 숙련된 기술을 가진 자들은 컴퓨터-판독가능 매체가 컴퓨터(2)에 의해 액세스될 수 있는 임의의 가용 매체일 수 있다는 점을 잘 알아야 한다.
제한을 가하지 않는 예로서, 컴퓨터-판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 기타 고체 상태 메모리 기술, CD-ROM, DVD, 또는 기타 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨터(2)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하지만, 이들로 제한되지는 않는다.
본 발명의 다양한 실시예들에 따라, 컴퓨터(2)는 인터넷과 같은 네트워크(8)를 통해 원격 컴퓨터들에의 논리적 연결들을 사용하는 네트워크 환경에서 동작할 수 있다. 클라이언트 컴퓨터(2)는 버스(12)에 연결된 네트워크 인터페이스 유닛(20)을 통해 네트워크(8)에 연결할 수 있다. 네트워크 인터페이스 유닛(20)은 또한 기타 유형의 네트워크들 및 원격 컴퓨터 시스템들에 연결하기 위하여 이용될 수 있다는 점을 잘 알아야 한다. 컴퓨터(2)는 또한 키보드, 마우스, 또는 전자 스타일러스(도 1에 도시되지 않음)를 포함하는 많은 기타 장치들로부터의 입력을 수신 하고 프로세싱하기 위한 입력/출력 제어기(22)를 포함할 수 있다. 유사하게, 입력/출력 제어기(22)는 디스플레이 스크린, 프린터, 또는 기타 유형의 출력 장치에 출력을 제공할 수 있다.
상기에 간략히 언급된 바와 같이, 워싱턴주 레드몬드에 위치한 마이크로소프트 코포레이션으로부터의 윈도우즈 XP 운영 시스템과 같은, 네트워크에 연결된 개인용 컴퓨터의 동작을 제어하기에 적합한 운영 시스템(16)을 포함하여 많은 프로그램 모듈 및 데이터 파일들이 컴퓨터(2)의 대용량 저장 장치(14) 및 RAM(9)에 저장될 수 있다. 대용량 저장 장치(14) 및 RAM(9)은 또한 하나 이상의 프로그램 모듈을 저장할 수 있다. 특히, 대용량 저장 장치(14) 및 RAM(9)은 하나 이상의 어플리케이션 프로그램(18)의 실행 안정성을 모니터링하고, 소정 설정가능한 임계값 이상으로 프로그램이 불안정하게 되면 어플리케이션 프로그램(18)에 대한 커스텀 제품 지원을 제공하기 위한 어플리케이션 안정성 모니터 프로그램(24)을 저장할 수 있다. 어플리케이션 안정성 모니터(24)는 클라이언트 컴퓨터(2) 내의 프로그램 실행 예외를 캐치하고 핸들링하기 위해 동작가능한 예외 핸들러(32)의 실행에 응답하여 실행될 수 있다. 어플리케이션 안정성 모니터(24)는 클라이언트 컴퓨터(2)의 사용자에 의해 수동으로도 실행될 수 있다.
어플리케이션 프로그램(18)의 안정성을 모니터링하기 위하여, 어플리케이션 안정성 모니터(24)는 이벤트 서비스(26)의 서비스들을 이용한다. 이벤트 서비스(26)는 클라이언트 컴퓨터(2)에서 발생하는 이벤트들을 이벤트 로그(28)에 로그하기 위하여 운영 시스템(26)에 의해 제공된 설비이다. 예를 들어, 이벤트 서비스 (26)는 보안-관련 이벤트들(예를 들어, 허가되지 않은 로그인 시도), 시스템-관련 이벤트들(예를 들어, 실패를 경험하는 디스크 드라이브), 및 어플리케이션-관련 이벤트들을 로그할 수 있다. 하기에 보다 상세히 설명될 것과 같이, 어플리케이션 프로그램(18)의 실행 및 실패에 관한 이벤트들은 이벤트 로그(28)에 기록된다. 특히, 세션 엔트리는 어플리케이션 프로그램이 실행될 때마다 이벤트 로그(28)에 생성될 수 있다. 세션 엔트리는 프로그램, 프로그램이 실행된 시간의 길이를 식별하는 데이터, 및 프로그램이 정상적으로 종료되었는지 비정상적으로 종료되었는지를 나타내는 데이터를 포함한다. 비정상적인 종료는 프로그램 고장, 프로그램 정지(프로그램이 계속 실행되지만 사용자에게 응답할 수 없는 상태로 나타나는 경우), 또는 임의의 기타 유형의 비정상적인 종료(프로그램이 실행되고 있는 동안 컴퓨터로부터 전력이 제거된 것과 같은 경우)를 포함할 수 있다.
하기에 더욱 상세히 설명될 것과 같이, 이벤트 로그(28)는 주기적으로 분석될 수 있고 어플리케이션 프로그램(18)의 안정성을 설명하는 통계가 생성될 수 있다. 통계는 프로그램 실행의 횟수 당 비정상적인 종료의 횟수, 계산될 수 있는 프로그램 실행의 분 당 비정상적인 종료의 횟수를 정의하는 데이터, 또는 어플리케이션 프로그램(18)의 안정성을 나타내는 기타 유형의 통계를 포함할 수 있다.
통계가 생성되면, 프로그램의 실행 안정성은 통계 및, 원격 제어 파일(36)에 저장된 하나 이상의 임계값에 기초하여 상태들로 카테고리화될 수 있다. 임계값들은 프로그램 불안정성의 다양한 레벨을 정의한다. 예를 들어, 임계값들은 프로그램 모듈의 실행을 "좋음", "나쁨", 또는 "매우 나쁨"으로 카테고리화하도록 정의될 수 있다. 본 발명의 일 실시예에 따라서, "좋음" 임계값은 어떠한 동작도 행해져서는 안 되는, 어플리케이션 프로그램이 충분히 안정적이라는 것을 나타낸다. "나쁨" 임계값은 어플리케이션이 다소 불안정하지만, 사용자에게 면제 또는 인하된 요금 제품 지원의 제공을 보증할 만큼 충분히 불안정하지는 않다는 것을 나타낸다. 사용자는 진단 또는 기타 정보에 향해질 수 있다. "매우 나쁨" 임계값은 어플리케이션 안정성이 매우 나빠서 면제 또는 인하된 요금 제품 지원이 보증된다는 것을 나타낸다. 3개보다 많은 임계값이 정의될 수 있고 이러한 임계값들의 정의는 소프트웨어 제품 및 개발자에 따라 변화할 수 있다. 어플리케이션 프로그램의 성능에 대한 모니터링 및 커스텀 지원의 제공이 어플리케이션 별(application-by-application basis)로 어플리케이션 프로그램의 개발자에 의해 가능해질 수 있다.
원격 제어 파일(36)의 내용은 주기적으로 갱신되며 에러 보고 서버 컴퓨터(10)로부터 클라이언트 컴퓨터(2)에 전송될 수 있다. 원격 제어 파일(36)은 또한 각 임계값에 대하여 그 이후에 임계값들이 이용되어서는 안 되는 시간을 정의하는 만료 날짜를 저장할 수 있다. 원격 제어 파일(36)은 또한 각 임계값에 대한 어플리케이션 버전 번호를 저장할 수 있다. 어플리케이션 버전 번호들은 클라이언트 컴퓨터(2)에 설치되고 사용중일 수 있는 어플리케이션 프로그램의 상이한 버전들에 상이한 임계값들이 할당되도록 허용한다. 원격 제어 파일(36)은 기타 데이터를 저장할 수 있고 부가적인 방식들로 클라이언트 컴퓨터(2)의 동작을 제어하기 위하여 이용될 수 있다는 점을 잘 알아야 한다. 원격 제어 파일의 내용 및 사용에 관한 더 많은 정보는, 본 발명에서 참고로 통합된 제목 "컴퓨터 시스템 내에서 발생하는 이벤트들의 보고를 원격으로 제어하기 위한 방법 및 시스템(Method and System for Remotely Controlling the Reporting of Events Occurring within a Computer System)"인 U.S. 특허 출원 No. 10/304,282에서 발견될 수 있다.
할당된 임계값에 기초하여, 커스텀 프로그램 지원은 어플리케이션 안정성 모니터(24)에 의해 프로그램을 실행하는 컴퓨터 시스템의 사용자에게 제공될 수 있다. 예를 들어, 카테고리화에 기초하여, 사용자는 면제 또는 인하된 요금 제품 지원에 향해질 수 있다. 대안적으로, 컴퓨터의 사용자는 카테고리화에 기초하여 결정되는, 웹 페이지와 같은 정보 자원에 향해질 수 있다. 마찬가지로, 카테고리화에 기초하여 컴퓨터 시스템 및 어플리케이션 프로그램의 문제를 식별하고 수정하기 위하여 진단 프로그램(34)이 실행될 수 있다.
본 발명의 실시예에 따라, 운영 시스템(16)은 레지스트리(30)에 데이터를 저장하기 위하여 동작가능하다. 레지스트리(30)는 하나 이상의 사용자, 어플리케이션 및 하드웨어 장치를 구성하기 위한 필수적인 정보를 저장하기 위해 이용된 중앙 계층적 데이터베이스이다. 예를 들어, 레지스트리(30)는 진단(34)에 의해 클라이언트 컴퓨터상의 소프트웨어 컴포넌트들에 수정이 행해진 마지막 시각을 식별하는 "마지막 수정 시각" 레지스트리 키를 저장하기 위해 동작가능하다. 레지스트리(30)는 현재 사용자의 어플리케이션 안정성 모니터(24)와의 이전 상호작용을 식별하는 "진단 상태" 레지스트리 키를 저장하기 위해 또한 동작가능하다. 진단 상태 레지스트리 키에 대해 가능한 값들은, 사용자가 이전에 어플리케이션 안정성 모니터(24)를 이용한 적이 없는 "신규(new)", 진단(34)이 이전에 실행되었고 클라이언 트 컴퓨터(2)에 변경이 행해진 "변경됨(altered)", 진단(34)이 실행되었고 불안정성을 유발하는 문제가 어플리케이션 프로그램(18)에 외부적(예를 들어, 하드웨어 고장과 같은 경우)이라고 결정된 "동일시됨(identified)", 진단이 실행되었고 사용자가 제품 지원 전문가(product support specialist, PSS)의 형태의 고객 지원에 향해진 "도움(help)"이다. 하기에 더욱 상세히 설명될 것과 같이, 새로 부딪힌 문제가 사용자에 대해 어떻게 핸들링되어야 하는지를 결정하기 위하여 "진단 상태" 레지스트리 키의 값이 이용된다. 이벤트 로그(28)의 생성, 예외 핸들러(32)의 동작 및 어플리케이션 안정성 모니터(24)의 동작에 관한 부가적인 세부사항들이 도 3-7에 관하여 하기에 더욱 상세히 제공될 것이다.
이제 도 3을 참조하여, 이벤트 로그(28)에 레코드를 생성하기 위해 수행되는 프로세스를 도시하는 예시적인 루틴(300)이 설명될 것이다. 본 발명에 제공된 루틴들의 논의를 읽을 때, 본 발명의 다양한 실시예들의 논리적 동작들이 (1) 컴퓨팅 시스템상에서 동작하는 컴퓨터 구현 동작 또는 프로그램 모듈의 시퀀스로서 및/또는 (2) 컴퓨팅 시스템 내에서 상호연결된 기계 로직 회로 또는 회로 모듈로서 구현된다는 점을 잘 알아야 한다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요구사항에 따른 선택의 문제이다. 따라서, 도 3-7에 도시되고 여기 설명된 본 발명의 실시예들을 구성하는 논리적 동작들은 동작(operation), 구조적 장치, 행위(act) 또는 모듈로서 다양하게 언급된다. 본 분야에서 숙련된 기술을 가진 자는 이러한 동작, 구조적 장치, 행위 및 모듈이 여기 언급된 특허청구범위 내에 인용된 바와 같은 본 발명의 취지 및 범위로부터 벗어나지 않고서 소프트웨어, 펌웨어, 특 수 목적 디지털 로직 및 이들의 임의의 조합으로 구현될 수 있다는 점을 잘 알 것이다.
루틴(300)은 어플리케이션 프로그램(18) 중 하나가 시작되었는지에 대한 결정이 이벤트 서비스(26)에 의해 행해지는 동작(302)에서 시작한다. 만약 어플리케이션 프로그램이 시작되지 않았다면, 루틴(300)은 또다른 결정이 행해지는 결정 동작(302)에 리턴된다. 만약 어플리케이션 프로그램이 시작되었다면, 루틴(300)은 어플리케이션이 시작된 시각이 메모리에 저장되는 동작(306)으로 진행한다.
동작(306)으로부터, 루틴(300)은 이벤트 서비스(26)가 어플리케이션 프로그램이 사용자 요청에 응답해서와 같이 정상적으로 퇴거(exit)되었는지를 결정하는 동작(308)으로 진행한다. 만약 어플리케이션 프로그램이 정상적으로 퇴거되었다면, 루틴(300)은 어플리케이션이 정상적으로 퇴거되었다는 것을 나타내는 데이터가 메모리에 저장되는 동작(310)으로 분기한다. 그 후 루틴(300)은, 세션 동안 어플리케이션이 실행된 시간의 길이가 메모리에 기록되는 동작(312)으로 진행한다. 그 후 루틴(300)은, 동작(312)으로부터 현재의 어플리케이션 세션에 대한 이벤트 로그(28)에 새로운 엔트리("세션 엔트리")가 생성되는 동작(304)으로 진행한다. 그 후 프로그램의 실행에 관해 메모리에 기록하는 데이터가 세션 엔트리에 저장된다. 이러한 동작들이 예외 핸들러 내에서 수행될 수 있다. 동작(304)으로부터, 루틴(300)은 종료하는 동작(320)으로 진행한다.
만약 동작(308)에서 이벤트 서비스(26)가 어플리케이션 프로그램이 실행을 정상적으로 종료하지 않았다고 결정하면, 루틴(300)은 동작(308)으로부터 동작 (314)으로 진행한다. 결정 동작(314)에서, 어플리케이션 프로그램이 정지되었는지에 대한 결정이 행해진다. 정지된 어플리케이션(hung application)은 실행되는 것으로 나타나지만 사용자 입력에 응답하지 않는 어플리케이션이다. 프로그램이 정지되었는지에 대한 결정은 운영 시스템 또는 또다른 프로그램에 의한 것일 수 있다는 점을 잘 알아야 한다. 어플리케이션이 정지한 것으로 나타나면, 루틴(300)은 동작(314)으로부터 동작(316)으로 분기한다. 만약 어플리케이션이 정지하지 않았으면, 루틴(300)은 동작(314)으로부터 결정 동작(322)으로 진행한다. 결정 동작(322)에서, 어플리케이션 프로그램이 고장인지에 대한 결정이 행해진다. 프로그램 고장은 프로그램이 올바르게 수행하는 데에 대한 실패를 말하며, 프로그램 동작의 중지(suspension)로 귀결된다. 동작(322)에서 고장이 감지되면, 루틴(300)은 동작(316)으로 분기한다. 만약 고장이 감지되지 않으면, 루틴(300)은 종료하는 동작(320)으로 진행한다. 프로그램 고장의 경우에, 운영 시스템은 고장난 어플리케이션 프로그램이 자동으로 셧다운되도록 강요할 수 있다는 점을 잘 알아야 한다. 정지 프로그램의 경우에, 프로그램이 정지되었다는 것을 알리고 프로그램을 재시작하는 것은 사용자에게 달려있다.
동작(316)에서, 고장이나 정지 중 적합한 것으로 세션이 종료되었다는 것을 나타내는 데이터가 메모리에 쓰여진다. 그 후 루틴(300)은 고장이나 정지 전에 어플리케이션이 실행된 길이가 메모리에 기록되는 동작(318)으로 진행한다. 그 후 루틴(300)은 동작(318)으로부터, 운영 시스템에 의해 예외가 핸들링되는 동작(319)으로 진행한다. 예외 핸들러(32)의 동작의 양상들에 관한 세부사항들이 도 5에 관 하여 하기에 제공된다. 그 후 루틴(300)은 현재의 어플리케이션 세션에 대한 이벤트 로그(28)에서 새로운 엔트리가 생성되는 동작(304)으로 진행한다. 그 후 프로그램의 실행에 관하여 메모리에 기록하는 데이터가 세션 엔트리에 저장된다. 동작(319)으로부터, 루틴(300)은 종료하는 동작(320)으로 진행한다.
이제 도 4를 참조하여, 이벤트 로그에서 세션 엔트리를 완료하기 위한 루틴(400)에 대한 세부사항들이 제공된다. 본 발명의 실시예들에 따라, 루틴(400)은 완료될 수 없었던 이벤트 로그(28)에서의 세션 엔트리들을 완료하기 위하여 시작 시에 클라이언트 컴퓨터(2)상에서 실행된다. 완료되지 않은 세션 엔트리들은, 예를 들어, 어플리케이션이 실행되고 있는 동안 컴퓨터(2)로부터 전력이 제거되는 경우, 고장이 운영 시스템(16)에의 고장으로 귀결되는 경우, 또는 종료의 유형 및 세션 길이가 이벤트 로그(28)에 쓰여질 수 없는 임의의 기타 상황 하에서 발생할 수 있다.
루틴(400)은 이전의 세션 엔트리가 완료되었는지에 대한 결정이 행해지는 동작(402)에서 시작한다. 만약 세션 엔트리가 완료되었다면, 세션 엔트리에 대해 임의의 프로세싱을 더 수행할 필요가 없다. 따라서, 세션 엔트리가 완료된 경우 루틴(400)은 동작(402)으로부터 종료하는 동작(412)으로 분기한다. 세션 엔트리가 완료되지 않았다면, 루틴(400)은 어플리케이션 프로그램이 비정상적으로 종료되었다는 지시가 세션 엔트리에 행해지는 동작(406)으로 진행한다. 그 후 루틴(400)은 종료하는 동작(412)으로 진행한다.
이제 도 5를 참조하여, 예외 핸들러(32)의 동작에 관한 부가적인 세부사항들 이 설명될 것이다. 상기에 간략히 논의된 바와 같이, 예외 핸들러(32)는 어플리케이션 프로그램의 비정상적인 종료에 이어 호출된다. 예외 핸들러(32)는 예외를 캐치하고 핸들링하기 위하여 도 5에 도시된 것들보다 더 많은 함수들을 수행한다. 어플리케이션 안정성 모니터(24)의 동작에 대한 논의에 관련하여 예외 핸들러에 의해 수행된 함수들만이 도 5에 도시되고 설명된다.
루틴(500)은 클라이언트 컴퓨터(2)에서 구현된 정책에 대한 결정이 행해지거나, 또는 사용자가 보고(reporting) 때문에 귀찮게 되기를 원하지 않는다는 것을 나타내는 레지스트리 엔트리가 어플리케이션 안정성 모니터(24)의 실행을 방지하는 동작(502)에서 시작한다. 만약 그렇다면, 루틴(500)은 종료하는 동작(512)으로 분기한다. 만약 그렇지 않다면, 루틴(500)은 사용자 인터페이스("UI") 훼방 기관(pester throttle)이 어플리케이션 안정성 모니터(24)가 실행되지 못 하도록 하는지에 대한 결정이 행해지는 동작(504)으로 진행한다. UI 훼방 기관은 사용자가 어플리케이션 성능 모니터링에 관련된 UI 때문에 너무 빈번히 귀찮아지는 것을 방지한다. 만약 UI 훼방 기관이 어플리케이션 안정성 모니터(24)의 실행을 방해한다면, 루틴(500)은 종료하는 동작(512)으로 분기한다. 그렇지 않으면, 루틴(500)은 감사 훼방 기관(audit pester throttle)이 어플리케이션 안정성 모니터(24)의 실행을 방해하는지에 대한 결정이 행해지는 동작(506)으로 진행한다. 감사 훼방 기관은 어플리케이션 안정성 모니터(24)가 너무 빈번히 실행되어 클라이언트 컴퓨터(2)의 성능에 영향을 주는 것을 방지한다. 만약 감사 훼방 기관이 어플리케이션 안정성 모니터(24)의 실행을 방해한다면, 루틴(500)은 종료하는 동작(512)으로 분기한 다. 그렇지 않으면 루틴(500)은 동작(506)으로부터 동작(508)으로 진행한다. UI 훼방 기관 및 감사 훼방 기관의 동작에 관한 부가적인 세부사항들은 제목이 "이벤트 보고의 큐 모드 전송(Queued Mode Transmission of Event Reports)"이고 본 발명에 참고로 명백히 포함되는 공동 계류중인 미국 특허 출원 일련 번호 10/305,215에서 발견될 수 있다.
이제 도 6을 참조하여, 어플리케이션 안정성 모니터(24)의 동작에 관한 부가적인 세부사항들이 제공될 것이다. 특히, 루틴(600)은 어플리케이션 안정성 모니터(24) 실행에 대해 설명될 것이다. 루틴(600)은 이벤트 로그(28)의 분석이 수행되는 동작(602)에서 시작한다. 어플리케이션 프로그램의 안정성을 안정성의 상태로 카테고리화하기 위하여 이벤트 로그(28)가 분석된다. 상기에 논의된 바와 같이, 본 발명의 일 실시예에 따라, 안정성은 "좋음", "나쁨", 또는 "매우 나쁨"으로 카테고리화될 수 있다. 이벤트 로그 분석을 수행하기 위한 예시적인 루틴(700)이 도 7에 관하여 하기에 설명된다.
동작(602)으로부터, 루틴(600)은 어플리케이션 프로그램의 안정성이 이벤트 로그 분석에 의해 "좋음"으로 카테고리화되었는지에 대한 결정이 행해지는 동작(604)으로 진행한다. 만약 어플리케이션 프로그램의 안정성이 "좋음"이라면, 루틴(600)은 어플리케이션 안정성 모니터(24)가 사용자에 의해 수동으로 시작되었는지에 대한 결정이 행해지는 동작(606)으로 분기한다. 만약 어플리케이션 안정성 모니터(24)가 수동으로 시작되지 않았다면, 루틴(600)은 종료하는 동작(620)으로 분기한다. 만약 어플리케이션 안정성 모니터(24)가 수동으로 시작되었다면, 루틴 (600)은 동작(606)으로부터 동작(608)으로 진행한다. 사용자가 프로그램의 안정성이 "좋음"인 경우조차 수동으로 프로그램을 시작하는 경우, 이것은 사용자가 어플리케이션 안정성 모니터(24)와 상호작용하도록 허용한다.
만약, 동작(604)에서, 어플리케이션 프로그램의 안정성이 이벤트 로그 분석에 의해 "나쁨" 또는 "매우 나쁨"으로 카테고리화되었다고 결정되면, 루틴(600)은 동작(604)으로부터 동작(608)으로 진행한다. 동작(608)에서, 루틴(600)은 상기에 설명된 진단 상태 레지스트리 키의 현재 값에 의해 정의된 바와 같이, 어플리케이션 안정성 모니터와의 사용자 사전검토 상호작용에 기초하여 동작(610, 612, 614 또는 618) 중 하나로 분기한다. 만약 진단 상태 레지스트리 키의 값이 "신규"라면, 루틴(600)은 동작(610)으로 분기한다. 이것은 사용자가 이전에 어플리케이션 안정성 모니터(24)를 이용한 적이 없다는 것을 의미한다. 따라서, 진단(34)을 실행하기 위하여 사용자에게 다이얼로그 박스가 제공될 수 있다. 진단의 결과에 따라, 진단 상태 레지스트리 키의 값이 "도움", "변경됨" 또는 "동일시됨"으로 설정될 수 있다.
만약 진단 상태 레지스트리 키의 값이 "변경된 진단(diagnostics altered)"이라면, 루틴(600)은 동작(608)로부터 동작(612)으로 분기한다. 이것은 진단이 이전에 실행되었고, 안정성을 개선하기 위한 시도로 어플리케이션 프로그램의 구성에 변경이 행해졌다는 것을 나타낸다. 이 때, 사용자는 제품에 대한 면제 또는 인하된 요금 제품 지원에 향해질 수 있다. 선택된 코스(course)에 따라, 진단 상태 레지스트리 키의 값이 "도움", "변경됨" 또는 "동일시됨"으로 설정될 수 있다.
만약 진단 상태 레지스트리 키의 값이 "외부적 진단"이라면, 루틴(600)은 동작(614)으로 분기한다. 이것은 진단(34)이 이전에 수행되었고 어플리케이션 프로그램 이외의 문제가 감지되었다는 것을 나타낸다. 이러한 경우에, 사용자는 어떠한 사용자 인터페이스 통지로 인해서도 귀찮아지지 않는다.
만약 진단 상태 레지스트리 키의 값이 "도움"이라면, 루틴(600)은 동작(618)으로 분기한다. 이것은 사용자가 이전에 인하된 요금 또는 면제 제품 지원에 대한 정보를 제공받은 적이 있다는 것을 나타낸다. 사용자는 다시 이러한 정보를 제공받을 수 있다. 예를 들어, 사용자는 제품 지원이 획득될 수 있는 제품 지원 웹 사이트에 향해질 수 있다. 동작들(610, 612, 614 및 618)로부터, 루틴(600)은 종료하는 동작(620)으로 진행한다.
이제 도 7을 참조하여, 이벤트 로그(28)를 분석하기 위한 루틴(700)이 설명될 것이다. 루틴(700)은 어떤 임계값 버전을 이용할 것인지에 대한 결정이 행해지는 동작(702)에서 시작한다. 상기에 논의된 바와 같이, 임계값들은 클라이언트 컴퓨터(2)상에서 어플리케이션 프로그램의 버전에 대응하는 버전 번호를 할당받을 수 있다. 이것은 동일한 어플리케이션 프로그램의 상이한 버전들에 상이한 임계값들이 할당되도록 허용한다. 사용할 임계값 버전은 분석이 수행될 어플리케이션 프로그램의 버전에 기초하여 결정된다.
어플리케이션 프로그램의 버전 번호가 식별되면, 루틴(700)은 어플리케이션 프로그램의 버전에 대한 원격 제어 파일(36)에 임계값들이 존재하는지에 대한 결정이 행해지는 동작(704)으로 진행한다. 만약 그 버전에 대한 임계값들이 존재하지 않는다면, 루틴(700)은 "좋음"의 임계값이 리턴되는 동작(722)으로 분기한다. 그러나, 만약 적절한 임계값들이 존재하면, 루틴(700)은 동작(706)으로 진행한다.
동작(706)에서, 세션 분석에서 이용되어야 하는 이벤트 로그에 있는 엔트리들의 적절한 시간 구간이 결정된다. 시간 구간은 현재 시각과 어플리케이션 프로그램에 수정이 적용되었던 마지막 시각 사이의 시간의 구간을 포함할 수 있다. 대안적으로, 만약 어떠한 수정도 행해지지 않았다면, 시간 구간은 현재 시각과 바람직한 시간 윈도우(예를 들어, 30일) 사이의 시간 구간을 포함할 수 있다. 이러한 식으로, 분석에서 고려되는 로그 엔트리들의 영역이 제한될 수 있다.
동작(706)으로부터, 계산된 시간 구간 동안 통계적으로 중요한 최소 수의 세션들이 이벤트 로그(28)에 존재하는지에 대한 결정이 행해지는 동작(708)으로 진행한다. 만약 필수적인 최소 수의 세션들이 존재하지 않는 경우, 루틴(700)은 임계값 "좋음"이 리턴되는 동작(722)으로 분기한다. 만약 필수적인 최소 수의 세션들이 존재하는 경우, 루틴(700)은 동작(708)으로부터 동작(710)으로 진행한다.
동작(710)에서, 시간 구간 동안의, 어플리케이션 프로그램들의 안정성을 설명하는 특정 어플리케이션 프로그램에 대한 이벤트 로그(28)의 내용에 기초하여 많은 통계가 생성된다. 예를 들어, 프로그램 실행 횟수 당 프로그램의 비정상적 종료의 횟수에 기초한 통계가 생성될 수 있다. 생성될 수 있는 또다른 통계는 프로그램 실행의 분 당 비정상적 종료의 횟수에 기초한다. 어플리케이션 프로그램의 안정성을 나타내는 기타 유형의 통계들 또한 시간 구간 동안의 이벤트 로그(28)의 내용에 기초하여 생성될 수 있다. 개개의 어플리케이션에 대한 특정 통계가 생성 될 수 있고, 어플리케이션 제품군과 같은 어플리케이션들의 그룹에 대해 기타 통계들이 생성될 수 있다는 점을 잘 알아야 한다.
통계들이 생성되면, 통계들은 원격 제어 파일(36)에 포함된 임계값들에 비교된다. 비교에 기초하여, 어플리케이션 프로그램의 안정성은 "좋음", "나쁨", 또는 "매우 나쁨"으로 카테고리화될 수 있다. 어플리케이션 프로그램의 안정성이 카테고리화되면, 루틴(700)은 프로그램의 안정성이 "매우 나쁨"으로 카테고리화되었는지에 대한 결정이 행해지는 동작(712)으로 진행한다. 안정성이 "매우 나쁨"으로 카테고리화되지 않았다면, 루틴(700)은 안정성이 "나쁨"으로 카테고리화되었는지에 대한 결정이 행해지는 동작(714)으로 분기한다. 만약 안정성이 "나쁨"으로 카테고리화되었다면, 루틴(700)은 "나쁨" 임계값이 리턴되는 동작(720)으로 진행한다. 만약 안정성이 "나쁨"으로 카테고리화되지 않았다면, 루틴은 "좋음"이 리턴되는 동작(722)으로 분기한다.
동작(712)에서, 임계값이 "매우 나쁨"으로 카테고리화되었다고 결정되면, 루틴(700)은 동작(716)으로 진행한다. 동작(716)에서, 임계값들이 만료되었는지에 대한 결정이 행해진다. 상기에 간략히 논의된 바와 같이, 임계값들은 만료 날짜를 포함할 수 있다. 만약 임계값들이 만료되었다면, 루틴(700)은 "나쁨"이 리턴되는 동작(720)으로 분기한다. 그렇지 않으면, 루틴(700)은 "매우 나쁨"이 리턴되는 동작(718)으로 진행한다.
전술한 것에 기초하여, 본 발명의 다양한 실시예들은 실행 불안정성의 레벨들에 기초하여 컴퓨터 프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법, 시스템, 장치, 및 컴퓨터 판독가능 매체를 포함한다. 상기의 상세설명, 예 및 데이터는 본 발명의 구성의 제조 및 사용의 완전한 설명을 제공한다. 본 발명의 많은 실시예들이 본 발명의 취지 및 범위를 벗어나지 않고서 행해질 수 있기 때문에, 본 발명은 이후 첨부되는 특허청구범위에 귀속한다.
높은 빈도의 프로그램 실행 불안정성을 갖는 컴퓨터 시스템들을 식별하고 그러한 컴퓨터 시스템의 사용자에게 커스텀 제품 지원을 제공할 수 있다.
Claims (26)
- 프로그램 실행 불안정성의 상태들에 기초하여 소프트웨어 프로그램에 대한 커스텀 제품 지원(custom product support)을 제공하기 위한 방법으로서,프로그램 실행 불안정성의 적어도 하나의 임계값 레벨 및 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 적어도 하나의 만료 날짜를 포함하는 원격 제어 파일을 수신하는 단계;메모리 저장소에 결합되는 프로세서를 포함하는 컴퓨팅 시스템에 의해, 상기 소프트웨어 프로그램의 실행 안정성을 결정하기 위해 일정한 시간 구간(a period of time)에 걸쳐 상기 소프트웨어 프로그램의 실행을 모니터링하되,상기 소프트웨어 프로그램이 실행될 때마다 로그에 세션 엔트리를 생성하고 - 상기 세션 엔트리는 상기 소프트웨어 프로그램 및 상기 소프트웨어 프로그램이 실행된 시간의 길이를 식별하는 데이터를 포함함 - ,상기 세션 엔트리에 따라 상기 소프트웨어 프로그램의 상기 실행 안정성을 설명하는 적어도 하나의 통계를 생성하기 위해 상기 로그를 주기적으로 분석하고,상기 소프트웨어 프로그램의 상기 실행이, 정상적으로 종료되었는지 비정상적으로 종료되었는지를 식별함 - 상기 비정상적으로 종료된다는 것은 프로그램 고장(program crash), 프로그램 정지(program hang) 및 비정상적 프로그램 종료 중의 적어도 하나를 포함함 -에 의해 모니터링하는 단계;상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 상기 적어도 하나의 만료 날짜가 경과하지 않았는지 여부를 결정하는 단계;상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 상기 적어도 하나의 만료 날짜가 경과하지 않았는지 여부를 결정하는 것에 대한 응답으로, 상기 컴퓨팅 시스템에 의해, 상기 적어도 하나의 통계를 대응하는 임계값과 비교함으로써 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨에 기초하여 상기 소프트웨어 프로그램의 상기 실행 안정성을 카테고리화하여, 상기 소프트웨어 프로그램의 상기 실행 안정성을 프로그램 실행 불안정성의 복수의 상태 중 하나로 카테고리화하는 단계;상기 컴퓨팅 시스템에 의해, 상기 소프트웨어 프로그램의 이전에 설정된 진단 상태를 식별하는 단계; 및상기 카테고리화 및 상기 소프트웨어 프로그램의 상기 이전에 설정된 진단 상태에 기초하여 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하는 단계를 포함하는 커스텀 제품 지원 제공 방법.
- 제1항에 있어서, 상기 소프트웨어 프로그램의 상기 실행 안정성을 설명하는 적어도 하나의 통계를 생성하기 위해 상기 로그를 분석하는 단계는, 프로그램 실행의 횟수 당 비정상적 종료의 횟수를 포함하는 상기 적어도 하나의 통계를 생성하는 단계를 포함하는, 커스텀 제품 지원 제공 방법.
- 제2항에 있어서, 상기 소프트웨어 프로그램의 상기 실행 안정성을 설명하는 적어도 하나의 통계를 생성하기 위해 상기 로그를 분석하는 단계는, 프로그램 실행의 분(minute) 당 비정상적 종료의 횟수를 포함하는 상기 적어도 하나의 통계를 생성하는 단계를 더 포함하는, 커스텀 제품 지원 제공 방법.
- 제1항에 있어서, 상기 원격 제어 파일을 수신하는 단계는, 상기 소프트웨어 프로그램의 적어도 하나의 버전에 대하여 프로그램 실행 불안정성의 상기 적어도 하나의 임계값 레벨을 식별하는 데이터를 포함하는 상기 원격 제어 파일을 수신하는 단계를 포함하며,상기 방법은,상기 소프트웨어 프로그램의 상기 실행 안정성을 카테고리화하기에 앞서, 상기 원격 제어 파일이 상기 소프트웨어 프로그램의 상기 적어도 하나의 버전에 대한 임계값들을 포함하는지 여부를 결정하는 단계를 더 포함하는 커스텀 제품 지원 제공 방법.
- 제4항에 있어서, 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하는 단계는, 상기 카테고리화에 기초하여 상기 소프트웨어 프로그램의 사용자를 상기 소프트웨어 프로그램에 대한 면제 또는 인하된 요금의 제품 지원을 갖는 정보 자원에 향하게 하는 단계를 포함하는, 커스텀 제품 지원 제공 방법.
- 제4항에 있어서, 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하는 단계는, 상기 카테고리화에 기초하여 상기 소프트웨어 프로그램의 사용자를 식별된 정보 자원에 향하게 하는 단계를 포함하는, 커스텀 제품 지원 제공 방법.
- 제4항에 있어서, 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하는 단계는, 상기 카테고리화에 기초하여 진단 프로그램을 실행하는 단계를 포함하는, 커스텀 제품 지원 제공 방법.
- 프로그램 실행 불안정성의 임계값 레벨들에 기초하여 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하기 위한 시스템으로서, 클라이언트 컴퓨터를 포함하고, 상기 클라이언트 컴퓨터는,상기 소프트웨어 프로그램의 적어도 하나의 버전에 대하여 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨 및 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 적어도 하나의 만료 날짜를 식별하는 데이터를 포함하는 원격 제어 파일을 서버 컴퓨터로부터 수신하고,상기 소프트웨어 프로그램의 실행 안정성을 결정하기 위해 일정한 시간 구간에 걸쳐 상기 소프트웨어 프로그램의 실행을 모니터링하되,상기 소프트웨어 프로그램이 실행될 때마다 상기 클라이언트 컴퓨터에 저장된 로그에 세션 엔트리를 생성하고 - 상기 세션 엔트리는 상기 소프트웨어 프로그램 및 상기 소프트웨어 프로그램이 실행된 시간의 길이를 식별하는 데이터를 포함함 - ,상기 클라이언트 컴퓨터에서 상기 세션 엔트리에 따라 상기 소프트웨어 프로그램의 상기 실행 안정성을 설명하는 적어도 하나의 통계를 생성하기 위해 상기 로그를 주기적으로 분석하며,상기 소프트웨어 프로그램의 상기 실행이, 정상적으로 종료되었는지 비정상적으로 종료되었는지를 식별함 - 상기 비정상적으로 종료된다는 것은 프로그램 고장, 프로그램 정지 및 비정상적 프로그램 종료 중의 적어도 하나를 포함함 -에 의해 모니터링하고,상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 상기 적어도 하나의 만료 날짜가 경과하지 않았는지 여부를 결정하며,상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 상기 적어도 하나의 만료 날짜가 경과하지 않았는지 여부를 결정하는 것에 대한 응답으로, 상기 적어도 하나의 통계를 대응하는 임계값과 비교함으로써 상기 원격 제어 파일에 포함된 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨에 기초하여 상기 소프트웨어 프로그램의 상기 실행 안정성을 카테고리화하여, 상기 소프트웨어 프로그램의 상기 실행 안정성을 프로그램 실행 불안정성의 복수의 상태 중 하나로 카테고리화하고,상기 소프트웨어 프로그램의 이전에 설정된 진단 상태를 식별하며,상기 카테고리화 및 상기 소프트웨어 프로그램의 상기 이전에 설정된 진단 상태에 기초하여 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하도록 동작하는, 시스템.
- 제8항에 있어서, 상기 적어도 하나의 통계는 프로그램 실행의 횟수 당 비정상적 종료의 횟수를 포함하는, 시스템.
- 제9항에 있어서, 상기 적어도 하나의 통계는 프로그램 실행의 분 당 비정상적 종료의 횟수를 더 포함하는, 시스템.
- 제10항에 있어서, 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하도록 동작하는 상기 클라이언트 컴퓨터는, 사용자를 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨에 따라 면제 또는 인하된 요금 제품 지원을 제공하는 정보 자원에 향하게 하도록 동작하는 클라이언트 컴퓨터를 포함하는, 시스템.
- 제10항에 있어서, 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하도록 동작하는 상기 클라이언트 컴퓨터는, 상기 클라이언트 컴퓨터의 사용자를 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨에 기초하여 결정되는 정보 자원에 향하게 하도록 동작하는 클라이언트 컴퓨터를 포함하는, 시스템.
- 제10항에 있어서, 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하도록 동작하는 상기 클라이언트 컴퓨터는, 상기 소프트웨어 프로그램의 문제점들을 진단하기 위해 상기 클라이언트 컴퓨터 상의 진단 프로그램을 실행하도록 동작하는 클라이언트 컴퓨터를 포함하는, 시스템.
- 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 기록 매체로서, 상기 컴퓨터 실행가능 명령어는 컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금,프로그램 실행 불안정성의 적어도 하나의 임계값 레벨 및 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 적어도 하나의 만료 날짜를 포함하는 원격 제어 파일을 수신하고,소프트웨어 프로그램의 실행 안정성을 결정하기 위해 일정한 시간 구간에 걸쳐 상기 소프트웨어 프로그램의 실행을 모니터링하되,상기 소프트웨어 프로그램이 실행될 때마다 로그에 세션 엔트리를 생성하고 - 상기 세션 엔트리는 상기 소프트웨어 프로그램 및 상기 소프트웨어 프로그램이 실행된 시간의 길이를 식별하는 데이터를 포함함 - ,상기 세션 엔트리에 따라 상기 소프트웨어 프로그램의 상기 실행 안정성을 설명하는 적어도 하나의 통계를 생성하기 위해 상기 로그를 주기적으로 분석하며,상기 소프트웨어 프로그램의 상기 실행이, 정상적으로 종료되었는지 비정상적으로 종료되었는지를 식별함 - 상기 비정상적으로 종료된다는 것은 프로그램 고장, 프로그램 정지 및 비정상적 프로그램 종료 중의 적어도 하나를 포함함 -에 의해 모니터링하고,상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 상기 적어도 하나의 만료 날짜가 경과하지 않았는지 여부를 결정하며,상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨과 연관된 상기 적어도 하나의 만료 날짜가 경과하지 않았는지 여부를 결정하는 것에 대한 응답으로, 상기 적어도 하나의 통계를 대응하는 임계값과 비교함으로써 상기 프로그램 실행 불안정성의 적어도 하나의 임계값 레벨에 기초하여 상기 소프트웨어 프로그램의 상기 실행 안정성을 카테고리화하여, 상기 소프트웨어 프로그램의 상기 실행 안정성을 프로그램 실행 불안정성의 복수의 상태 중 하나로 카테고리화하고,상기 소프트웨어 프로그램의 이전에 설정된 진단 상태를 식별하며,상기 카테고리화 및 상기 소프트웨어 프로그램의 상기 이전에 설정된 진단 상태에 기초하여 상기 소프트웨어 프로그램에 대한 커스텀 제품 지원을 제공하도록 하는, 컴퓨터 판독가능 기록 매체.
- 제14항에 있어서, 상기 적어도 하나의 통계는 프로그램 실행의 횟수 당 비정상적 종료의 횟수를 포함하는, 컴퓨터 판독가능 기록 매체.
- 제14항에 있어서, 상기 적어도 하나의 통계는 프로그램 실행의 분 당 비정상적 종료의 횟수를 더 포함하는, 컴퓨터 판독가능 기록 매체.
- 제14항에 있어서, 상기 컴퓨터 실행가능 명령어는 상기 소프트웨어 프로그램의 문제점들을 진단하기 위해 상기 컴퓨터 상의 진단 프로그램을 실행하도록 하는 명령어를 더 포함하는, 컴퓨터 판독가능 기록 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/955,421 US7681181B2 (en) | 2004-09-30 | 2004-09-30 | Method, system, and apparatus for providing custom product support for a software program based upon states of program execution instability |
US10/955,421 | 2004-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060046276A KR20060046276A (ko) | 2006-05-17 |
KR101036702B1 true KR101036702B1 (ko) | 2011-05-24 |
Family
ID=35759407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050045549A KR101036702B1 (ko) | 2004-09-30 | 2005-05-30 | 프로그램 실행 불안정성의 상태들에 기초하여 소프트웨어프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법,시스템 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7681181B2 (ko) |
EP (1) | EP1650662B1 (ko) |
JP (1) | JP5341295B2 (ko) |
KR (1) | KR101036702B1 (ko) |
CN (1) | CN1755644B (ko) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409596B2 (en) * | 2004-09-02 | 2008-08-05 | International Business Machines Corporation | Apparatus and method for initializing diagnostic functions when specified run-time error criteria are satisfied |
US8548955B1 (en) | 2004-11-30 | 2013-10-01 | Centurylink Intellectual Property Llc | System and method for automating disaster recovery of a mainframe computing system |
US8255747B1 (en) * | 2004-11-30 | 2012-08-28 | Centurylink Intellectual Property Llc | System and method for providing resolutions for abnormally ended jobs on a mainframe computer system |
US7478095B2 (en) * | 2005-01-19 | 2009-01-13 | Microsoft Corporation | Generation and retrieval of incident reports |
US7958512B2 (en) * | 2005-10-31 | 2011-06-07 | Microsoft Corporation | Instrumentation to find the thread or process responsible for an application failure |
KR100837334B1 (ko) * | 2006-11-29 | 2008-06-12 | 엔에이치엔(주) | 검색로그의 악용을 방지하는 방법 및 그 장치 |
JP2008197988A (ja) * | 2007-02-14 | 2008-08-28 | Win The Web:Kk | アプリケーション分析支援システム、プログラム |
US7921381B2 (en) * | 2007-04-26 | 2011-04-05 | Verigy (Singapore) Pte. Ltd. | Method and apparatus for displaying test data |
US8209675B2 (en) * | 2007-07-25 | 2012-06-26 | Sap Ag | Method and system for customizing a software application |
US20090271663A1 (en) * | 2008-04-24 | 2009-10-29 | Vining Robert G | Providing detailed program state information for error analysis |
CN101510167B (zh) * | 2009-03-31 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种插件运行的方法、装置及系统 |
US8171345B2 (en) * | 2009-04-15 | 2012-05-01 | Vmware, Inc. | Disablement of an exception generating operation of a client system |
US8239709B2 (en) * | 2009-08-12 | 2012-08-07 | Apple Inc. | Managing extrinsic processes |
JP5272047B2 (ja) * | 2010-12-22 | 2013-08-28 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理システム |
US20130081001A1 (en) * | 2011-09-23 | 2013-03-28 | Microsoft Corporation | Immediate delay tracker tool |
US20130254747A1 (en) * | 2012-03-21 | 2013-09-26 | International Business Machines Corporation | Method and apparatus for testing programs |
US8990763B2 (en) * | 2012-03-23 | 2015-03-24 | Tata Consultancy Services Limited | User experience maturity level assessment |
CN102681874B (zh) * | 2012-05-14 | 2015-10-21 | 腾讯科技(深圳)有限公司 | 一种确保软件正常运行的方法及装置 |
CN103973746A (zh) * | 2013-02-04 | 2014-08-06 | 鸿富锦精密工业(深圳)有限公司 | 远程控制管理系统及方法 |
US9021444B2 (en) * | 2013-08-19 | 2015-04-28 | Concurix Corporation | Combined performance tracer and snapshot debugging system |
US9465721B2 (en) | 2013-08-19 | 2016-10-11 | Microsoft Technology Licensing, Llc | Snapshotting executing code with a modifiable snapshot definition |
US20150052400A1 (en) | 2013-08-19 | 2015-02-19 | Concurix Corporation | Breakpoint Setting Through a Debugger User Interface |
CN103699472B (zh) * | 2013-11-29 | 2016-08-31 | 深圳市理邦精密仪器股份有限公司 | 一种软件死机监测的方法及使用该方法的医用外接设备 |
US8990637B1 (en) | 2014-03-17 | 2015-03-24 | Splunk Inc. | Computing and accessing quality indicators of computer applications |
KR101503213B1 (ko) * | 2014-04-04 | 2015-03-17 | 경주대학교 산학협력단 | 영상 이미지의 지리정보 및 패턴인식 기술을 이용한 시정거리 측정 장치 및 그 측정 방법 |
CN105468499B (zh) * | 2014-09-04 | 2019-04-09 | 中芯国际集成电路制造(上海)有限公司 | 用于管理调度程序的系统和方法 |
JP6333467B2 (ja) * | 2015-03-24 | 2018-05-30 | 三菱電機株式会社 | 情報処理装置 |
CN105224420B (zh) * | 2015-10-08 | 2018-11-09 | Tcl通讯科技(成都)有限公司 | 一种自动解析终端异常的分析方法及系统 |
US10102109B2 (en) * | 2016-05-31 | 2018-10-16 | Red Hat, Inc. | Exception resolution in a software development session |
US11188449B2 (en) | 2016-05-31 | 2021-11-30 | Red Hat, Inc. | Automated exception resolution during a software development session based on previous exception encounters |
US10379934B2 (en) | 2017-07-31 | 2019-08-13 | Oracle International Corporation | System and method of providing post error analysis for instances of applications in cloud service environments on a per user basis |
CN110769019B (zh) * | 2018-07-27 | 2022-05-06 | 阿里巴巴集团控股有限公司 | 会话处理方法、装置、系统、存储介质和计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6830515B2 (en) | 2002-09-10 | 2004-12-14 | Igt | Method and apparatus for supporting wide area gaming network |
US6915342B1 (en) | 2000-02-04 | 2005-07-05 | Ricoh Company Limited | Method and system for maintaining the business office appliance through log files |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63259738A (ja) * | 1987-04-17 | 1988-10-26 | Hitachi Ltd | ソフトウエア品質評価方式 |
JPH05143395A (ja) * | 1991-11-18 | 1993-06-11 | Nec Corp | 診断プログラム実行方式およびそれに使用されるログ情報表示方式 |
US5548718A (en) * | 1994-01-07 | 1996-08-20 | Microsoft Corporation | Method and system for determining software reliability |
US5539907A (en) * | 1994-03-01 | 1996-07-23 | Digital Equipment Corporation | System for monitoring computer system performance |
US5655074A (en) * | 1995-07-06 | 1997-08-05 | Bell Communications Research, Inc. | Method and system for conducting statistical quality analysis of a complex system |
US5678002A (en) * | 1995-07-18 | 1997-10-14 | Microsoft Corporation | System and method for providing automated customer support |
US6006331A (en) * | 1997-07-29 | 1999-12-21 | Microsoft Corporation | Recovery of online sessions for dynamic directory services |
US6330689B1 (en) * | 1998-04-23 | 2001-12-11 | Microsoft Corporation | Server architecture with detection and recovery of failed out-of-process application |
JP3104685B2 (ja) * | 1998-07-31 | 2000-10-30 | 日本電気株式会社 | システムログ記録装置、システムログ記録方法および記録媒体 |
US6425017B1 (en) * | 1998-08-17 | 2002-07-23 | Microsoft Corporation | Queued method invocations on distributed component applications |
US6219805B1 (en) * | 1998-09-15 | 2001-04-17 | Nortel Networks Limited | Method and system for dynamic risk assessment of software systems |
US6195695B1 (en) * | 1998-10-27 | 2001-02-27 | International Business Machines Corporation | Data processing system and method for recovering from system crashes |
JP2000181761A (ja) * | 1998-12-18 | 2000-06-30 | Nec Corp | 端末監視システム及び方法 |
JP2000187585A (ja) * | 1998-12-22 | 2000-07-04 | Mitsubishi Electric Corp | 遠隔障害情報管理装置並びにその方法 |
EP1190475A1 (en) | 1999-05-29 | 2002-03-27 | Nowonder, Inc | User support system and method |
US6651244B1 (en) * | 1999-07-26 | 2003-11-18 | Cisco Technology, Inc. | System and method for determining program complexity |
US6594774B1 (en) * | 1999-09-07 | 2003-07-15 | Microsoft Corporation | Method and apparatus for monitoring computer system objects to improve system reliability |
US6363524B1 (en) * | 1999-09-10 | 2002-03-26 | Hewlett-Packard Company | System and method for assessing the need for installing software patches in a computer system |
US6785015B1 (en) * | 1999-11-12 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | System and method for monitoring a computer system process or peripheral |
US6557120B1 (en) * | 2000-03-31 | 2003-04-29 | Microsoft Corporation | System and method for testing software reliability over extended time |
US6728907B1 (en) * | 2000-04-14 | 2004-04-27 | Microsoft Corporation | System and method for self-diagnosing system crashes |
US6785848B1 (en) * | 2000-05-15 | 2004-08-31 | Microsoft Corporation | Method and system for categorizing failures of a program module |
US6665824B1 (en) * | 2000-05-15 | 2003-12-16 | Microsoft Corporation | System and method for handling a failure reporting conversation |
US6701454B1 (en) * | 2000-06-05 | 2004-03-02 | Microsoft Corporation | Method and system for recovering information during a program failure |
US6738928B1 (en) * | 2000-06-19 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Method and expert system for analysis of crash dumps |
US6708333B1 (en) * | 2000-06-23 | 2004-03-16 | Microsoft Corporation | Method and system for reporting failures of a program module in a corporate environment |
JP2002157171A (ja) | 2000-11-17 | 2002-05-31 | Canon Inc | 情報処理装置、機器管理プログラム、機器管理プログラムが格納された記録媒体、及び機器管理方法 |
US6718489B1 (en) * | 2000-12-07 | 2004-04-06 | Unisys Corporation | Electronic service request generator for automatic fault management system |
US6681348B1 (en) * | 2000-12-15 | 2004-01-20 | Microsoft Corporation | Creation of mini dump files from full dump files |
US20020144124A1 (en) * | 2001-03-12 | 2002-10-03 | Remer Eric B. | Method and apparatus to monitor use of a program |
US6785834B2 (en) * | 2001-03-21 | 2004-08-31 | International Business Machines Corporation | Method and system for automating product support |
US7050936B2 (en) * | 2001-09-06 | 2006-05-23 | Comverse, Ltd. | Failure prediction apparatus and method |
US20030074657A1 (en) * | 2001-10-12 | 2003-04-17 | Bramley Richard A. | Limited time evaluation system for firmware |
US20030084376A1 (en) * | 2001-10-25 | 2003-05-01 | Nash James W. | Software crash event analysis method and system |
US7216160B2 (en) * | 2001-10-31 | 2007-05-08 | Sun Microsystems, Inc. | Server-based application monitoring through collection of application component and environmental statistics |
JP2003233512A (ja) * | 2002-02-13 | 2003-08-22 | Nec Corp | 保守機能付きクライアント監視システム及び監視サーバ及びプログラム並びにクライアント監視・保守方法 |
US20030187672A1 (en) * | 2002-04-01 | 2003-10-02 | Sun Microsystems, Inc. | Method, system, and program for servicing customer product support requests |
US7421490B2 (en) * | 2002-05-06 | 2008-09-02 | Microsoft Corporation | Uniquely identifying a crashed application and its environment |
US7107340B2 (en) * | 2002-05-31 | 2006-09-12 | Microsoft Corporation | System and method for collecting and storing event data from distributed transactional applications |
US7171651B1 (en) * | 2002-11-26 | 2007-01-30 | Microsoft Corporation | Method and system for remotely controlling the reporting of events occurring within a computer system |
US7062681B2 (en) * | 2002-12-03 | 2006-06-13 | Microsoft Corporation | Method and system for generically reporting events occurring within a computer system |
JP4343526B2 (ja) * | 2002-12-27 | 2009-10-14 | キヤノンマーケティングジャパン株式会社 | エラー監視装置およびエラー監視方法およびコンピュータが読取り可能な記憶媒体およびプログラム |
US7334028B2 (en) * | 2003-05-21 | 2008-02-19 | Hewlett-Packard Development Company, L.P. | Tiered multi-source software support using automated diagnostic-data transfers |
US7386837B2 (en) * | 2003-09-19 | 2008-06-10 | International Business Machines Corporation | Using ghost agents in an environment supported by customer service providers |
US7379999B1 (en) * | 2003-10-15 | 2008-05-27 | Microsoft Corporation | On-line service/application monitoring and reporting system |
US7072805B2 (en) * | 2003-10-17 | 2006-07-04 | International Business Machines Corporation | Mechanism for on-line prediction of future performance measurements in a computer system |
US7389444B2 (en) * | 2004-07-27 | 2008-06-17 | Microsoft Corporation | Method and system for troubleshooting a misconfiguration of a computer system based on product support services information |
-
2004
- 2004-09-30 US US10/955,421 patent/US7681181B2/en not_active Expired - Fee Related
-
2005
- 2005-05-30 KR KR1020050045549A patent/KR101036702B1/ko active IP Right Grant
- 2005-05-31 EP EP05104659.7A patent/EP1650662B1/en not_active Not-in-force
- 2005-05-31 CN CN2005100754669A patent/CN1755644B/zh not_active Expired - Fee Related
- 2005-05-31 JP JP2005158662A patent/JP5341295B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915342B1 (en) | 2000-02-04 | 2005-07-05 | Ricoh Company Limited | Method and system for maintaining the business office appliance through log files |
US6830515B2 (en) | 2002-09-10 | 2004-12-14 | Igt | Method and apparatus for supporting wide area gaming network |
Also Published As
Publication number | Publication date |
---|---|
EP1650662B1 (en) | 2017-07-12 |
CN1755644A (zh) | 2006-04-05 |
CN1755644B (zh) | 2010-12-08 |
US20060070037A1 (en) | 2006-03-30 |
JP2006107428A (ja) | 2006-04-20 |
US7681181B2 (en) | 2010-03-16 |
JP5341295B2 (ja) | 2013-11-13 |
KR20060046276A (ko) | 2006-05-17 |
EP1650662A2 (en) | 2006-04-26 |
EP1650662A3 (en) | 2009-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101036702B1 (ko) | 프로그램 실행 불안정성의 상태들에 기초하여 소프트웨어프로그램에 대한 커스텀 제품 지원을 제공하기 위한 방법,시스템 및 장치 | |
US9069889B2 (en) | Automated enablement of performance data collection | |
US20060070077A1 (en) | Providing custom product support for a software program | |
US11061756B2 (en) | Enabling symptom verification | |
Zheng et al. | Co-analysis of RAS log and job log on Blue Gene/P | |
US6460151B1 (en) | System and method for predicting storage device failures | |
US8082471B2 (en) | Self healing software | |
Murphy et al. | Windows 2000 dependability | |
US7805630B2 (en) | Detection and mitigation of disk failures | |
US20060167891A1 (en) | Method and apparatus for redirecting transactions based on transaction response time policy in a distributed environment | |
US8381036B2 (en) | Systems and methods for restoring machine state history related to detected faults in package update process | |
US10489232B1 (en) | Data center diagnostic information | |
US7685469B2 (en) | Method and apparatus of analyzing computer system interruptions | |
US11573848B2 (en) | Identification and/or prediction of failures in a microservice architecture for enabling automatically-repairing solutions | |
Grottke et al. | Recovery from software failures caused by mandelbugs | |
Murphy | Automating Software Failure Reporting: We can only fix those bugs we know about. | |
CN110457907B (zh) | 一种固件程序检测方法和装置 | |
US20030212788A1 (en) | Generic control interface with multi-level status | |
US20190079854A1 (en) | Systems and methods for executing tests | |
US7206975B1 (en) | Internal product fault monitoring apparatus and method | |
US11150972B1 (en) | Self-reporting and self-upgrading of enterprise systems | |
JP5240709B2 (ja) | シンプトンを評価するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム | |
Huang et al. | PDA: A Tool for Automated Problem Determination. | |
Flora et al. | A Study on the Aging and Fault Tolerance of Microservices in Kubernetes | |
US10735246B2 (en) | Monitoring an object to prevent an occurrence of an issue |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140417 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160419 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170420 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180417 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190417 Year of fee payment: 9 |