KR20140020287A - 소프트웨어 조작성 서비스 - Google Patents

소프트웨어 조작성 서비스 Download PDF

Info

Publication number
KR20140020287A
KR20140020287A KR1020137027514A KR20137027514A KR20140020287A KR 20140020287 A KR20140020287 A KR 20140020287A KR 1020137027514 A KR1020137027514 A KR 1020137027514A KR 20137027514 A KR20137027514 A KR 20137027514A KR 20140020287 A KR20140020287 A KR 20140020287A
Authority
KR
South Korea
Prior art keywords
software
operability
feature
basic
features
Prior art date
Application number
KR1020137027514A
Other languages
English (en)
Inventor
실비우 씨 캘리노이우
크리스 어니스트 매티척
크리스티안 지 페트루타
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20140020287A publication Critical patent/KR20140020287A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

소프트웨어 조작성 서비스의 실시예들에서, 소프트웨어의 동작은 소프트웨어 동작 데이터를 수집하기 위해 모니터링된다. 소프트웨어에 대한 소프트웨어 조작성 특징이 소프트웨어 동작 데이터로부터 생성되고, 소프트웨어 조작성 특징은 소프트웨어의 조작성을 나타낸다. 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터는 소프트웨어 조작성 특징을 분석하는 네트워크 서비스로 전송된다. 일 실시예에서, 네트워크 서비스는 소프트웨어 조작성 특징을 기본 조작성 특징과 비교하여 소프트웨어가 기본 조작성 특징과 일치 또는 불일치하게 동작하는 여부를 판정한다.

Description

소프트웨어 조작성 서비스{SOFTWARE OPERABILITY SERVICE}
소프트웨어 애플리케이션은 운영 체제 업데이트 및/또는 서비스 팩 업데이트로 인한 동작 실패 또는 동작 퇴행(operation regression)을 가져올 수 있다. 예를 들어, 운영 체제 및/또는 서비스 팩 업데이트는 장치의 성능의 감소를 일으킬 수 있는 하드웨어 장치와 대응되는 장치 드라이버 사이의 호환성을 파괴하는 변경을 컴퓨터 시스템에 가져올 수 있다.
본 요약은 소프트웨어 조작성 서비스(software operability service)의 간단화된 개념을 소개하기 위해 제공되며, 이러한 개념은 이하의 상세한 설명 및/또는 도면들에 의해 보다 상세히 설명될 것이다. 본 요약은 청구 대상 발명의 필수적 특징을 설명하거나 청구 대상 발명의 범위를 결정하거나 한정하는 것으로 이해되어서는 안될 것이다.
소프트웨어 조작성 서비스가 제공된다. 실시예에서, 소프트웨어의 동작은 소프트웨어 동작 데이터를 수집하기 위해 모니터링될 수 있다. 소프트웨어에 대한 소프트웨어 조작성 특징(signature)은 소프트웨어 동작 데이터로부터 생성될 수 있고, 이러한 소프트웨어 조작성 특징은 소프트웨어의 조작성을 나타낸다. 이후에 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터(contextual data)는 소프트웨어 조작성 특징을 분석하는 네트워크 서비스로 전송될 수 있다.
다른 실시예에서, 네트워크 서비스는 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터를 컴퓨팅 장치로부터 수신할 수 있다. 소프트웨어 조작성 특징은 컴퓨팅 장치 상에서 동작하는 소프트웨어의 조작성을 나타낸다. 추가적인 컴퓨팅 장치로부터 수신된 추가적인 소프트웨어 조작성 특징들이 함께 그룹화될 수 있다. 추가적인 소프트웨어 조작성 특징들 각각은 추가적인 컴퓨팅 장치들 상에서 동작하는 소프트웨어의 조작성을 나타내고 해당 소프트웨어와 연관된 컨텍스트 데이터와 유사하거나 동일한 컨텍스트 데이터와 연관된다. 이후에 기본 조작성 특징은 추가적인 소프트웨어 조작성 특징들로부터 생성될 수 있으며, 기본 조작성 특징은 정상적인 소프트웨어 동작을 나타낸다. 다음으로 소프트웨어 조작성 특징을 소프트웨어의 기본 조작성 특징과 비교하여 해당 소프트웨어가 기본 조작성 특징과 일치하게 동작하는지 아니면 일치하지 않게 동작하는지 판정한다. 실시예에서, 정상적인 소프트웨어 동작을 나타내는 기본 조작성 특징은 소프트웨어 조작성 특징들이 생성된 컨텍스트의 함수가 될 수 있다.
다른 실시예들에서, 소프트웨어 조작성 특징에 기초하여 소프트웨어가 기본 조작성 특징과 일치되지 않게 동작하고 있는지 판정될 수 있다. 다음으로, 네트워크 서비스는 기본 조작성 특징과 일치되지 않는 동작이 정상적인 소프트웨어 동작과 대응된다고 판정할 수 있다. 따라서, 다음으로, 소프트웨어의 새로운 기본 동작 특징이 소프트웨어 조작성 특징에 기초하여 생성될 수 있다. 대체적으로, 네트워크 서비스는 소프트웨어 특징에 기초하여 소프트웨어가 기본 조작성 특징과 일치되지 않게 동작한다고 판정된 경우, 소프트웨어 조작성 특징을 분석하여 소프트웨어의 동작 실패 또는 동작 퇴행을 판정할 수 있다. 네트워크 서비스는 동작 실패 또는 퇴행의 원인을 결정하고, 소프트웨어의 동작 실패 또는 퇴행을 경감하기 위한 해결 방안을 제시할 수 있다.
소프트웨어 애플리케이션은 운영 체제 업데이트 및/또는 서비스 팩 업데이트로 인한 동작 실패 또는 동작 퇴행(operation regression)을 방지하는 소프트웨어 조작성 서비스를 제공할 수 있다.
소프트웨어 조작성 서비스에 대한 실시예들은 다음과 같은 도면들을 참조하여 설명된다. 동일한 도면 부호가 유사한 특징 및 컴포넌트들을 참조하기 위해 사용된다.
도 1은 소프트웨어 조작성 서비스에 대한 실시예가 구현될 수 있는 예시적인 시스템을 도시한다.
도 2는 하나 이상의 실시예들에 따른 소프트웨어 조작성 서비스를 구현하는 네트워크 서비스를 도시한다.
도 3은 하나 이상의 실시예들에 따른 소프트웨어 조작성 서비스의 예시적인 방법(들)을 도시한다.
도 4는 하나 이상의 실시예들에 따른 소프트웨어 조작성 서비스의 추가적이고 예시적인 방법(들)을 도시한다.
도 5는 하나 이상의 실시예들에 따른 소프트웨어 조작성 서비스의 추가적이고 예시적인 방법(들)을 도시한다.
도 6은 소프트웨어 조작성 서비스의 실시예들을 구현 가능한 예시적인 장치의 다양한 컴포넌트들을 도시한다.
소프트웨어 조작성 서비스에 대해 이하 설명된다. 실시예에서, 소프트웨어 조작성 모듈은 임의의 유형의 소프트웨어, 애플리케이션, 장치 드라이버, 펌웨어(예를 들어, 장치 펌웨어 또는 시스템 펌웨어), 마이크로코드, 하드웨어 컴포넌트, 또는 이들의 임의의 조합 등과 같은 소프트웨어 동작 데이터를 수집하기 위해 소프트웨어의 동작을 모니터링하도록 구현될 수 있다. 다음으로, 소프트웨어 조작성 모듈은 소프트웨어 동작 데이터로부터 소프트웨어에 대한 소프트웨어 조작성 특징을 생성할 수 있다. 소프트웨어 조작성 특징은 소프트웨어의 조작성을 나타내거나, 또는 일반적으로, 소프트웨어, 애플리케이션, 장치 드라이버, 펌웨어, 하드웨어 등의 "건강(health)"을 나타낸다. 이후, 소프트웨어 조작성 모듈은 소프트웨어 조작성 특징 및 소프트웨어 조작성 특징을 분석하는 네트워크 서비스에 동작 컨텍스트를 나타내는 연관된 컨텍스트 데이터를 전송한다.
다른 실시예에서, 네트워크 서비스는 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터를 컴퓨팅 장치로부터 수신할 수 있다. 소프트웨어 조작성 특징은 컴퓨팅 장치 상에서 동작하는 소프트웨어의 조작성을 나타낸다. 실시예에서, 네트워크 서비스는 추가적인 소프트웨어 조작성 특징들로부터 기본 조작성 특징을 생성할 수 있다. 네트워크 서비스는 추가적인 컴퓨팅 장치들로부터 수신한 추가적인 소프트웨어 조작성 특징들을 그룹화할 수 있다. 추가적인 소프트웨어 조작성 특징들 각각은 추가적인 컴퓨팅 장치들에서 동작하는 소프트웨어의 조작성을 나타내고 전술한 소프트웨어와 연관된 전술한 컨텍스트 데이터와 동일하거나 유사한 컨텍스트 데이터와 연관된다. 다음으로, 네트워크 서비스는 추가적인 소프트웨어 조작성 특징들로부터 기본 조작성 특징을 생성할 수 있고 기본 조작성 특징은 정상적인 소프트웨어 동작을 나타낸다. 네트워크 서비스는 소프트웨어 조작성 특징을 소프트웨어의 기본 조작성 특징과 비교하여 소프트웨어가 기본 조작성 특징과 일치하게 동작하는지 아니면 기본 조작성 특징과 일치하지 않도록 동작하는지 판정한다.
실시예들에 따르면, 정상적인 소프트웨어 동작을 나타내는 기본 조작성 특징은 소프트웨어 조작성 특징들이 생성된 컨텍스트의 함수일 수 있다. 예를 들어, 기본 조작성 특징은 컴퓨팅 장치의 아키텍처(예: X64 또는 ARM), 성능(예: 고성능 또는 저성능), 분석된 마켓 세그먼트(예: OEM, PC Model, Locale, CPU speed 등), 등을 포함하는 컨텍스트에 기초하여 생성될 수 있다. 장치 드라이버 및 운영 체제 빌드 버전(operating system build version)의 두 가지 변수만을 기초하여 생성된 기본 조작성 특징은 드라이버당 운영 체제당(per driver per operating system) 기본 컨텍스트를 가질 것이다. 또한, 기본 컨텍스트에는 부가적인 차원(dimensions)들이 더해질 수 있다. 예를 들어, 기본 컨텍스트의 차원은 특정 로케일(locale)에서 1GB 메모리 이하를 갖는 태블릿 컴퓨터 상에서 실행되는 파워 관리 기능에 대한 드라이버의 기본 조작성 특징을 식별하기 위해 더해질 수 있다.
다른 실시예에서, 소프트웨어가 기본 조작성 특징과 일치하지 않도록 동작한다는 것은 소프트웨어 조작성 특징에 기초하여 판정될 수 있다. 네트워크 서비스는 이후에 기본 조작성 특징에 일치하지 않도록 동작하는 것이 정상적인 소프트웨어 동작인지 판정할 수 있다. 따라서, 소프트웨어의 새로운 기본 조작성 특징이 소프트웨어 조작성 특징에 기초하여 생성될 수 있다. 대체적으로, 소프트웨어 특징에 기초하여 소프트웨어가 기본 조작성 특징에 일치하지 않도록 동작한다고 판정되면, 네트워크 서비스는 소프트웨어 조작성 특징을 분석하여 소프트웨어의 동작 실패 또는 퇴행을 판정할 수 있다. 네트워크 서비스는 동작 실패 또는 퇴행의 원인을 결정하고 소프트웨어의 동작 실패 또는 퇴행을 경감하기 위한 해결 방안은 개시할 수 있다.
예를 들어, 프린터 및 컴퓨팅 장치 상의 대응되는 프린터 드라이버를 고려해보자. 컴퓨팅 장치에 서비스 팩 업데이트가 적용된 이후, 프린터는 프린트 작업을 완료하는데 보다 긴 시간이 소요되는 등과 같이 기존과 다르게 동작할 수 있다. 전형적으로, 프린터 드라이버가 기존과 다르게 동작하는지 판정하는 것도 어렵지만, 서비스 팩 업데이트가 이러한 프린터의 속도 감소의 원인이라고 판정하는 것 또한 어렵다. 시간이 경과하여 프린터의 사용자가 프린터가 프린트 작업의 완료에 보다 긴 시간을 소요하는 것으로 보인다고 알아챌 수 있지만, 사용자가 성능 저하의 원인이 무엇인지를 정확히 알아내는 것은 어려울 수 있다. 더 나아가, 많은 사용자들은 프린터가 완전히 동작하지 않는 이상 프린터의 성능 저하를 눈치조차 채지 못할 수 있다.
그러나, 다양한 실시예에 따르면, 프린터 드라이버 동작 데이터를 수집하기 위해 소프트웨어 조작성 모듈이 프린터 드라이버를 모니터링하도록 구현될 수 있다. 프린터 드라이버에 대한 소프트웨어 조작성 특징이 생성될 수 있고 네트워크 서비스로 전송될 수 있다. 그 다음, 네트워크 서비스는 프린터 드라이버에 대한 소프트웨어 조작성 특징을 프린터 드라이버의 기본 조작성 특징과 비교하여 프린터 드라이버가 기본 조작성 특징과 일치하게 또는 불일치하게 동작하는지 판정할 수 있다. 이러한 경우, 네트워크 서비스는 프린터 드라이버가 서비스 팩 업데이트 이후에 제대로 동작하지 않기 때문에 프린터 드라이버가 기본 조작성 특징에 불일치하게 동작한다고 판정할 수 있다. 프린터 드라이버가 기본 조작성 특징에 불일치하게 동작한다고 판정하는 것에 응답하여, 네트워크 서비스는 프린터 드라이버의 소프트웨어 조작성 특징을 분석하여 프린터 드라이버의 동작 실패 또는 동작 퇴행을 결정할 수 있다. 프린터 드라이버의 이러한 동작 실패 또는 동작 퇴행을 경감하기 위한 해결 방안이 이후 개시될 수 있다. 예를 들어, 네트워크 서비스는 프린터 드라이버로 하여금 서비스 팩 업데이트와 함께 제대로 동작할 수 있도록 하는 소프트웨어 업데이트를 생성하여 컴퓨팅 장치로 전송할 수 있다.
소프트웨어 조작성 서비스의 특징 및 개념들이 몇몇 상이한 장치들, 시스템들, 환경들, 네트워크들, 및/또는 구성요소들에 의해 구현 가능하지만, 소프트웨어 조작성 서비스의 실시예들은 다음과 같은 예시적인 장치들, 시스템들, 및 방법들의 컨텍스트 내에서 설명된다.
도 1은 소프트웨어 조작성 서비스의 다양한 실시예들이 구현될 수 있는 예시적인 시스템(100)을 도시한다. 예시적인 시스템(100)은 컴퓨팅 장치(104)의 임의의 유형으로 구성될 수 있는 컴퓨팅 장치(102)를 포함한다. 임의의 다양한 컴퓨팅 장치(104)는 컴퓨팅 장치(102)로서 구성될 수 있으며 도 6에 도시된 예시적인 장치를 참조하여 후술될 상이한 컴포넌트들의 임의의 조합으로서 구현될 수 있다.
컴퓨팅 장치(104)는 텔레비전 장치(106), 컴퓨터(108), 게이밍 시스템(110), 애플라이언스 장치, 전자 장치, 및/또는 임의의 다른 유형의 장치의 하나 또는 조합으로써 구현될 수 있다. 다양한 컴퓨팅 장치들은 또한 모바일 폰(112)(예: 셀룰러, VoIP, WiFi, 등), 휴대용 컴퓨팅 장치(114), 미디어 플레이어(116), 및 또는 임의의 다른 무선 장치의 하나 또는 임의의 조합과 같이 무선 데이터를 수신 및/또는 전송하기 위해 구현되는 무선 장치들을 포함할 수 있다. 클라이언트 시스템은 컴퓨팅 장치 및 디스플레이 장치(118) 각각을 포함할 수 있다.
컴퓨팅 장치(102)는 컴퓨팅 장치의 동작을 제어하는 다양한 컴퓨터 실행가능 명령어들을 처리하는 하나 이상의 프로세서(120)(예: 마이크로프로세서, 컨트롤러 등의 임의의 것)를 포함할 수 있다. 컴퓨팅 장치(102)는 데이터 저장을 가능하게 하는 메모리(122)(예: 하나 이상의 컴퓨터 판독 가능 저장 매체 장치)를 포함할 수도 있다. 메모리는 임의의 유형의 메모리, 저장 매체, 및/또는 적절한 전자 데이터 저장소로 구현 가능하다.
또한 메모리(122)는 메모리를 사용하여 소프트웨어 애플리케이션으로서 유지될 수 있으며 프로세서(120)에 의해 실행되는 운영 체제(124)를 포함할 수 있다. 운영 체제는 소프트웨어 조작성 모듈(126) 및 운영 체제 커널(128)을 포함한다. 소프트웨어 조작성 모듈(126)은 소프트웨어 애플리케이션과 같은 컴퓨터 실행가능 명령어들로 구현될 수 있으며 여기서 설명되는 실시예들을 구현하기 위해 다양한 컴퓨팅 장치(104)들 중 임의의 것에서 프로세서에 의해 실행될 수 있다.
소프트웨어 조작성 모듈(126)은 소프트웨어 동작 데이터(132)를 수집하기 위해 소프트웨어(130)의 동작을 모니터링하도록 구현될 수 있다. 여기서 설명되는 것처럼, 소프트웨어는 워드 프로세싱 애플리케이션, 웹 브라우저 애플리케이션, 또는 장치 드라이버 등과 같은 임의의 유형의 소프트웨어 애플리케이션을 포함할 수 있다. 소프트웨어는 또한 펌웨어(예: 장치 펌웨어 또는 시스템 펌웨어), 마이크로코드, 하드웨어 컴포넌트들, 또는 이들의 임의의 조합을 포함할 수 있다. 소프트웨어 동작 데이터는 정상적인 소프트웨어 동작, 소프트웨어 활동 변경, 및 소프트웨어 실패(failure)를 포함하는 소프트웨어의 동작 및/또는 활동과 관련된 임의의 데이터를 포함할 수 있다.
실시예에서, 소프트웨어 조작성 모듈(126)은 네트워크 서비스(200)(이하 자세히 후술됨)로부터의 요청을 수신하여 소프트웨어 특정 동작을 모니터링하도록 구현될 수 있다. 예를 들어, 소프트웨어 파워 관리 활동과 관련된 특정 동작을 모니터링하도록 요청이 수신될 수 있으며 다른 모든 동작들은 무시될 수 있다. 대체적으로, 소프트웨어 조작성 모듈은 소프트웨어의 모든 동작을 모니터링하도록 구현될 수 있다.
실시예에서, 소프트웨어 조작성 모듈(!26)은 하나 이상의 기준에 기초하여 모니터링할 소프트웨어를 선택하도록 구현될 수 있다. 하나 이상의 기준은 소프트웨어 조작성 모듈 그 자체에 의해 생성되거나 네트워크 서비스(200)로부터 수신될 수 있다. 예를 들어, 소프트웨어 조작성 모듈은 모니터링할 소프트웨어를 랜덤하게 선택하거나 에러 이벤트의 연속과 같은 주목할만한 특정 활동을 인식하는 것에 의해 선택할 수 있다. 다른 예로써, 네트워크 서비스는 다양한 컴퓨팅 장치들의 조작성의 광범위한 측면(picture)을 컴파일하기 위해 광범위한 조합의 소프트웨어가 모니터링된다는 점을 보장하기 위해 샘플링 로직(sampling logic)을 사용할 수 있다.
이후, 소프트웨어 조작성 모듈(126)은 소프트웨어 동작 데이터(132)로부터 소프트웨어에 대한 소프트웨어 조작성 특징(134)을 생성할 수 있다. 소프트웨어 조작성 특징은 소프트웨어 조작성을 나타내고 소프트웨어 동작 데이터의 요약을 포함할 수 있다. 예를 들어, 소프트웨어 조작성 특징은 소프트웨어가 크래쉬(crash)되거나, 소프트웨어가 애플리케이션 작업을 완료하지 않았거나, 애플리케이션 동작을 실행하는데 실패했다는 표시를 포함할 수 있다. 따라서, 소프트웨어 조작성 특징이 소프트웨어가 모니터링되는 시간 동안에 소프트웨어의 조작성의 스냅샷(snapshot)을 제공한다는 점이 이해되어야 할 것이다.
일 실시예에서, 소프트웨어 조작성 모듈(126)은 소프트웨어 동작 데이터(132)를 수집하고 트리거링(triggering) 이벤트에 응답하여 소프트웨어 조작성 특징(134)을 생성하도록 구현된다. 이러한 트리거링 이벤트는 소프트웨어 조작성 특징을 생성하기 위해 사용되는 소프트웨어 동작 데이터가 일치된다는 것을 보증한다. 트리거링 이벤트는 컴퓨터 장치 재시작과 같은 특정 이벤트, 또는 특징 시간 또는 기간일 수 있다. 예를 들어, 소프트웨어 조작성 특징은 컴퓨팅 장치가 재시작할 때마다 생성되거나, 매일 오전 8시, 또는 12시간 마다 생성될 수 있다. 트리거링 이벤트는 소프트웨어 조작성 모듈에 의해 판정되거나 네트워크 서비스로부터 수신된 명령에 기초하여 선택될 수 있다.
다음으로, 소프트웨어 조작성 모듈(126)은 소프트웨어 조작성 특징(134) 미 연관된 컨텍스트 데이터(136)를 소프트웨어 조작성 특징을 분석하는 네트워크 서비스(200)로 전송한다. 일 실시예에서, 컨텍스트 데이터는 다른 시스템 또는 엔티티에 의해 수집되거나 및/또는 전송될 수 있으며, 이때 소프트웨어 조작성 특징은 컨텍스트 데이터로의 포인터 또는 참조와 함께 전송될 수 있다.
컨텍스트 데이터(136)는 소프트웨어 동작 데이터가 수집되고 소프트웨어 조작성 특징이 생성되는 운영 체제를 식별한다. 컨텍스트 데이터는 소프트웨어의 동작에 영향을 미칠 수 있는 컴퓨팅 장치의 구성 요소 또는 운영 환경과 연관된 임의의 정보를 포함할 수 있다. 예를 들어, 컨텍스트 데이터는 하드웨어, 펌웨어 또는 bios 유형의 정보, 컴퓨팅 장치(예: 임베디드, 내부, 또는 외부 장치)와 연관된 장치 유형, 컴퓨팅 장치의 드라이버 유형, 및/또는 운영 체제의 유형을 포함할 수 있다. 컨텍스트 데이터는 또한, 소프트웨어 동작 데이터가 수집된 시간에 대응하는 시간 데이터 또는 소프트웨어 동작 데이터가 수집된 시간에서의 컴퓨팅 장치의 환경에 대응하는 환경 데이터(운영 체제의 상태 등)를 포함할 수 있다.
소프트웨어 동작이 소프트웨어의 컨텍스트 또는 운영 환경에 의해 많은 영향을 받는다는 것이 이해되어야 할 것이다. 따라서, 수집되는 컨텍스트 데이터의 양과 질은 네트워크 서비스에 의한 소프트웨어 조작성 특징의 분석에 영향을 미칠 것이다. 예를 들어, 소프트웨어 또는 장치는 32 비트 시스템 상에서 ARM 시스템에서와는 달리 동작할 것이다. 유사하게, 장치는 둘 이상의 동일한 장치가 동일한 컴퓨팅 장치 상에서 동작하는 경우 다르게 동작할 수 있다. 따라서, 컨텍스트는 소프트웨어 조작성 특징에 영향을 미칠 수 있다. 따라서, 네트워크 서비스에 의한 특징의 백엔드(backend) 분석에 도움이 된다는 측면에서, 각 특징에 연관되는 더 많은 컨텍스트 데이터가 있을수록 더 낫다.
소프트웨어 조작성 모듈(126)은 소프트웨어 조작성 특징(134)들의 전송 및 분산을 용이하게 하는 유선 및/또는 무선 네트워크를 포함하도록 구현 가능한 통신 네트워크(138)를 통해서 네트워크 서비스(200)와 통신할 수 있다. 통신 네트워크는 임의의 유형의 네트워크 토폴로지 및/또는 통신 프로토콜을 사용하여 구현될 수 있으며 둘 이상의 네트워크의 조합으로서 제시 또는 구현될 수 있다. 통신 네트워크는 통신 서비스 제공자, 휴대폰 제공자, 및/또는 인터넷 서비스 제공자와 같은 모바일 오퍼레이터에 의해 관리되는 모바일 오퍼레이터 네트워크들을 포함할 수 있다. 모바일 오퍼레이터는 임의의 유형의 무선 장치 또는 모바일 폰(예: 셀룰러, VoIP, Wi-Fi 등)에 대해 모바일 데이터 및/또는 음성 통신을 용이하게 할 수 있다.
다양한 실시예들에서, 소프트웨어(130)는 운영 체제 커널(128)과의 통신을 통해 대응되는 장치(142)를 제어하도록 구현되는 장치 드라이버(140)를 포함할 수 있다. 장치(142)의 예는 컴퓨팅 장치(102)와 인터페이스할 수 있는 키보드, 스피커, 프린터, USB 저장 장치, 웹 카메라, 및 임의의 다른 유형의 하드웨어 장치를 포함한다. 일 실시예에서, 소프트웨어 조작성 모듈(126)은 소프트웨어 동작 데이터를 수집하기 위해 장치 드라이버 및 운영 체제 커널 사이의 통신을 수동적으로 모니터링하는 모니터링 모듈(144)을 이용하여 장치 드라이버(140)를 모니터링하도록 구현된다. 모니터링 모듈은 장치 드라이버에 대응되는 소프트웨어 동작 데이터를 수집하기 위해 장치 드라이버 및 운영 체제 커널 사이의 통신을 수동적으로 모니터링하는 "심(shim)"으로서 구성될 수 있다. 여기서 설명되는 것처럼, "수동적인" 모니터링은 장치 드라이버 및 운영 체제 커널 사이의 통신에 간섭하지 않고 모니터링하는 것을 가리킨다.
이후, 소프트웨어 조작성 모듈(126)은 장치 드라이버에 대응하는 소프트웨어 동작 데이터로부터 소프트웨어 조작성 특징(134)을 생성하도록 구현된다. 예를 들어, 소프트웨어 조작성 특징은 장치 드라이버가 크래쉬되거나, 완료되지 않거나, 실패했다는 표시를 포함할 수 있다. 장치 드라이버 동작 실패는, 예를 들어, 컴퓨팅 장치에 대한 최적의 배터리 수명보다 적은 수명을 야기하는 요구된 파워 수준(requested power state)을 입력하는 것에 실패하는 것과 같이, 장치 드라이버가 운영 체제 커널로부터의 명령에 적절히 응답하는 것에 실패하는 경우를 포함할 수 있다. 소프트웨어 조작성 특징은 장치 드라이버가 모니터링되는 시간 동안에 장치 드라이버의 조작성의 스냅샷을 제공한다. 다음으로, 소프트웨어 조작성 모듈(126)은 장치 드라이버에 대응되는 소프트웨어 조작성 특징을 전술한 것처럼 소프트웨어 조작성 특징을 분석하는 네트워크 서비스(200)로 전송한다.
도 2는 실시예들에 따른 예시적인 네트워크 서비스(200)를 도시한다. 네트워크 서비스는 도 1에서 설명된 컴퓨팅 장치(102)로부터의 소프트웨어 조작성 특징들(204) 및 연관된 컨텍스트 데이터(206)가 수신되는 데이터 통신 인터페이스(202)를 포함한다.
네트워크 서비스(200)는 네트워크 서비스의 동작을 제어하기 위한 다양한 컴퓨티 실행 가능 명령어들을 처리하는 하나 이상의 프로세서(208)(예: 마이크로프로세서, 컨트롤러 등)를 포함할 수 있다. 네트워크 서비스는 데이터 저장을 가능하게 하는 메모리(210)(예: 하나 이상의 컴퓨터 판독가능 저장 매체 장치들)을 또한 포함할 수 있다. 메모리는 임의의 유형의 메모리, 저장 매체, 및/또는 적절한 전자 데이터 저장소로 구현 가능하다. 네트워크 서비스는 또한 도 6에 도시된 예시적인 장치를 참조하여 더 설명된 상이한 컴포넌트들의 임의의 조합으로 구현될 수도 있다. 네트워크 서비스(200)는 소프트웨어 애플리케이션과 같은 컴퓨터 실행 가능한 명령어들로 구현될 수 있으며 실시예들을 구현하기 위해 하나 이상의 프로세서(208)에 의해 실행될 수 있는 소프트웨어 조작성 서비스(212)를 포함할 수 있다.
소프트웨어 조작성 서비스(212)는 소프트웨어 조작성 특징(204) 및 연관된 컨텍스트 데이터(206)를 컴퓨팅 장치(102)로부터 수신하도록 구현된다. 도 1을 참조하여 설명한 것처럼, 소프트웨어 조작성 특징은 컴퓨팅 장치 상에서 동작하는 소프트웨어(130)의 조작성을 나타낸다.
일 실시예에서, 소프트웨어 조작성 서비스(212)는 정상적인 소프트웨어 동작을 나타내는 기본 조작성 특징(214)을 판정하도록 구현된다. 기본 조작성 특징을 구현하기 위해, 소프트웨어 조작성 서비스는 추가적인 컴퓨팅 장치(102)들로부터 수신된 추가적인 소프트웨어 특징들(204)을 그룹화할 수 있다. 추가적인 소프트웨어 조작성 특징들 각각은 추가적인 컴퓨팅 장치들에서 동작하는 소프트웨어(130)의 조작성을 나타낸다. 이후, 소프트웨어 조작성 서비스(212)는 추가적인 소프트웨어 조작성 특징들로부터 기본 조작성 특징을 생성할 수 있으며, 기본 조작성 특징은 정상적인 소프트웨어 동작을 나타낸다. 기본 조작성 특징은 추가적인 소프트웨어 조작성 특징들이 생성된 컨텍스트의 함수일 수 있다. 예를 들어, 기본 조작성 특징은 분석을 위해 선택되는 컴퓨팅 장치의 아키텍처, 장치의 성능, 및/또는 장치의 특징을 포함하는 컨텍스트에 기초하여 생성될 수 있다.
실시예들에서, 기본 조작성 특징(214)는 소프트웨어가 동일하거나 유사한 동작 환경에서 동작하거나 및/또는 동일하거나 유사한 소프트웨어 동작이 모니터링되는 경우에 정상적인 소프트웨어 동작을 나타낸다. 일례로, 기본 조작성 특징(214)은 소프트웨어 조작성 특징과 연관된 컨텍스트 데이터와 동일하거나 유사한 컨텍스트 데이터와 연관된 추가적인 소프트웨어 조작성 특징들을 그룹화하는 것에 의해 동적으로 생성될 수 있다. 이것은 컴퓨팅 장치의 컨텍스트나 운영 환경이 기본 특징과 소프트웨어 조작성 특징의 비교에 영향을 미치지 않는다는 것을 나타낸다.
예를 들어, 최소 BIOS 버전을 요구하는 디스플레이 드라이버는 구 BIOS 버전을 갖는 컴퓨팅 장치 상에서 저조한 동작을 할 수 있겠지만, 새로운 BIOS 버전을 갖는 시스템들 상에서는 제대로 동작할 수 있다. 이에, 만약에 소프트웨어 조작성 특징이 새로운 BIOS를 가지는 컴퓨팅 장치로부터 생성되고, 기본 조작성 특징은 구 BIOS 버전을 갖는 컴퓨팅 장치 상의 추가적인 소프트웨어 조작성 특징들로부터 생성되는 경우, 비교는 부정확할 수 있다. 따라서, 디스플레이 드라이버에 대한 소프트웨어 조작성 특징을 기본 조작성 특징과 비교할 때, 소프트웨어 조작성 특징 및 기본 특징 모두가 새로운 BIOS 버전을 갖는 컴퓨팅 장치들로부터 생성된다.
동일하거나 유사한 컨텍스트 데이터에 연관되는 것을 대체하거나 더 부가하여, 소프트웨어 조작성 특징 및 추가적인 소프트웨어 조작성 특징들은 소프트웨어의 동일하거나 유사한 동작들을 모니터링하는 것으로부터 생성 가능하다. 예를 들어, 소프트웨어 조작성 특징이 파워 관리 활동과 관련된 동작을 모니터링하는 것에 의해 생성되는 경우, 기본 조작성 특징을 생성하기 위해 사용되는 추가적인 소프트웨어 조작성 특징들 역시 파워 관리 활동에 관련된 동작을 모니터링하는 것에 의해 생성되는 것에 기초하여 그룹화될 수 있다. 따라서, 기본 조작성 특징을 생성하기 위해 사용되는 추가적인 소프트웨어 조작성 특징들은 동일하거나 유사한 컨텍스트 데이터를 갖는 것에 기초하여 그룹화되거나 정확한 기본 조작성 특징을 생성하기 위해 동일하거나 유사한 소프트웨어 동작들을 모니터링하는 것으로부터 생성될 수 있다.
소프트웨어 조작성 서비스(212)는 소프트웨어가 기본 조작성 특징과 일치하도록 동작하는지 불일치하도록 동작하는지 판정하기 위해 소프트웨어 조작성 특징(204)을 소프트웨어의 기본 조작성 특징(214)과 비교하도록 구현된다. 기본 조작성 특징은 정상적인 소프트웨어 동작을 나타낸다. 따라서, 소프트웨어 조작성 특징을 기본 조작성 특징과 비교하는 것에 의해, 네트워크 서비스는 소프트웨어가 정상적인 소프트웨어 동작 또는 행동과 일치 또는 불일치하도록 동작하는지 여부를 판정할 수 있다.
예를 들어, 소프트웨어 조작성 서비스는 데이터 차트 내에 소프트웨어 조작성 특징을 기본 조작성 특징과 함께 그래프로 나타낼 수 있으며 소프트웨어가 기본 조작성 특징과 일치 또는 불일치하게 동작하는지 여부를 판정하기 위해 특징들을 통계적으로 분석할 수 있다. 예를 들어, 소프트웨어 조작성 특징이 기본 조작성 특징에 매핑되는 경우, 소프트웨어 조작성 서비스는 소프트웨어가 기본 조작성 특징에 일치되도록 동작한다고 판정할 수 있다. 대체적으로, 만약 소프트웨어 조작성 특징이 기본 조작성 특징에 매핑되지 않는 경우, 소프트웨어 조작성 서비스는 소프트웨어 기본 조작성 특징에 일치되지 않도록 동작한다고 판정할 수 있다.
일 실시예에서, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)가 기본 조작성 특징(214)에 불일치하도록 동작하는지 여부를 소프트웨어 조작성 특징(204)에 기초하여 판정할 수 있으며, 기본 조작성 특징에 불일치하도록 동작하는 소프트웨어가 정상적인 소프트웨어 동작에 대응하는지 판정할 수 있다. 예를 들어, 컴퓨팅 장치 업데이트는 소프트웨어가 다르게 동작하는 원인이 될 수 있고, 소프트웨어 조작성 특징이 이로 인해 변경될 수 있다. 그러나, 어떤 경우에는 소프트웨어의 상이한 동작이 소프트웨어에 대해 허용 가능하거나 보다 나은 동작에 대응될 수도 있다. 따라서, 이러한 경우에는, 상이한 소프트웨어 조작성 특징이 정상적인 소프트웨어 동작에 대응하게 된다. 따라서, 소프트웨어 조작성 서비스(212)는 소프트웨어의 새로운 기본 조작성 특징을 소프트웨어로부터 수신한 소프트웨어 조작성 특징에 기초하여 생성하도록 구현된다.
다른 실시예에서, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)가 기본 조작성 특징(214)에 불일치하게 동작하는지 여부를 소프트웨어 조작성 특징(204)에 기초하여 판정하고, 그 다음 소프트웨어 조작성 특징을 분석하여 소프트웨어의 동작 실패(operation failure)를 판정할 수 있다. 소프트웨어 동작 실패는 소프트웨어가 정상적으로 동작하는 것에 실패하는 것에 대응한다. 소프트웨어의 동작 실패를 판정하기 위해, 소프트웨어 조작성 서비스는 불일치 동작에 대응하는 소프트웨어 조작성 특징(204)을 분석하여 소프트웨어 조작성 특징이 소프트웨어의 실패를 나타내는지 여부를 판정한다. 예를 들어, 소프트웨어 조작성 특징은 소프트웨어가 크래쉬되거나 특정 명령의 실행이 완료되지 않았음을 나타낼 수 있다. 다른 예로써, 소프트웨어 조작성 특징은, 운영 체제 커널에 의해 파워 상태를 변경하라는 요청을 받으면 장치 드라이버가 파워 상태(power states)를 변경하는 것에 실패하였다는 것을 나타낼 수 있다.
다른 실시예에서, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)가 기본 조작성 특징(214)과 불일치하게 동작하는지를 소프트웨어 조작성 특징(204)에 기초하여 판정할 수 있고, 그 다음 소프트웨어 조작성 특징을 분석하여 소프트웨어의 동작 퇴행을 판정할 수 있다. 소프트웨어의 동작 퇴행은, 운영 체제 업데이트 또는 서비스 팩 업데이트와 같은 컴퓨팅 장치의 업데이트에 응답하여 소프트웨어의 조작성이 퇴행되는 경우(예를 들어, 소프트웨어의 성능이 경감되는 경우)를 가리킨다.
동작 퇴행은 컴퓨팅 장치 업데이트 이후에 수신된 소프트웨어의 소프트웨어 조작성 특징(204)을 컴퓨팅 장치 업데이트 이전에 생성된 기본 조작성 특징(214)과 비교하는 것에 의해 식별될 수 있다. 예를 들어, 서비스 팩 업데이트 이후에 수신된 소프트웨어 조작성 특징은 서비스 팩 업데이트 이전에 생성된 기본 조작성 특징과 동일하거나 대략 동일하여야 한다. 그러나, 만약 소프트웨어 조작성 특징이 기본 조작성 서명과 서비스 팩 업데이트 이후에 상이해지면, 소프트웨어 조작성 특징은 소프트웨어 조작성 특징이 동작 퇴행으로 나타나는 소프트웨어 성능의 경감에 대응하는지 여부를 검사할 수 있다.
예를 들어, 프린터 드라이버에 대한 소프트웨어 조작성 특징들을 분삭하는 것에 의해, 소프트웨어 조작성 서비스(212)는 구 버전의 운영 체제에서 실행되는 경우 프린터 드라이버의 프린팅 프로세스의 특정 단계 동안에 5%에 해당하는 회수의 실패를 판정할 수 있다. 그러나, 새로운 버전의 운영 체제가 설치되는 경우, 소프트웨어 조작성 특징은 프린터 드라이버가 프린팅 프로세스의 특정 단계를 실행할 때 이제는 20%에 해당하는 회수로 실패한다고 나타낼 수 있다. 이와 같이, 새로운 버전의 운영 체제에서 프린터 드라이버가 보다 자주 실패한다는 사실은 운영 체제 업데이트에 응답하여 프린터 드라이버의 성능이 경감 또는 퇴행했다는 것을 나타낸다.
이후, 소프트웨어 조작성 서비스(212)는 소프트웨어 조작성 특징(204)을 기본 조작성 특징(214)과 비교하는 것으로부터 소프트웨어의 동작 실패 또는 동작 퇴행의 원인을 판정하도록 구현될 수 있다. 예를 들어, 소프트웨어 조작성 서비스는 소프트웨어의 동작 실패 또는 동작 퇴행의 원인을 판정하기 위해 소프트웨어와 연관된 컨텍스트 데이터(206)를 검사할 수 있다.
다음으로, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)의 동작 실패 또는 동작 퇴행을 경감하기 위한 해결 방안을 시작하도록 구현된다. 예를 들어, 소프트웨어 조작성 서비스 및/또는 다른 서비스 또는 프로세스는 동작 실패 또는 동작 퇴행을 경감하기 위한 소프트웨어 해결 방안(software solution)을 시작할 수 있다. 예를 들어, 소프트웨어 해결 방안은 새로운 버전의 운영 체제와의 호환성을 위해 프린터 드라이버의 업데이트를 시작할 수 있다.
이러한 해결 방안은 컴퓨팅 장치에서의 소프트웨어의 동작 실패 또는 동작 퇴행을 경감시키기 위해 컴퓨팅 장치(102)로 통신 네트워크를 통해 전송될 수 있다. 대체적으로 또는 부가적으로, 동작 실패 또는 동작 퇴행에 대한 정보는 소프트웨어의 생산자 또는 개발자(또는 다른 제3자)에게 전송될 수 있으며, 이에 제3자는 소프트웨어의 동작 실패 또는 동작 퇴행을 경감하기 위한 해결 방안을 개발할 수 있다. 소프트웨어 조작성 서비스는, 동일한 동작 실패 또는 동작 퇴행이 후속적으로 감지되는 경우 해결 방안을 사용하여 컴퓨팅 장치의 자동 업데이트를 시작하기 위해 동작 실패 또는 동작 퇴행에 대응하는 소프트웨어 조작성 특징을 태그할 수도 있다.
도 3, 4, 및 5 각각을 참조하여 소프트웨어 조작성 서비스에 대한 하나 이상의 실시예에 따른 예시적인 방법(300, 400 및 500)들이 설명된다. 일반적으로, 여기서 설명되는 서비스, 기능, 방법, 절차, 컴포넌트, 및 모듈들 중 임의의 것은 소프트웨어, 펌웨어, 하드웨어(예: 고정된 논리 회로), 수동적인 프로세스, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 소프트웨어 구현은 컴퓨터 프로세서에 의해 실행될 때 지정된 작업을 수행하는 프로그램 코드를 나타낸다. 예시적인 방법들은 소프트웨어, 애플리케이션, 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조, 절차, 모듈, 기능 등을 포함 가능한 컴퓨터 실행가능 명령어들의 일반적인 컨텍스트에서 설명될 수 있다. 프로그램 코드는 컴퓨터 프로세서에 대해 로컬 및/또는 원격인 하나 이상의 컴퓨터 판독가능 저장 매체 장치들 내에 저장될 수 있다. 방법들은 복수의 컴퓨터 장치들에 의한 분산 컴퓨팅 환경에서도 실행될 수 있다. 또한, 여기서 설명되는 특징들은 플랫폼 독립적이며 다양한 프로세서를 가지는 다양한 컴퓨팅 플랫폼 상에서 구현 가능하다.
도 3은 소프트웨어 조작성 서비스의 예시적인 방법(들)(300)을 도시하며, 컴퓨팅 장치 내에 구현되는 소프트웨어 조작성 모듈을 참조하여 설명된다. 방법 블록들이 설명되는 순서는 한정 사항으로서 이해되어서는 안되며, 설명된 방법 블록들의 임의의 수가 방법, 또는 대안적인 방법을 구현하기 위해 임의의 순서로 조합될 수 있다.
블록(302)에서, 소프트웨어가 소프트웨어 동작 데이터를 수집하기 위해 모니터링된다. 예를 들어, 컴퓨팅 장치(102)(도 1)에서의 소프트웨어 조작성 모듈(126)은 소프트웨어 동작 데이터(132)를 수집하기 위해 소프트웨어(130)를 모니터링한다. 블록(304)에서, 소프트웨어에 대한 소프트웨어 조작성 특징이 소프트웨어 동작 데이터로부터 생성된다. 예를 들어, 소프트웨어 조작성 모듈(126)은 소프트웨어(130)에 대한 소프트웨어 조작성 특징(134)을 소프트웨어 동작 데이터(132)로부터 생성한다.
블록(306)에서, 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터가 소프트웨어 조작성 특징을 분석하는 네트워크 서비스로 전송된다. 예를 들어, 소프트웨어 조작성 모듈(126)은 소프트웨어 조작성 특징(134) 및 연관된 컨텍스트 데이터(136)를 소프트웨어 조작성 특징을 분석하는 네트워크 서비스(200)(도 2)로 전송한다.
도 4는 소프트웨어 조작성 서비스의 예시적인 방법(들)(400)을 도시하며 도 2에 도시된 네트워크 서비스를 참조하여 개시된다. 방법 블록들이 설명되는 순서는 한정 사항으로서 이해되어서는 안되며, 설명된 방법 블록들의 임의의 수가 방법, 또는 대안적인 방법을 구현하기 위해 임의의 순서로 조합될 수 있다.
블록(402)에서, 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터가 컴퓨팅 장치로부터 수신된다. 예를 들어, 네트워크 서비스(200)(도 2)는 컴퓨팅 장치(102)(도 1)로부터 소프트웨어 조작성 특징(204) 및 연관된 컨텍스트 데이터(206)를 수신한다. 소프트웨어 조작성 특징은 컴퓨팅 장치 상에서 동작하는 소프트웨어(130)의 조작성을 나타낸다.
블록(404)에서, 추가적인 컴퓨팅 장치들로부터 수신된 추가적인 소프트웨어 조작성 특징들이 그룹화된다. 예를 들어, 소프트웨어 조작성 서비스(212)는 추가적인 컴퓨팅 장치들(104)로부터 수신된 추가적인 소프트웨어 조작성 특징들(204)을 그룹화한다. 추가적인 소프트웨어 조작성 특징들 각각은 추가적인 컴퓨팅 장치들 상에서 동작하는 소프트웨어의 조작성을 나타낸다. 또한, 추가적인 소프트웨어 조작성 특징들 각각은 소프트웨어 조작성 특징과 연관된 컨텍스트 데이터와 동일하거나 유사한 컨텍스트 데이터와 연관될 수 있다.
블록(406)에서, 추가적인 소프트웨어 조작성 특징들로부터 기본 조작성 특징이 생성된다. 예를 들어, 소프트웨어 조작성 서비스(212)는 추가적인 소프트웨어 조작성 특징들로부터 기본 조작성 특징(214)을 생성한다. 실시예에서, 기본 조작성 특징은 추가적인 소프트웨어 조작성 특징들이 생성된 컨텍스트의 함수일 수 있다. 예를 들어, 기본 조작성 특징은 분석을 위해 선택된 컴퓨팅 장치의 아키텍처, 장치의 성능, 및/또는 장치의 특징을 포함하는 컨텍스트에 기초하여 생성 가능하다.
블록(408)에서, 소프트웨어 조작성 특징은 소프트웨어의 기본 조작성 특징과 비교되어 소프트웨어가 기본 조작성 특징과 일치 또는 불일치하게 동작하는지 여부를 판정한다. 예를 들어, 소프트웨어 조작성 서비스(212)는 소프트웨어 조작성 특징(204)을 소프트웨어의 기본 조작성 특징(214)과 비교하여 소프트웨어가 기본 조작성 서명과 일치하게 동작하는지 아니면 기본 조작성 서명과 불일치하게 동작하는지 여부를 판정한다.
도 5는 네트워크 서비스의 예시적인 방법(들)(500)을 도시하며 도 2에 도시된 소프트웨어 조작성 서비스를 참조하여 설명된다. 방법 블록들이 설명되는 순서는 한정 사항으로서 이해되어서는 안되며, 설명된 방법 블록들의 임의의 수가 방법, 또는 대안적인 방법을 구현하기 위해 임의의 순서로 조합될 수 있다.
블록(502)에서, 소프트웨어가 기본 조작성 특징과 불일치하게 동작한다는 것이 소프트웨어 조작성 특징에 기초하여 판정된다. 예를 들어, 소프트웨어 조작성 서비스(212)(도 2)는 소프트웨어(130)가 기본 조작성 서명(214)와 불일치하게 동작한다는 것을 소프트웨어 조작성 특징(204)(예: 도 4의 블록(408)에서 설명된 비교에 기초하여 판정 가능함)에 기초하여 판정한다. 소프트웨어가 기본 조작성 특징과 불일치하게 동작한다고 판정되는 것에 응답하여 방법은 블록(504) 또는 블록(508)에서 선택적으로 계속될 수 있다.
일 실시예에 따르면, 블록(504)에서, 기본 조작성 특징과 불일치하게 동작하는 소프트웨어가 정상적인 소프트웨어 동작에 대응한다고 판정된다. 예를 들어, 소프트웨어 조작성 서비스(212)는, 소프트웨어 조작성이 기본 조작성 특징과 불일치함에도 불구하고, 소프트웨어(130)의 조작성이 정상적인 소프트웨어 동작에 대응한다고 판정한다.
블록(506)에서, 새로운 기본 조작성 특징이 소프트웨어로부터 수신된 소프트웨어 조작성 특징에 기초하여 생성된다. 예를 들어, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)로부터 수신된 소프트웨어 조작성 특징(204)에 기초하여 새로운 기본 조작성 특징(214)을 생성한다. 다른 실시예에 따르면, 블록(508)에서, 소프트웨어 조작성 특징은 소프트웨어의 동작 실패 또는 동작 퇴행을 판정하기 위해 분석된다. 예를 들어, 소프트웨어 조작성 서비스(212)는 소프트웨어 조작성 특징(204)을 분석하여 소프트웨어(130)의 동작 실패 또는 동작 퇴행을 판정한다.
블록(510)에서, 소프트웨어의 동작 실패 또는 동작 퇴행의 원인이 소프트웨어 조작성 특징과 기본 조작성 특징을 비교하는 것으로부터 판정된다. 예를 들어, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)의 동작 실패 또는 동작 퇴행의 원인을 소프트웨어 조작성 특징(204)과 기본 조작성 특징(214)을 비교하는 것으로부터 판정한다. 또한, 기본 조작성 특징의 컨텍스트는 소프트웨어의 동작 실패 또는 동작 퇴행을 판정할 때 고려하는 하나의 요소가 될 수 있다. 블록(512)에서, 소프트웨어의 동작 실패 또는 동작 퇴행을 경감하기 위한 해결 방안이 시작된다. 예를 들어, 소프트웨어 조작성 서비스(212)는 소프트웨어(130)의 동작 실패 또는 동작 퇴행을 경감하기 위한 해결 방안을 시작한다.
도 6은 예시적인 장치(600)의 다양한 컴포넌트를 도시하며, 전술한 도 1 내지 도 5를 참조하여 설명된 임의의 장치 또는 장치들에 의해 구현되는 서비스로서 구현될 수 있다. 실시예들에서, 장치는 고정된 장치 또는 모바일 장치 중 임의의 하나 또는 조합으로서 구현 가능하며, 소비자, 컴퓨터, 서버, 휴대용, 사용자, 통신, 전화, 네비게이션, 텔레비전, 애플라이언스(appliance), 게이밍, 미디어 플레이백, 및/또는 전자 장치 중 임의의 형태가 될 수 있다. 또한, 장치는 장치를 동작시키는 사용자(예: 개인) 및/또는 엔티티와 연관될 수 있으며, 장치는 사용자, 소프트웨어, 펌웨어, 하드웨어, 및/또는 장치들의 조합을 포함하는 논리 장치들로서 설명될 수 있다.
장치(600)는 수신된 데이터, 수신되고 있는 데이터, 방송을 위해 스케줄링된 데이터, 데이터의 데이터 패킷 등과 같은 장치 데이터(604)의 유선 및/또는 무선 통신을 가능하게 하는 통신 장치들(602)을 포함한다. 장치 데이터 또는 다른 장치 컨텐츠는 장치의 구성 설정, 장치 상에 저장된 미디어 컨텐츠, 및/또는 장치의 사용자와 연관된 정보를 포함할 수 있다. 장치 상에 저장된 미디어 콘텐츠는 오디오, 비디오, 및/또는 이미지 데이터 중 임의의 유형을 포함할 수 있다. 장치는 임의의 유형의 데이터, 미디어 컨텐츠, 및/또는 입력이 수신 가능한 하나 이상의 데이터 입력들(606)을 포함하며, 이러한 데이터 입력들은 사용자 선택가능 입력, 메시지, 통신, 음악, 텔레비전 컨텐츠, 녹화된 비디오 컨텐츠, 및 임의의 컨텐츠 및/또는 데이터 소스로부터 수신된 오디오, 비디오, 및/또는 이미지 데이터 중 다른 임의의 유형 등일 수 있다.
장치(600)는 하나 이상의 직렬, 병렬, 네트워크, 또는 무선 인터페이스 중 하나 이상과 같은 통신 인터페이스(608)를 더 포함할 수 있다. 통신 인터페이스는 다른 전자, 컴퓨팅, 및 통신 장치들이 장치와 데이터를 통신하는 통신 네트워크 및 장치 사이의 연결 및/또는 통신 링크를 제공한다.
장치(600)는 장치의 동작을 제어하기 위한 다양한 컴퓨터 실행가능 명령어들을 처리하는 하나 이상의 프로세서들(610)(예: 마이크로프로세서, 컨트롤러 등 중 임의의 것)을 포함한다. 대체적으로 또는 추가적으로, 장치는 612에서 일반적으로 식별된 프로세싱 및 제어 회로와 함께 구현되는 소프트웨어, 하드웨어, 펌웨어, 또는 고정된 논리 회로 중 임의의 것과 함께 구현 가능하다. 비록 도시되지는 않았지만, 장치는 장치 내의 다양한 컴포넌트들을 연결하는 시스템 버스 또는 데이터 전송 시스템을 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 유니버설 시리얼 버스(USB) 및/또는 다양한 버스 아키텍처 중 임의의 것을 사용하는 프로세서 또는 로컬 버스 등과 같은 상이한 버스 구조 중 임의의 하나 또는 조합을 포함할 수 있다.
또한 장치(600)는 RAM, 비휘발성 메모리(예: ROM, 플래쉬 메모리 등), 및 디스클 저장 장치 등과 같은 데이터 저장소를 가능하게 하는 하나 이상의 메모리 장치(예: 컴퓨터 판독가능 저장 매체)(614)를 포함할 수 있다. 디스크 저장 장치는 하드 디스크 드라이브, 레코딩 가능 및/또는 재기입 가능한 디스크 등과 같은 자기 또는 광학 저장 장치 중 임의의 유형으로서 구현될 수 있다. 장치는 또한 대용량 저장 매체 장치를 포함할 수 있다.
컴퓨터 판독가능 매체는 컴퓨팅 장치에 의해 액세스되는 임의의 사용 가능한 미디어 또는 매체가 될 수 있다. 예를 들어, 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체를 포함할 수 있지만 이에 대해 한정하지는 않는다. 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터 등과 같은 정보를 저장하기 위한 임의의 방법 또는 기술 내에서 구현되는 휘발성, 비휘발성, 제거 가능 및 제거 불가능한 매체를 포함 가능하다. 저장 매체는, RAM, ROM, EEPROM, 플래쉬 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있으며 정보를 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수 있으며 이에 대해 한정하지는 않는다.
통신 매체는 전형적으로 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 캐리어 웨이브 또는 다른 전송 매커니즘 등과 같은 변조된 데이터 신호 내의 다른 데이터를 포함한다. 통신 매체는 또한 임의의 정보 전달 매체를 포함한다. 변조된 데이터 신호라는 용어는 신호 내에 정보를 인코딩하는 것과 같이 설정되거나 변경된 하나 이상의 자체 특징들을 갖는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 연결 등과 같은 유선 매체, 어쿠스틱, RF, 적외선, 및 다른 무선 매체와 같은 무선 매체 등을 포함할 수 있는데, 이에 대해 한정하지는 않는다.
메모리 장치(614)는 장치 데이터(604), 다른 유형의 정보 및/또는 데이터, 및 다양한 장치 애플리케이션(616)을 저장하는 데이터 저장 메커니즘을 제공한다. 예를 들어, 운영 체제(618)는 메모리 장치를 갖는 소프트웨어 애플리케이션으로서 유지되고 프로세서들 상에서 실행될 수 있다. 장치 애플리케이션들은 제어 애플리케이션, 소프트웨어 애플리케이션, 신호 프로세싱 및 제어 모듈, 특정 장치에 네이티브한 코드, 특정 장치를 위한 하드웨어 추상 레이어(abstract layer) 등 중 임의의 유형일 수 있는 장치 관리자를 포함할 수 있다.
본 예에서, 장치 애플리케이션(616)는, 장치(600)가 컴퓨팅 장치로서 구현되는 것과 같이, 소프트웨어 조작성 모듈(620)을 포함할 수 있다. 대체적으로 또는 추가적으로, 장치 애플리케이션은, 장치가 도 2를 참조하여 설명된 네트워크 서비스로서 구현되는 것과 같이, 소프트웨어 조작성 서비스(622)를 포함할 수 있다. 소프트웨어 조작성 모듈 및 소프트웨어 조작성 서비스는 소프트웨어 및/또는 컴퓨터 애플리케이션으로서 도시된다. 대체적으로 또는 추가적으로, 소프트웨어 조작성 모듈 및/또는 소프트웨어 조작성 서비스는 하드웨어, 소프트웨어, 펌웨어, 고정된 논리, 또는 이들의 임의의 조합으로서 구현 가능하다.
또한, 장치(600)는 오디오 시스템(626)을 위해 오디오 데이터를 생성하고 및/또는 디스플레이 시스템(628)을 위해 디스플레이 데이터를 생성하는 오디오 및/또는 비디오 처리 시스템(624)를 포함할 수 있다. 오디오 시스템 및/또는 디스플레이 시스템은 오디오, 비디오, 디스플레이, 및/또는 이미지 데이터를 처리, 디스플레이 및/또는 렌더링하는 임의의 장치들을 포함 가능하다. 디스플레이 데이터 및 오디오 신호는 RF 링크, S-video 링크, 컴포지트 비디오 링크, 컴포넌트 비디오 링크, DVI, 아날로그 오디오 연결, 또는 다른 유사한 통신 링크를 통하여 오디오 장치 및/또는 디스플레이 장치로 전송될 수 있다. 구현 예들에서, 오디오 시스템 및/또는 디스플레이 시스템은 장치의 외부 컴포넌트이다. 대체적으로, 오디오 시스템 및/또는 디스플레이 시스템은 예시적인 장치의 통합된 컴포넌트일 수도 있다.
비록 소프트웨어 조작성 서비스의 실시예들이 특징 및/또는 방법들에 언어 특정적(language specific)으로 설명되었지만, 청구 대상 발명은 전술된 특정된 특징 또는 방법들에 의해 필수적으로 제한되지 않는다. 오히려, 특정된 특징 또는 방법들은 소프트웨어 조작성 서비스의 예시적인 구현으로서 개시되었다.

Claims (10)

  1. 컴퓨터 구현된 방법으로서,
    소프트웨어 조작성 특징(software operability signature) 및 연관된 컨텍스트 데이터(contextual data)를 컴퓨팅 장치로부터 수신하는 단계 - 상기 소프트웨어 조작성 특징은 상기 컴퓨팅 장치 상에서 동작하는 소프트웨어의 조작성을 나타냄 - 와,
    상기 소프트웨어 조작성 특징을 상기 소프트웨어의 기본 조작성 특징(baseline operability signature)과 비교하여 상기 소프트웨어가 상기 기본 조작성 특징과 일치하도록 동작하는지 또는 상기 기본 조작성 특징과 불일치하도록 동작하는지 여부를 판정하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    추가적인 컴퓨팅 장치들로부터 수신된 추가적인 소프트웨어 조작성 특징들을 그룹화하는 단계 - 상기 추가적인 소프트웨어 조작성 특징들 각각은 상기 추가적인 컴퓨팅 장치들 상에서 동작하는 소프트웨어의 조작성을 나타내고 상기 소프트웨어 조작성 특징과 연관된 상기 컨텍스트 데이터와 동일하거나 유사한 컨텍스트 데이터와 연관됨 - 와,
    상기 추가적인 소프트웨어 조작성 특징들로부터 상기 기본 조작성 특징을 생성하는 단계 - 상기 기본 조작성 특징은 정상적인 소프트웨어 동작을 나타냄 -
    를 더 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 소프트웨어 조작성 특징 및 상기 추가적인 소프트웨어 조작성 특징들은 상기 소프트웨어의 동일하거나 유사한 동작을 모니터링하는 것으로부터 생성되는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 소프트웨어가 상기 기본 조작성 특징과 불일치하게 동작한다는 것을 상기 소프트웨어 조작성 특징에 기초하여 판정하는 단계와,
    상기 기본 조작성 특징과 불일치하게 동작하는 상기 소프트웨어가 정상적인 소프트웨어 동작에 대응한다는 것을 판정하는 단계와,
    상기 소프트웨어로부터 수신된 상기 소프트웨어 조작성 특징에 기초하여 상기 소프트웨어의 새로운 기본 조작성 특징을 생성하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 소프트웨어 조작성 특징에 기초하여 상기 소프트웨어가 상기 기본 조작성 특징의 컨텍스트와 불일치하게 동작한다는 것을 판정하는 단계와,
    상기 소프트웨어의 동작 실패를 판정하기 위해 상기 소프트웨어 조작성 특징을 분석하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 소프트웨어 조작성 특징을 상기 기본 조작성 특징의 상기 컨텍스트와 비교하는 것으로부터 상기 소프트웨어의 상기 동작 실패의 원인을 결정하는 단계와,
    상기 소프트웨어의 상기 동작 실패를 경감하기 위한 해결 방안을 시작하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 소프트웨어 조작성 특징에 기초하여 상기 소프트웨어가 상기 기본 조작성 특징의 컨텍스트와 불일치하게 동작한다고 판정하는 단계와,
    상기 소프트웨어의 동작 퇴행(operation regression)을 판정하기 위해 상기 소프트웨어 조작성 특징을 분석하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 소프트웨어 조작성 특징을 상기 기본 조작성 특징의 상기 컨텍스트와 비교하는 것으로부터 상기 소프트웨어의 상기 동작 퇴행의 원인을 결정하는 단계와,
    상기 소프트웨어의 상기 동작 퇴행을 경감하기 위한 해결 방안을 시작하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  9. 네트워크 서비스로서,
    컴퓨팅 장치로부터 소프트웨어 조작성 특징 및 연관된 컨텍스트 데이터를 수신하도록 구성된 데이터 통신 인터페이스 - 상기 소프트웨어 조작성 특징은 상기 컴퓨팅 장치 상에서 동작하는 소프트웨어의 조작성을 나타냄 - 와,
    상기 소프트웨어 조작성 특징을 상기 소프트웨어의 기본 조작성 특징과 비교하여 상기 소프트웨어가 상기 기본 조작성 특징과 일치하도록 동작하는지 또는 상기 기본 조작성 특징과 불일치하도록 동작하는지 여부를 판정하도록 구성된 소프트웨어 조작성 서비스를 구현하기 위한 적어도 하나의 메모리 및 프로세서
    를 포함하는, 네트워크 서비스.
  10. 제9항에 있어서,
    상기 네트워크 서비스는,
    추가적인 컴퓨팅 장치들로부터 수신된 추가적인 소프트웨어 조작성 특징들을 그룹화 - 상기 추가적인 소프트웨어 조작성 특징들 각각은 상기 추가적인 컴퓨팅 장치들 상에서 동작하는 소프트웨어의 조작성을 나타내고 상기 소프트웨어 조작성 특징과 연관된 상기 컨텍스트 데이터와 동일하거나 유사한 컨텍스트 데이터와 연관됨 - 하고,
    상기 추가적인 소프트웨어 조작성 특징들로부터 상기 기본 조작성 특징을 생성 - 상기 기본 조작성 특징은 정상적인 소프트웨어 동작을 나타냄 - 하도록 구성된,
    네트워크 서비스.
KR1020137027514A 2011-04-21 2011-10-10 소프트웨어 조작성 서비스 KR20140020287A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/091,494 US20120272103A1 (en) 2011-04-21 2011-04-21 Software operability service
US13/091,494 2011-04-21
PCT/US2011/055605 WO2012145022A1 (en) 2011-04-21 2011-10-10 Software operability service

Publications (1)

Publication Number Publication Date
KR20140020287A true KR20140020287A (ko) 2014-02-18

Family

ID=47022210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137027514A KR20140020287A (ko) 2011-04-21 2011-10-10 소프트웨어 조작성 서비스

Country Status (6)

Country Link
US (1) US20120272103A1 (ko)
EP (1) EP2700011A4 (ko)
JP (1) JP5840290B2 (ko)
KR (1) KR20140020287A (ko)
CN (1) CN103477327B (ko)
WO (1) WO2012145022A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161236A1 (en) * 2013-12-05 2015-06-11 Lenovo (Singapore) Pte. Ltd. Recording context for conducting searches
US11334338B2 (en) * 2019-01-25 2022-05-17 Vmware, Inc. Operating system update management
US11106520B2 (en) * 2019-04-16 2021-08-31 Dell Products L.L.P. Systems and methods for preventing client application crashes due to operating system updates
US11281519B2 (en) * 2019-07-15 2022-03-22 Microsoft Technology Licensing, Llc Health indicator platform for software regression reduction

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571180B1 (en) * 1997-04-11 2003-05-27 Keystone International Holding Corp. Self-contained steam trap monitor
US7100195B1 (en) * 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6718535B1 (en) * 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US7280988B2 (en) * 2001-12-19 2007-10-09 Netuitive, Inc. Method and system for analyzing and predicting the performance of computer network using time series measurements
US7703077B2 (en) * 2002-04-30 2010-04-20 Microsoft Corporation Programming model to detect deadlocks in concurrent programs
WO2004004855A1 (en) * 2002-07-05 2004-01-15 Cyberscan Technology, Inc. Secure game download
US8488143B2 (en) * 2002-08-07 2013-07-16 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting printer internet protocol addresses
US7386839B1 (en) * 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US7047448B2 (en) * 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US7269824B2 (en) * 2003-02-13 2007-09-11 Path Reliability, Inc. Software behavior pattern recognition and analysis
US8032866B1 (en) * 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7421621B1 (en) * 2003-09-19 2008-09-02 Matador Technologies Corp. Application integration testing
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7506371B1 (en) * 2004-01-22 2009-03-17 Guardium, Inc. System and methods for adaptive behavior based access control
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
JP2006146600A (ja) * 2004-11-19 2006-06-08 Ntt Docomo Inc 動作監視サーバ、端末装置及び動作監視システム
US20060209328A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Systems and methods that facilitate selective enablement of a device driver feature(s) and/or application(s)
CA2577244A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
DE102005018910A1 (de) * 2005-04-22 2006-10-26 Endress + Hauser Gmbh + Co. Kg Verfahren zum Aufrüsten eines mikroprozessorgesteuerten Geräts mit neuem Softwarecode über ein Kommunikationsnetzwerk
US8341605B2 (en) * 2005-12-15 2012-12-25 Ca, Inc. Use of execution flow shape to allow aggregate data reporting with full context in an application manager
US8051163B2 (en) * 2006-05-11 2011-11-01 Computer Associates Think, Inc. Synthetic transactions based on system history and load
US7359819B2 (en) * 2006-07-21 2008-04-15 Microsoft Corporation Evaluation of device driver output
US7865910B2 (en) * 2006-07-28 2011-01-04 Microsoft Corporation Bypassing class drivers through virtual driver enablement
US8055989B2 (en) * 2006-08-08 2011-11-08 Stmicroelectronics, Inc. Boot security using embedded counters
US7954143B2 (en) * 2006-11-13 2011-05-31 At&T Intellectual Property I, Lp Methods, network services, and computer program products for dynamically assigning users to firewall policy groups
US20080184041A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Graph-Based Tamper Resistance Modeling For Software Protection
US20080301666A1 (en) * 2007-05-30 2008-12-04 Susan Gordon System for aggregating content data and methods relating to analysis of same
WO2009014951A1 (en) * 2007-07-20 2009-01-29 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
US8146061B2 (en) * 2007-12-12 2012-03-27 Via Technologies, Inc. Systems and methods for graphics hardware design debugging and verification
US8219983B1 (en) * 2008-03-31 2012-07-10 Symantec Corporation Systems and methods for providing guidance on the potential impact of application and operating-system changes on a computing system
US20100094861A1 (en) * 2008-10-01 2010-04-15 Henrique Andrade System and method for application session tracking
US7877642B2 (en) * 2008-10-22 2011-01-25 International Business Machines Corporation Automatic software fault diagnosis by exploiting application signatures
US8522085B2 (en) * 2010-01-27 2013-08-27 Tt Government Solutions, Inc. Learning program behavior for anomaly detection
CN101930361B (zh) * 2009-06-26 2013-10-09 中国电信股份有限公司 在线数据存储服务提供方法及系统
US8769296B2 (en) * 2009-10-19 2014-07-01 Uniloc Luxembourg, S.A. Software signature tracking
JP5961638B2 (ja) * 2011-02-17 2016-08-02 ターセーラ, インコーポレイテッド アプリケーション証明のためのシステムおよび方法

Also Published As

Publication number Publication date
CN103477327A (zh) 2013-12-25
EP2700011A1 (en) 2014-02-26
US20120272103A1 (en) 2012-10-25
WO2012145022A1 (en) 2012-10-26
CN103477327B (zh) 2016-08-10
JP5840290B2 (ja) 2016-01-06
EP2700011A4 (en) 2016-03-30
JP2014512061A (ja) 2014-05-19

Similar Documents

Publication Publication Date Title
JP7148666B6 (ja) モバイルデバイスサポートサービスを提供するためのシステム、方法、装置、および非一時的コンピュータ可読記憶媒体
US11601801B2 (en) System, method, apparatus, and computer program product for providing mobile device support services
US9519495B2 (en) Timed API rules for runtime verification
KR102268355B1 (ko) 클라우드 배치 기반구조 검증 엔진
US9384114B2 (en) Group server performance correction via actions to server subset
US9003239B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
CN111767184A (zh) 一种故障诊断方法、装置及电子设备和存储介质
US20140372985A1 (en) API Rules Verification Platform
US10452469B2 (en) Server performance correction using remote server actions
CN106980565B (zh) 升级过程监控方法及装置
Levy et al. Predictive and Adaptive Failure Mitigation to Avert Production Cloud {VM} Interruptions
US11960873B2 (en) System and method for managing a model for solving issues using a set of actions performed on the client environment
CN114661319A (zh) 软件升级稳定性推荐
KR20140020287A (ko) 소프트웨어 조작성 서비스
US11379294B1 (en) Systems and methods for crash analysis using code version history
US20120254406A1 (en) Computer system management method and management apparatus
US20080018651A1 (en) Method and system for capturing image frame
CN108446219B (zh) 应用程序的操作方法、系统、介质和计算设备
CN108509223B (zh) 一种数据处理方法、装置、系统及存储介质
CN114115974A (zh) 一种插件运行方法、装置、设备及计算机存储介质
JP2021069009A (ja) 情報処理システム、情報処理システムの制御方法、情報処理装置、及びプログラム
US20050172173A1 (en) Apparatus and method for monitoring system status in an embedded system
US20240111516A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium

Legal Events

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