KR20080052560A - 동적 어플리케이션 사용 정보의 분산 캡쳐 및 결집체 - Google Patents

동적 어플리케이션 사용 정보의 분산 캡쳐 및 결집체 Download PDF

Info

Publication number
KR20080052560A
KR20080052560A KR1020087003403A KR20087003403A KR20080052560A KR 20080052560 A KR20080052560 A KR 20080052560A KR 1020087003403 A KR1020087003403 A KR 1020087003403A KR 20087003403 A KR20087003403 A KR 20087003403A KR 20080052560 A KR20080052560 A KR 20080052560A
Authority
KR
South Korea
Prior art keywords
application
server
feature
web
log file
Prior art date
Application number
KR1020087003403A
Other languages
English (en)
Other versions
KR101300360B1 (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 KR20080052560A publication Critical patent/KR20080052560A/ko
Application granted granted Critical
Publication of KR101300360B1 publication Critical patent/KR101300360B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • 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
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Abstract

어플리케이션 개발자들이 온라인 방식으로 어플리케이션 사용 분석을 생성하고, 관리하며, 모니터하는 웹 기반의 호스트 해결. 바람직하게, 테스트 중인 어플리케이션은: 어플리케이션 소프트웨어, 스크립이 강화된 웹 어플리케이션, 또는 리티 인터넷 어플리케이션(RIA) 중 어느 하나이다. 개발 프로세스 동안에, 사용 모니터링 API는 어플리케이션에 통합되고 상기 어플리케이션이 배치된다. 사용자가 어플리케이션과 상호 작용할 때, 로그 파일이 일반적으로 두 가지 방법 중 한 가지 방법으로 생성된다. 만약에 어플리케이션이 로컬 파일 시스템에 라이트할 수 있으면(사용자 장치 내에서), 사용 정보는 로그 파일 로컬에 모여서 배치된 어플리케이션으로 향하고 다음으로 배치 방식으로 프로세싱하는 업로드 서버로 디스패치된다. 만약에 어플리케이션이 사용자 장치의 로컬 파일 시스템에 라이트할 수 없으면, 사용 정보는 바람직하게 저스트인타임 기초 하에 원격 로깅 서버로 보내지고, 다음으로 로그 파일이 로깅 서버에 생성된다. 두 가지 경우에서, 추적되는 사용 정보는 배치된 어플리케이션의 인스턴스들의 플랫폼, 위치, 및 개수에 무관한, 어플리케이션의 "특징들", "결함들" 및 "실패들"을 포함한다.
어플리케이션, 호스트, 프로세스, 모니터, 로그, 업로드, 파일 시스템

Description

동적 어플리케이션 사용 정보의 분산 캡쳐 및 결집체{DISTRIBUTED CAPTURE AND AGGREGATION OF DANAMIC APPLICATION USAGE INFORMATION}
본 발명은 저작권에 의해 보호되는 주제 내용을 포함한다.
본 발명은 2005년 7월 12일에 출원된 출원 번호 60/698,567을 기반으로 하고 우선권으로 주장한다.
일반적으로 본 발명은 소프트웨어 모니터링, 트랙킹, 및 투자수익(return on investment, ROI) 분석에 관한 것이다.
강력한 경향이, 소프트웨어 산업이 작용하는 방식 및 소프트웨어가 발전되는 방식을 재형성하고 있다. 가장 큰 경향은, 비지니스로서 정보 기술(Information Technology, IT)을 향해 나아가는 것이다. 미국 상무부(The United States Department of Commerce)는 소비되는 모든 자본의 50%가 IT 및 소프트웨어에 소비된다고 추정한다. 발표된 논문들에 따르면, 생산성 및 ROI에 관한 자료의 부족 때문에, 그리고 개발자들이 소프트웨어 개발 프로세스 동안에 사용자들 및 소비자들로부터 용이하게 피드백을 모을 수 있는 능력이 부족하기 때문에, 이러한 소비의 상당한 부분이 낭비된다. 그러한 피드백 없이는, 개발자들 및 제품 관리자들은, 소프트웨어의 어떤 특징이 가장 인기가 있고, 소프트웨어가 사용될 때 어떠한 특징이 가장 큰 문제를 일으키는지 등을 결정할 수 없다. 그러므로, 어디에 최적으로 개발 자원들을 할당하고 투자할 것인지에 대한 결정은 충분하지 않다. 소프트웨어 개발 및 테스트 활동이 전 세계에 분산될 때, 상기 문제점은 더 악화된다. 과거에는, 개발자들 및 IT 관리자들은 추측-평가법(guess-estimation), 사용자 조사 및 포커스 그룹(focus group)을 포함하는 다양한 기술들을 통해서 어플리케이션 사용 정보를 확인하고 평가하도록 시도하였다. 그러나 그러한 기술들은 일반적으로 소비자 기반의 작은 샘플링만을 표현하고, 그들은 종종 부정확하고 때에 맞지 않는 데이터를 포함한다.
종래에는, 에러, 트레이스(trace), 감사(audit) 및 다른 정보를 컴퓨터 네트워크에 중심적으로 통합, 수집 및 저장하는 방법들 및 시스템들에 제공되었다. 대표적인 예는, Niemi 등이 권리자인 미국 특허 번호 6,470,388이다. 이 특허에서, 네트워크 내의 다양한 엔티티(entity)들 또는 호스트들에서 운영되는 선택된 어플리케이션들 또는 프로세스들은, 주어진 정보를 수집하는 하나 이상의 "디버그(debug)" 항목을 예시한다. 또한, 각각의 엔티티는 어플리케이션 또는 프로세스와 통신하는 적어도 하나의 로깅 서비스 층을 포함하고, 통신 수단 및 하나 이상의 상태 기계 엔진(state machine engine)을 포함한다. 에러, 트레이스, 감사 또는 다른 정보를 수집하는 것에 대응하여 각각의 디버그 항목은, 네트워크 내에서 배열되는 중앙화 로깅 설비에 상기 데이터를 전송할 것인지를 결정하는 각각의 로깅 서비스 층에 상기 데이터를 전달한다. 수집된 정보의 전달은 상기 디버그 항목의 상태에 의존한다. 상기 중앙화 로깅 설비에서, 상기 정보는 타임스탬프(time-stamp)형 이고, 어플리케이션의 명칭 및 상기 어플리케이션이 운영되는 엔티티 또는 호스트의 명칭과 함께 로그 파일에 첨부된다.
또 다른 대표적인 특허는, Hall 등이 권리자인 미국 특허 번호 6,591,228이다. 이 특허에서, 로깅 서비스는, 복수 개의 메인프레임들이 데이터 저장 영역과 연결된 컴퓨터 환경에서 수행되는 어플리케이션으로부터 중앙화 로그 진단 메시지들에 접속한다. 각각의 메인프레임은 어플리케이션들을 수행하는 하나 이상의 서브시스템을 포함한다. 로깅 서비스 API는 문제점의 타입에 따라 진단 메시지들을 작성하여 데이터 저장장치로 보내고, 경고 설비와 접촉한다.
상기 언급된 어플리케이션 로깅 기술들이 일반적으로 유용하지만, 그들은 비교적 많지 않은 트랙 시스템들을 이용하여 동종의 컴퓨터 환경에 걸쳐 운용되며, 상대적으로 제한된 정보의 집합을 수집한다. 종래에는, 특히 소프트웨어 개발 프로세스와 관계하여 배치된 어플리케이션 인스턴스들의 플랫폼, 위치 및 개수에 무관한 어플리케이션 사용 정보를 추적하는 방법들 및 시스템들을 제공하는 필요가 남아있다.
본 발명은 관련 기술의 이러한 요구를 다룬다.
본 발명은, 특히 소프트웨어 개발 프로세스 동안의 기술 최적화를 위한 비지니스 가치 분석을 전달하는 소프트웨어 플랫폼에 관한 것이다. 일반적으로 본 발명에 따르면, 트래킹 플랫폼은 호스트(또는 관리) 서비스로서 운용되어, 어플리케이션 사용 정보를 모니터, 수집 및 결집한다. 테스트 대상의 어플리케이션은, 최종 사용자 클라이언트 기계들과 같은 분산 기계들의 집합에서 수행된다고 가정한다. 상기 어플리케이션은 상기 사용 정보를 수집하도록 구성되고, 그러면 일 실시예에서, 시청용으로 집결되고 이출(export)되는 중앙 기억 장소로 신뢰도 있게 전송된다. 어플리케이션에 대한 상세한 사용 정보를 수집하고 측정함으로써, 상기 서비스는 소프트웨어 개발자로 하여금 고품질의 소프트웨어 어플리케이션들을 좀더 효율적으로 제작할 수 있도록 해준다. 바람직하게, 상기 시스템은 웹 인터페이스를 이출하여, 사용자(IT 관리자, 어플리케이션 제작자 등)로 하여금 일반적인 기술들(예컨대, 웹 브라우저 및 네트워크 접속 가능성을 갖는 컴퓨터) 및 표준 통신 기술들(HTTP, 시큐어 HTTP, SOAP 기반 웹 서비스 등)을 이용하여 인터넷을 통해 상기 시스템을 취급할 수 있도록 해준다. 대안적으로, 상기 시스템은 사설 네트워크 등을 통한 엑스트라넷(extranet)으로서 구현된다. 바람직하게, 주어진 엔티티가 또한 취급기반의 베이시스 상의 서비스에 액세스하기 위해서 선택됨에도 불구하고, 엔티티는 기부 베이시스 상의 호스트 해결에 액세스한다.
본 발명의 보다 구체적인 양상에 따르면, 테스트 대상의 상기 어플리케이션은 어플리케이션 소프트웨어, 웹 어플리케이션, 또는 리치 인터넷 어플리케이션(rich internet application, RIA) 중 하나이다. 개발 프로세스 동안에, 사용 모니터링 API는 상기 어플리케이션에 통합되고, 상기 어플리케이션은 배치된다. 사용자가 상기 어플리케이션과 상호 작용할 때, 일반적으로 두 방식 중 하나의 방식으로 로그 파일이 생성된다. 만약에 어플리케이션이 로컬 파일 시스템(사용자의 기계에 있는)을 라이트할 수 있으면, 사용 정보는 로그 파일 로컬에 모여 배치된 어플리케이션으로 향하고, 그러면 배치(batch) 방식으로 프로세싱하는 업로드 서버로 디스패치한다. 만약에 어플리케이션이 사용자 기계의 로컬 파일 시스템에 라이트할 수 없으면(예컨대, 왜냐하면 그것이 웹 어플리케이션 또는 RIA이기 때문에), 상기 사용 정보는 바람직하게 저스트인타임(just-in-time) 기반으로 원격 로깅 서버로 보내지고, 그러면 상기 로그 파일은 상기 로깅 서버에서 생성된다. 바람직하게, 위 두 경우에서, 추적된 사용 정보는, 배치된 어플리케이션 인스턴스의 플랫폼, 위치, 및 개수에 무관한, "특징(features)", "결함(faults)" 및 "실패(failure)"를 포함한다. 일반적으로 본 명세서에서, 상기 "특징" 데이터는 어떠한 특징들이 사용되고, 언제, 무슨 순서로, 누구에 의해, 어떠한 플랫폼에서, 및 어떠한 최종 사용자 환경과 같은 정보의 집합을 지칭한다. 일반적으로 상기 "결함" 데이터는, 어떠한 특징이 프로그램 에러(예컨대, 예외)를 일으키는지를 지칭한다. 상기 "실패" 데이터는, 어떤 특징이 성공적으로 완료하지 못하는 것, 예컨대 데이터가 부정확한 포맷으로 필드에 엔트리하는 것을 식별한다.
본 발명의 추가적인 특징에 따르면, 상기 사용 정보 또는 보다 일반적으로 상기 로그 파일은, 인터넷을 통해서 매우 콤팩트한 방식으로 전송되어, 적은 프로세싱 요구를 구비하는 고성능의 분산 시스템을 가능하게 한다.
이상에서 본 발명과 관련된 특징들을 약술하였다. 이러한 특징들은 단지 예시적인 것으로 해석되어야 한다. 개시된 발명을 다른 방법으로 적용함으로써 또는 상술할 발명을 변경시킴으로써, 본 발명의 다른 유익한 결과들이 얻어질 수 있다.
도 1은 본 발명에 따른 브랜드 통합 기술 플랫폼을 구현하는 서비스 제공자 구조의 블록도이다.
도 2는 원격 로깅 서버로 전송되는 사용 데이터 집합들을 제공하도록 어플리케이션 인스턴스들이 구성되는, 본 발명에 따른 기초 로깅 서버를 도시한다.
도 3은 소프트웨어 개발 프로세스 동안에 개발자에게 피드백을 제공하도록 어떻게 호스트 서비스가 사용되는지를 도시한다.
도 4는 호스트 서비스의 보다 구체적은 구현을 제공한다.
도 5는 원격 노드가 어떻게 로깅 서버와 상호 작용하는지를 설명하는 간략화된 프로세스 흐름도이다.
도 6은 본 발명에 따른 대표적인 로깅 서버 구성을 도시한다.
도 7은 사용자가 추적된 특징을 수행할 때 발생하는 대표적인 흐름도를 도시한다.
도 8은 파일 전송용의 HTML 형식을 위한 대표적인 HTML 코드 스니펫(snippet)을 도시한다.
도 9는 로그 파일을 생성하는데 사용되는 대표적인 로깅 코드를 도시한다.
도 10은 이진 파일 형식을 설명하는 대표적인 로그 파일을 도시한다.
도 1은 대표적인 서비스 제공자 또는 시스템 구조를 도시하고, 이는 바람직한 실시예에서 하나 이상의 데이터 센터에서 또는 하나 이상의 데이터 센터에 걸쳐구현된다. 일반적으로, 데이터 센터는 인터넷과 연결된다. 일 실시예에서, 상기 시 스템은, 어플리케이션 개발자들(또는 IT 직원들)이 온라인 방식에서의 어플리케이션 사용 분석을 생성, 관리 및 모니터하는, 웹기반의 호스트 해결을 제공한다. 바람직하게, 관계자들은 호스트 서비스로서 상기 플랫폼과 상호작용한다. 대안적인 실시예에서, 상기 시스템은 사설 네트워크를 통해서 구현될 수 있고, 또는 제품으로서(호스트 또는 관리 시스템에 반대하여) 구현될 수도 있다
상기 서비스의 사용자는, 워크스테이션 또는 노트북 컴퓨터와 같은 장치에 액세스 가능한 인터넷을 구비한다. 일반적으로, 상기 장치상의 웹 브라우저를 서비스 제공자 도메인 또는 서브도메인과 관련된 URL에 접속시킴으로써, 사용자는 상기 서비스 제공자 구조에 액세스한다. 그러면, 사용자는 일반적인 방법, 예컨대 사용자네임 및 패스워드의 입력으로 관리 서비스를 인증한다. 상기 장치와 상기 서비스 제공자 구조 간의 연결은 SSL 등을 통해서 부호화될 수 있거나 또는 안전하게 될 수 있다. 일반적으로 루트가 정해진 인터넷을 통한 연결이 일반적임에도 불구하고, 사용자는 임의의 로컬 영역, 와이드 영역, 무선, 유선, 사설 또는 다른 전용 네트워크를 통해서 상기 서비스 제공자 구조에 연결될 수 있다. 도 1에 도시된 바와 같이, 상기 서비스 제공자 구조(100)는, IP 스위치(102), 하나 이상의 웹 서버 장치들(104)의 세트, 아나 이상의 어플리케이션 서버 장치들(106)의 세트, 데이터베이스 관리 시스템(108), 및 하나 이상의 운영(administration) 서버 장치들(110)의 세트를 포함한다. 대표적인 웹 서버 장치(104)는, 상품 하드웨어(commodity hardware)(예컨대, 인텔 기반), 리눅스와 같은 운영 시스템, 및 아파치(Apache) 2.x와 같은 웹 서버를 포함한다. 대표적인 어플리케이션 서버 장치(106)는 상품 하 드웨어, 리눅스 및 어플리케이션 서버를 포함한다. 상기 데이터베이스 관리 서버(108)는 오라클(Oracle) 데이터베이스 관리 패키지로 구현될 수 있다. 대량의 사용자 환경에서는, 몇몇의 웹 서버 장치들, 몇몇의 어플리케이션 서버 장치들, 및 복수 개의 운영 서버 장치들이 있을 수 있다. 구체적으로 도시하지는 않았지만, 상기 구조는 네임 서버, 다른 로드 발랜싱 기구들, 다른 스위치들, 네트워크 부착 저장 장치 등을 포함할 수 있다. 일반적으로 상기 시스템은, 제3자 데이터베이스와 같은 외부 데이터 자원들과의 연결을 포함할 것이다. 일반적으로 상기 시스템 내의 각 장치는, 입력 및 출력 장치뿐만 아니라 충분한 디스크 및 메모리를 포함한다. 일반적으로 상기 웹 서버(104)는 유입되는 사건 엔티티 제공 요청을 취급하고, 이하 기술되고 상세하게 설명될 디스플레이 인터페이스로 이출한다. 상기 어플리케이션 서브(106)는 상기 데이터를 관리하고 상기 플랫폼의 기능들을 이용한다. 상기 운영 서버들(110)은 백 엔드 어카운팅(back-end accounting) 및 보고 기능들을 취급한다. 본 명세서에서 기술하는 특정 소프트웨어 및 소프트웨어 구현의 상세한 설명은 단지 설명적인 목적을 위한 것이며, 본 발명의 범위를 제한하려는 의도는 아니다.
도 2는 로깅 서비스의 기초적인 운영을 도시한다. 이 예에서, 어플리케이션 인스턴스들(200a, 200b)는, 본 발명에 따른 사용 모니터링 API로 설치된다. 상기 사용 모니터링 API는 때때로 원격 노드로 불린다. 따라서, 어플리케이션 인스턴스(200a)는 원격 노드(202a)와 관련이 있고, 어플리케이션 인스턴스(200b)는 원격 노드(202b)와 관련이 있다. 물론, 배치된 많은 수의 어플리케이션이 설치되고 추적 되는 크기 조정 가능한 분산 로깅 서비스를 제공하기 위해 본 발명에 설계되기 때문에, 두 인스턴스들의 사용은 단지 예시적인 것일 뿐이다. 운영상에서, 상기 원격 노드(202a)는 사용 데이터 세트(204a)를 생성하고, 원격 노드(202b)는 사용 데이터 세트(204b)를 생성한다. 상기 사용 데이터는 매우 효율적인 방법으로(이하 후술함) 중앙 서버(또는 서버의 세트)로 전송되며, 상기 중앙 서버에서 상기 데이터 세트들이 결집되고(도면 번호 206) 분석 및 보고 엔진(208) 내에서 프로세스된다.
당업자가 본 발명이 그러한 사용에 제한되지 않음을 인정함에 불구하고, 소프트웨어 개발 및 테스트의 관점에서 본 발명은 유용하다. 도 3은 대표적인 비지니스 케이스를 도시한다. 이 예에서, 웹 어플리케이션 개발자(300)는, 상기 웹 어플리케이션 또는 개발중인 리치 인터넷 어플리케이션에 상기 사용 모니터링 API를 첨가한다. 그러면, 그렇게 설치된 상기 어플리케이션은 웹 사이트 또는 다른 퍼블리싱 서버(302)로부터 이용가능하게 된다. 최종 사용자(304)는 사용 데이터를 생성하도록, 사이트를 순항(navigate)하고 상기 어플리케이션을 다운로드하여 상호작용한다. 이 데이터는 상기 로깅 서버(306)로 보내지고, 그러면 그러한 데이터를 상기 호스트 서비스 데이터베이스(308)에 업로드한다. 그러면, 관리자(310)(또는 개발자(300))는 상기 호스트 서비스 웹 사이트(312)에 접속하여 상기 로그 데이터에 억세스한다.
도 4는 상기 호스트 서비스의 운영을 보다 구체적으로 설명한다. 이 예에서, 많은 수의 최종 사용자들(400a-400n)은 상기 어플리케이션을 사용하여, 상기 로깅 서버(402)로 제공되는 사용 데이터 세트들을 생성한다. 상기 로깅 서버(402)는 하 나 이상의 서버를 포함할 수 있다. 상기 로깅 서버(402)는 방화벽(410)을 통해 주기적으로 상기 데이터 세트들을 업로드하고, 데이터베이스(406)에 프로세스 데이터를 저장한다. 상기 호스트 서비스의 사용자(405)는 서버(412)를 통해 상기 서비스에 접속하고, 서버(414)를 통해 사용 보고를 검시하고, 상기 방화벽(410)을 통해서 상기 사용 데이터에 억세스한다.
바람직하게, 상기 테스트중인 어플리케이션은 다음 중 하나이다 : 어플리케이션 소프트웨어(자바, .Net, C++, C# 등으로 만들어진 프로그램과 같은), 스크립트 가능형(script-enabled)의 웹 어플리케이션(자바스트립트, 액션스크립트 등을 포함하는 웹 페이지와 같은), 또는 리치 인터넷 어플리케이션(RIA)(예컨대, 플래시, AJAX-인에이블 등). 개발 프로세스 동안에, 사용 모니터링 API는 상기 어플리케이션에 통합되고, 상기 어플리케이션은 배치된다. 사용자가 상기 어플리케이션과 상호 작용할 때, 로그 파일이 일반적으로 두 가지 방식으로 생성된다. 만약 상기 어플리케이션이 로컬 파일 시스템을 라이트할 수 있으면(사용자의 장치에서), 사용 정보는 로그 파일에 결집되어 상기 배치된 어플리케이션으로 향하고, 배치 방식으로 프로세싱하는 업로드 서버로 디스패치된다. 만약 상기 어플리케이션이 사용자 장치의 로컬 파일 시스템을 라이트할 수 없으면(예컨대, 그것이 웹 어플리케이션 또는 RIA이기 때문에), 상기 사용 정보는 바람직하게 저스트인타임 베이시스(just-in-time basis)에 원격 로깅 서버로 보내지고, 그러면 상기 로그 파일은 상기 로깅 서버에서 발생된다. 이것은 웹 브라우저 기반의 로깅을 위해 사용되는 기술이다. 바람직하게, http URL 파라미터들을 통해서 상기 데이터를 상기 로깅 서버로 전송 함으로써 그러한 로깅이 수행되고, 그러면 상기 데이터를 로그 파일로 번역한다. 바람직하게, 두 경우에서 추적된 상기 사용 정보는, 배치된 어플리케이션 인스턴스들의 플랫폼, 위치, 및 개수에 무관한, 어플리케이션의 "특징(features)", "결함(faults)", 및 "실패(failures)"를 포함한다. 상기 "특징" 데이터는 어떠한 특징들이 사용되고, 언제, 무슨 순서로, 누구에 의해, 어떠한 플랫폼에서, 및 어떠한 최종 사용자 환경과 같은 정보의 집합을 지칭한다. 일반적으로, 특징들은 최종 사용자들에게 노출된다. 일반적으로 상기 "결함" 데이터는, 어떠한 특징이 프로그램 에러(예컨대, 예외)를 일으키는지를 지칭한다. 상기 "실패" 데이터는, 어떤 특징이 성공적으로 완료하지 못하는 것, 예컨대 데이터가 부정확한 포맷으로 필드에 엔트리하는 것을 식별한다.
따라서, 본 발명의 일 실시예에 따르면, 호스트 서비스의 사용자는 추적 모듈들로서 베타 테스트의 프로세스뿐만 아니라 개발중인 어플리케이션을 설치하여, 베타 소비자들을 좀더 이해시키도록 한다. 바람직하게, 상기한 바와 같이 상기 "추적 모듈들"은 추적될 소프트웨어 어플리케이션에 실장된다(또는 그렇지않으면 관련된다). 사용 데이터는 경량 독점 방식으로 결집 및 보고 서버로 반송된다.
이하는, 어플리케이션이 최종 사용자 장치 로컬 파일 시스템에 로그 파일을 라이트할 수 있는 실시예에 대해서 추가적인 상세한 설명을 제공한다. 이 실시예에서, 상기 호스트 서비스 플랫폼은, 이하 기술할 다수의 구성요소들을 통해서 상기 최종 사용자로부터 데이터를 수집한다. 제1 요소는 상기 원격 노드이며, 특징 추적 및 구성 정보를 수집하는 책임이 있다. 제2 요소는 상기 서버이며, 상기 원격 노드 의 결과들을 받아서 이를 다른 원격 노드들로부터 수집된 데이터와 결합한다. 이러한 두 요소들은 본 발명의 사용자로 하여금, 많은 동시(simultaneous) 노드들로부터 특징 추적 및 구성 정보를 수집할 수 있게 한다. 또한, 상기 원격 노드가 가져야 할 3가지의 중요한 목표들이 있다. 첫번째는 통합되기 쉬워야 한다는 것이다. 두번째는 빠르게 구동되어야 한다는 것이다. 세번째는 정보의 전달이 빠르고, 어플리케이션의 보통 수행과 동일해야 한다는 것이다. 각 특징당 부가될 오직 하나의 라인의 코드만을 필요로 함으로써 통합이 간단하게 수행될 수 있다. 이러한 한 라인의 코드 및 그것의 결과 호출들이 각 특징 호출 당 어플리케이션으로 오직 총 수 밀리초만을 발생시키기 때문에, 어플리케이션을 빠르게 운영시킴으로써 상기 두 번째 목표는 만족될 수 있다. 상기 로그 파일 형식은 최악의 조건일지라도 상기 파일이 항상 매우 작을 것임을 보장하고, 매우 빠른 전송 시간 및 적은 CPU 이용을 이끌며, 따라서 전송이 진행중인 동안에 사용자의 어플리케이션이 충분하게 수행함을 보장하기 때문에, 상기 세번째 목표가 만족된다. 이하는 상기 원격 노드 및 그들의 모든 부분들을 기술하고, 다음으로 관련된 서버 요소들을 기술한다.
상기 원격 노드는, 주어진 어플리케이션의 하나의 인스턴스를 위한 특징 추적 및 구성 정보를 수집한다. 몇몇 사용자의 정의된 관점에서, 상기 원격 노드는 상기 서버 요소와 연결하고 일련의 로그 파일들을 디스패치하려고 시도한다. 상기 원격 요소는, 이러한 정보를 수집 및 전송하는 몇몇의 서브-요소들에 의존한다. 몇몇 이러한 요소들은 사용자가 특정 구현 작업들을 수행하기를 필요로 한다. 아래의 표1은 각 요소들을 기술한다.
요소 설명
메신저(Messenger) 사용자는 메신저를 호출하여 특징의 실행을 저장한다. 이러한 요소는 몇몇 이벤트들의 프로세싱을 수행하고 메시지 핸들러를 불러내어, 상기 메시지가 접속되어야 하는지 및 그것이 로그 파일에 디스패치되는 것이 적절한 것인지를 결정한다.
이벤트(Event) 운영중인 어플리케이션의 상태에 관한 흥미있는 정보를 포함하는 객체.
메세지핸들러(Message Handler) 사용자는, 메시지가 저장되어야하는지, 어디에 저장되는지, 언제 다양한 이벤트 저장 장소로 디스패치되어야하는지, 및 어디로 디스패치되어야하는지를 결정하는 요소를 정의한다.
로그 디스패처(Log Dispatcher) 원격 노드로 하여금 로그 파일들을 서버로 디스패치하는 것을 가능케 하는 요소.
로그 파일(Log File) 특징 및 구성 이벤트들의 저장 장소.
로그 라이터(Log Writer) 이벤트 객체들을 로그 파일에 저장하는 요소.
서버(Server) 파일 업로드 형식로의 억세스를 제공하는 임의의 HTTP 서버.
파일 업로드 형식(File Upload Form) 오직 원격 노드로부터 서버로 로그 파일을 전송하기 위해 사용되는, 특정하게 구성되고 네임붙여진 것.
임포트(Import) 유입되는 로그 파일들을 프로세스하고, 상기 로그파일의 데이터를 메인 비져블 메쥬어(Visible Measure)의 데이터베이스에 통합하는 서버 상의 요소.
이러한 요소들은 이하 기술될 것이다. 첫째로, 이하는 상기 원격 노드와 서버 간의 데이터 흐름을 대표적인 실시예로 기술한다. 그러면, 사용자가 특징 추적 정보를 수집할 수 있도록, 이러한 요소들을 어플리케이션에 통합하는 프로세스가 기술된다.
바람직하게, 원격 노드로부터 서버로의 단일 방향의 데이터 흐름 및 상기 서버는 상기 원격 노드와 통신하지 않는다. 도 5는 대표적인 프로세스 흐름을 설명한다. 데이터 전송 프로세스는 직선적(straightforward)이다. 상기 원격 노드는 디스패치 이벤트(500)를 기다리고, 이것은 원격 노드로 하여금 사용자 정의 URL과 연결되도록 한다. 단계 502에서, 상기 원격 노드는 로깅 서버와 연결하려고 시도한다. 단계 504의 테스트는 상기 원격 노드가 상기 서버에 연결될 수 있는지를 결정한다. 만약 연결될 수 있으면, 상기 원격 노드는 URL에 의해 특정되는 HTML 페이지의 HTML 형식으로 로그 파일들을 따르게 함으로써 모든 로그 파일들을 전송한다. 바람직하게, 그 다음에 상기 원격 노드는 디스패치된 로그 파일들을 성공적으로 삭제한다. 게다가, 바람직하게, 서버와의 연결이 이루어지지 않았으면, 상기 원격 노드는 사용자에 의해 정의된 일수(number of days) 동안 상기 로그 파일들을 저장한다. 또한, 바람직하게, 실패한 급속 이벤트 이후에는, 상기 원격 노드는 각 로그 파일의 데이터를 체크한다. 그 다음으로, 상기 원격 노드는 상기 최대 일수 이상의 파일들을 삭제한다.
이 실시예에서, 도 8에 기술된 코드 스니펫(snippet)에 도시된 바와 같이, 서버 사이드는 작동할 파일 전송을 위한 HTML 형식을 만족시킨다. 상기 원격 노드는 HTML 페이지를 파싱하고, 업로드 형식을 찾으며, 파일 필드를 설정하고, 정보를 제시한다. 업로드 형식을 찾는 단계는, 상기 시스템이 유입 파일을 받아들일 수 없는 형식로 파일 업로드를 임의적으로 수행하도록 시도하지 않도록 보장한다. 수신하고 나서, 상기 서버는 임포트 디렉토리로 유입 로그 파일을 라이트한다. 바람직하게, 서버의 로그 임포트 요소는 일정한 간격으로 이 디렉토리를 스캔한다. 임포트 요소는 새로운 로그 파일을 열고, 데이터베이스에 데이터를 추가한다.
바람직하게, 이용가능한 파일 업로드 형식을 만들기 위한 로깅 서버용의 두 가지 기초적인 구성들이 있다. 도 6은 이러한 구성들의 흐름도를 나타낸다. 첫번째 구성(타입 A)은 도 6의 상단에 도시된다. 이 구성에서, 서버는 이용 가능한 형식을 만들고, 원격 노드가 연결되기를 기다린다. 이것이 단계 600이다. 단계 602에서, 원격 노드가 연결을 시도하는지를 결정하기 위해 테스트가 수행된다. 연결이 수신되면, 단계 604에서 서버는 로드 파일을 승인하고, 단계 606에서 임포트 디렉토리에 로그 파일을 라이트한다. 단계 608에서, 새로운 로그 파일이 서비스 데이터베이스로 이입(import)된다. 단계 610에서, 데이터베이스는 업데이트되고, 그 후에 단계 612에서 로그 파일이 삭제된다. 그 다음으로 서버는 다른 업로드를 기다리는 상태로 반환한다. 일반적으로 두번째 구성(타입 B)은 엔터프라이즈 웹 사이트의 DMZ에 위치하는 로깅 서버로 구현된다. 이러한 구현에서, 임의의 HTTP 서버(613)는 파일 전송 형식을 제공하고, 단계 614의 원격 노드 연결을 기다린다. 원격 노드가 연결되면, 서버(613)는 단계 616의 업로드 형식 요청을 프로세스하고, 로컬 드라이브(618)에 로그 파일을 라이트하며(618), 단계 620에서 호스트 서비스와 관련된 로깅 서버(615)의 로그 임포트 디렉토리에 상기 파일을 복사한다. 로깅 서버(615)는 동시에 구동된다. 특히, 단계 622에서 로깅 서버(615)는 임포트 디렉토리를 스캔한다. 만약 단계 624의 테스트에 의해 지시되는 바와 같이 새로운 로그 파일이 존재하면, 단계 626에서 로그 파일은 이입되고, 단계 628에서 데이터베이스는 업데이트되며, 단계 630에서 로그 파일을 삭제된다. HTTP 서버는 회사의 웹 파이지들을 제공하는데 사용되는 것과 같은 현존하는 통합 HTTP 서버일 수 있기 때문에, 구성 B다 보다 안정적이다. 또한 구성 B는 중요한 로그 데이터가 외부로부터 액세스할 수 없다는 관점에서 좀더 안정적이다. 게다가, 통합 웹 사이트가 구현되어 동시에 많은 수의 사용자들을 취급하고, 실패 이벤트가 발생할 때 신속하게 백업 될 수 있도록 지속적으로 모니터되기 때문에, 두번째 구성이 좀더 신뢰성이 높다.
이 실시예에서, 일반적으로 소프트웨어 개발자는, 특징 및 구성 정보의 수집을 이용하는 일련의 단계를 수행한다. 특히, 이후의 단계들은, 로그 데이터를 생성하기 위해서 어떻게 개발자들이 어플리케이션을 설치하는지를 기술한다(이하 자바(Java)를 잘 알고 있는 것으로 가정함).
1. MessageHandler 클래스의 기원을 구현한다.
2. 일련의 Messenger.store(...) 방법들을 어플리케이션의 현존 코드에 부가한다. 각 부가는 주어진 특징의 엔트리 시점을 나타내는 코드의 순간에 수행되어야 한다.
3. HTTP 프록시 정보를 수집하고, 개발자의 어플리케이션에 의해 읽을 수 있는 구성 파일을 생성하며 이러한 정보를 MessageHandler에 전달할 수 있도록, 어플리케이션 설비 도구를 업데이트한다.
상기 각 단계들은 이하 상술할 것이다.
단계 1
MessageHandler는 자바 추상 클래스이다. 결과적으로, 본 발명에 따르면, 통합기는 어플리케이션에 특정한 클래스의 구체적인 구현을 얻는다. 이러한 메시지핸들러는 일련의 작업들을 수행하고, 이는 이하 기술한다.
대표적인 실시예에서, MessageHandler는 로그 파일들을 필터링하고 디스패치하는 책임이 있다. 일반적으로 클래스의 인스턴스는, 로그 파일을 생성하고 디스패치하는데 필요한 일련의 변수들을 설정하는 초기화 코드와 함께 시작한다. 일반적으로 로그 파일을 생성하는 것은, mycompany.com, 서비스 제공자의 서버에 의해 제공되는 특정 32 캐릭터 고유 식별자, 및 프로젝트 및 빌드네임과 같은 통합기의 도메인 네임을 필요로 한다. 상기 32 캐릭터 고유 식별자는 서버에 의해 제공되어 사용자 인터페이스를 통해서 또는 다른 임의의 편리한 수단을 통해서 사용자 작업으로 제공된다. 사용자가 특정 프로젝트를 위한 새로운 빌드를 생성할 때, 상기 식별자는 생성되고 디스플레이된다. 그러면, 사용자는 32 캐릭터 고유 식별자를 MessageHandler 클래스 구현에 복사한다. 32 캐릭터 식별자는, 로그 파일 데이터를 특정 프로젝트와 매치하고 서비스 제공자의 서버를 구축하는데 사용된다. 그러면, 로그 파일로부터의 리드 데이터는 서버의 데이터 저장 장소로 넣어진다. 또한, 바람직하게, 프로젝트 및 빌드 네임들은, 예컨대 개발자의 인쇄상의 에러에 기인한 32 캐릭터 식별자 실패시의 프로젝트 및 빌드에 상기 데이터를 매치하는데 사용된다. 바람직하게, MessageHalder의 디스패치 메커니즘은, 목적지 URL을 필요로 하고, 로그인네임, 패스워드, 프록시 서버 구성들과 같은 다른 선택적 아이템들을 포함할 수 있고, 로그 파일을 임포트 서버로 반송하는 프로세스를 스크립트하기 위한 추가적인 코드를 포함할 수 있다. MessageHanlder는 구성 데이터 수집 동안에 어플리케이션이 개시하고 중단할 때, 또는 특징이 수행된 이후에 로그 파일을 디스패치할 수 있다. 이러한 방법들의 개발자의 구현은 단순히 "참" 응답을 반환하고, MessageHandler는 자동적으로 모든(또는 몇몇 서브세트의) 로그 파일들을 시스템에 디스패치한다. "참" 응답을 획득하면, 일반적으로, 존재하거나 필요하면, 제1 개입 방화벽을 통과하고 URL 파라미터로 특정화된 서버에 연결되도록, 디스패쳐(dispatcher)는 프록시 정보를 사용한다. URL은 특정 로그인 정보를 필요로 할 수 있고, 또는 추가적인 스크립트를 노출할 수 있다. 이러한 관점에서, 상기 디스패쳐는 파일 업로드 형식을 얻기 위해서, 추가적인 로그인 정보 및 코드를 실행한다. 상기 디스패쳐는 이러한 형식을 통해서 로그 파일들을 보낸다.
MessageHandler 예들은 표 2에서 설명하는 방법들을 기술한다.
방법 설명
Constructor MessageHandler 인스턴스가 어플리케이션에 의해 첫째로 생성되었을때 호출된다.
HandleConfigMessage 첫번째 HandleMessage 호출에 앞서서 Messenger에 의해 호출된다. 사용자로 하여금 커스텀 구성 정보를 정의하도록 한다.
HandleMessage 특징이 수행될때면 언제나 Messenger에 의해 호출된다. 사용자 코드가 참으로 반환될 수 있고, 이는 Messenger가 로그 파일을 디스패치하도록 한다. 반환값에 상관없이, 메신저는 이벤트 객체를 검사하여 이벤트가 프로세스되었는지를 결정한다. 이벤트가 프로세스되지 않았으면, 이벤트는 저장되지 않을 것이다.
Shutdown Messenger를 통한 자바 셧 다운 후크 메커니즘을 통해서 어플리케이션이 셧 다운될때 호출된다. 사용자 코드는 참을 반환할 수 있고, 이것은 Messenger가 로그 파일들을 디스패치하도록 한다.
Startup HandleCongifMessage ()HandleMessage () 방법을 불러내기 이전에, Messenger에 의한 첫번째 이벤트의 프로세싱 동안에 호출된다. 사용자 코드는 참 값을 반환할 수 있고, 이는 Messenger가 로그 파일들을 디스패치하도록 한다.
일반적으로, Constructor 방법은, 어플리케이션의 초기화와 관련된 많은 중요한 정보를 제공한다. 도 10의 코드 블록은 MessageHandler 추상 클래스이다. 다양한 getXXXsetXXX 방법들은 사용자로 하여금 중요 구성 정보를 설정하도록 해준다.
기술된 구조는 사용자로 하여금 많은 요소들을 정의하도록 해주고, 추가적으로 데이터를 전송하는 어플리케이션의 능력을 강화시키도록 해준다. 아래의 표 3은 다양한 방법들과 그들이 어떤 작동을 수행하는지를 기술한다(별표가 있는 방법들은 선택사항이다).
방법 설명
addFormElement * 사용자로 하여금 추가적인 형식 요소 및 값들을 설정하도록 해준다. 추가적인 사용자 네임 및 패스워드 필드들을 필요로 할 수 있는 좀 더 복잡한 파일 업로드 메커니즘을 구축하는데 유용하다.
areMessagesEnabled 메시지 프로세싱이 허용되면 참을 반환한다.
enableMessages * 사용자는 메시지 프로세싱을 개시 및 종료할 수 있다. 메시지 프로세싱을 종료하는 것은 메시지가 기록되지 않을 것이고, 로그 파일들이 전송될 수 없음을 의미한다.
getBuildName 스트링의 형식을 갖는 어플리케이션의 특정 빌드의 네임.
getFormElements addFormElement 방법으로의 호출에 의해 특정되는 모든 커스텀 형식 요소들의 HushMap. 디폴트 LogDispatcher에 의해 호출된다.
getLogDispatcher 로그 파일들을 서버로 반송할 LogDispatcher의 인스턴스. 사용자는 디폴트 LogDispatcher를 커스텀 구현과 대체할 선택권이 있다. 이러한 커스텀 구현은 사용자가 원하는 임의의 통신 메커니즘을 지원할 수 있다.
getLoginName 서버의 형식은 기초 HTTP 인증 구성 이후에 있을 수 있다. 멀티 페이지 인증 구성을 사용할 때, 인증된 사용자의 네임을 획득하기 위해서 커스텀 LogDispatcher는 이 방법을 호출한다.
getLoginPassword 멀티 페이지 인증 구성을 사용할 때, 인증된 사용자의 패스워드를 얻기 위해서 커스텀 LogDispatcher는 이 방법을 호출한다. getLoginUser() 방법은 이 방법이 작용하도록 사용자 네임을 반환해야 한다.
getLoginUrl 멀티 페이지 인증 구성을 사용할 때, 파일 업로드 형식을 포함하는 HTML 페이지를 위한 URL을 얻기 위해서, 커스텀 LogDispatcher는 이 방법을 호출한다.
getMaximumFileAge 원격 노드 요소를 포함하는 어플리케이션을 구동시키는 시스템에 파일들이 얼마나 오래 저장될 수 있는지를 결정하기 위해서, Messenger에 의해서 호출된다.
getProjectName 스트링의 형식을 갖는 어플리케이션의 특정 프로젝트의 네임.
getProxyServerHost 원격 노드를 구동시키는 어플리케이션의 네임으로서, 동일한 도메인에서의 프록시 서버의 네임을 얻기 위해서, 디폴트 LogDispatcher는 이 방법을 호출한다.
getProxyServerPort 원격 노드를 구동시키는 어플리케이션의 포트로서, 동일한 도메인에서의 프록시 서버의 포트를 얻기 위해서, 디폴트 LogDispatcher는 이 방법을 호출한다.
getProxyUserName 원격 노드를 구동시키는 어플리케이션의 네임으로서, 동일한 도메인에서의 프록시 서버를 인증하기 위한 사용자의 네임을 얻기 위해서, 디폴트 LogDispatcher는 이 방법을 호출한다.
getProxyUserPassword 원격 노드를 구동시키는 어플리케이션의 패스워드로서, 동일한 도메인에서의 프록시 서버를 인증하기 위한 사용자의 패스워드를 얻기 위해서, 디폴트 LogDispatcher는 이 방법을 호출한다.
getUrl 서버에의 파일 업로그 형식을 포함하는 html 페이지의 URL을 얻기 위해서, 디폴트 LogDispatcher에 의해 호출된다.
getWorkDirectory Messenger가 로그 파일들을 디스패치하기 전에 라이트 해야 하는 위치로 반환한다.
setBuildName 빌드의 네임을 설정한다. 커스터마이즈된 MessageHandler의 초기화동안에 설정한다.
setLogDispatcher * 커스터마이즈된 LogDispatcher를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setLoginName * 커스터마이즈된 LogDispatcher에 의해 사용되는 로그인 네임을 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setLoginPassword * 커스터마이즈된 LogDispatcher에 의해 사용되는 로그인 패스워드를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setLoginUrl * 커스터마이즈된 LogDispatcher에 의해 사용되는 로그인 URL을 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setMaximumFileAge * 주어진 로그 파일을 유지하는 최대 일수를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setProjectName 프로젝트 네임을 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setProxyServerHost * 프록시 서버 호스트를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setProxyServerPort * 프록시 서버 포트를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setProxyUserName * 프록시 인증을 위한 사용자 네임을 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setProxyUserPassword * 프록시 서버에 의해 인증되는 사용자를 위한 패스워드를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setUrl 파일 업로드 형식을 포함하는 URL을 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setWorkDirectory Messenger가 로그 파일들을 라이트할 디렉토리를 설정한다. 커스터마이즈된 MessageHandler의 초기화 동안에 설정한다.
setDomain 로깅 코드를 사용하고 있는 어플리케이션을 생성하는 회사의 도메인을 나타내는 고유 네임을 위한 설정 방법. 이 값은 로그 파일을 프로젝트에 매치하는데 사용된다.
getDomain 도메인 네임의 현재 값을 획득하기 위한 설정 방법.
setKey 로그 파일 데이터를 결합시키기 위한 프로젝트 및 빌드를 식별하는 고유 32 캐릭터 스트링을 위한 설정 기능.
getKey 로그 파일 데이터를 결합시키기 위한 프로젝트 및 빌드를 식별하는 고유 32 캐릭터 스트링을 위한 획득 기능.
MessengerLogDispatcher는 이러한 방법들을 리드하여, 로그 파일을 지속시켜 전송한다.
단계 2
Messenger . storefeature (...) 방법은 특징 데이터를 추적한다. 그것은 두 파라미터를 취한다. 첫번째는 커스터마이즈된 메시지 핸들러의 인스턴스이다. 두번째는 특징의 이름을 포함하는 스트링이다. 특징의 실행 개수에 대한 결과 정보는 그 특징의 값을 나타낸다. 물론, 많이 사용되는 특징은 드물게 사용하거나 전혀 사용하지 않는 특징보다 더 많은 값을 갖는다.
대표적인 실시예에서, Messenger . storefeature (...) 방법은 어플리케이션 내에서 각 특징 엔트리 시점에 부가된다.
단계 3
원격적인 구동 어플리케이션은, 투명 또는 인증 프록시 서버의 뒤에 있을 수 있다. 사용자의 어플리케이션 설치 요소는 이것을 찾아야하고, 필요하면 프록시 서버의 어드레스, 포트, 사용자 네임, 및 패스워드를 수집해야하며, 다음으로 커스텀 MessageHandler 인스턴스가 리드할 수 있는 구성 파일에 이 정보를 라이트해야 한다. 그 다음으로, MessageHandler는 구성 정보로 setProxyServerHost (), setProxyServerPort(...), setProxyUserName (...), setProxyUserPassword 방법들을 호출해야 한다.
이러한 통합 단계들은 사용자의 어플리케이션이 특징-추적 정보를 수집하여 전송하는 것을 가능하게 해준다. 도 7은 사용자가 추적된 특징을 수행할 때 발생하는 대표적인 흐름도를 도시한다. 도 7에 도시된 바와 같이, 단계 700에서 사용자가 특징을 수행할 때 루틴(routine)이 시작된다. 단계 702에서, 특징 추적 코드가 실행된다. 단계 704에서, 테스트가 행해져 어플리케이션 구동을 위한 첫번째 특징 수행인지를 결정한다. 만약 그렇다면, 단계 706에서 MessageHandler 개시 방법이 호출된다. 단계 708에서, 테스트가 행해져 로그 파일들이 디스패치되어야 하는지를 결정한다. 만약 그렇지 않다면, 단계 710에서 MessageHandler의 핸들 구성 메시지 방법이 호출된다. 그러면, 루틴은 단계 712에서 MessageHandler의 핸들 메시지 방법을 호출하고, 상기 단계는 단계 714에서 테스트의 결과가 양(+)일때 도달된다. 단계 714는 디스패치가 개시 이벤트에 의한 것인지를 결정한다. 단계 712 이후에, 단계 716에서 특징 분석이 업데이트된다. 다음으로 단계 718에서 테스트가 수행되어 특징이로그 파일에 라이트되어야 하는지를 결정한다. 만약 그렇다면, 단계 720에서 로그 파일은 라이트된다. 단계 720 이후에, 또는 단계 718의 결과가 음(-)이면, 단계 722의 테스트가 수행되어 로그 파일들이 디스패치되어야 하는지를 결정한다. 만약 그렇다면, 단계 724에서 원격 노드는 모든 로그 파일들을 수집하고, 단계 726에서 원격 서버와 연결하며, 단계 728에서 테스트를 수행하여 서버와 연결될 수 있는지를 결정한다. 만약 그렇다면, 단계 730에서 테스트가 수행되어 원격 서버가 파일 업로드 형식을 갖는지를 결정한다. 만약 그렇지 않거나 또는 단계 728의 테스트 결과가 음(-)이라면, 단계 734의 테스트가 수행되어 파일이 사용자에 의해 정의된 최대 일수를 초과하였는지를 결정한다. 단계 730의 테스트 결과가 양(+)인 이후에는, 단계 732에서 파일이 업로드된다. 단계 732 이후에 또는 단계 734의 양(+) 결과 이후에, 단계 736에서 파일이 삭제되고, 단계 714에서 테스트로의 반환을 제어하여 프로세싱을 완료한다.
바람직하게, 로그 파일은, 특정하게 형식화된 일련의 이벤트들을 포함하는 이진 파일이다. 바람직하게, 파일은 특징 수행당 하나의 엔트리보다는 결집된 특징 정보를 포함하여, 파일이 종래의 로그 파일들보다 더 작은 것을 보장한다. 그러나, 결집된 특징 정보의 사용은 본 발명에 제한되지 않는다.
각 필드가 잘 정의되기 때문에, 형식이 데이터베이스에 아주 효율적으로 리드되어 통합될 수 있다. 종래의 로그 파일들은 한 라인씩 리드해야하고, 그러면 데이터는 텍스트 밖에서 파싱되어야 한다. 이것은 구현하기 어렵고, 결과적으로 에러가 발생하기 쉬우며, 부정확하게 수행된다. 상기 형식은 언사인드 바이트(unsigned byte)의 개수의 표현으로 기술된다. 후술하는 키는, JVM(Java Virtual Machine) 사항(Specification)에 의해 정의되는 명칭을 기술한다. 특히 개수에 뒤따르는 U는, 주어진 길이의 언사인드 8비트 바이트이다. U1은 단일의 언사인드 바이트이고 U4는 4 언사인드 바이트이다. []에 뒤따르는 U는 그것이 바이트 어레이임을 나타낸다. 다른 필드 네임을 둘러쌓는 A[]는 그 필드 네임이 어레이의 길이를 특정하는 것을 지칭한다.
바람직하게, 아래의 도 4에 기술된 바와 같은 이벤트 기반의 형식으로부터 각 이벤트 구성이 얻어진다.
필드 설명
Event_Type 각 이벤트는 이벤트와 관련된 숫자 타입을 갖는다. 이 타입 필드는 리더로 하여금 주어진 이벤트의 형식을 알 수 있도록 한다.
Event_Data_Length 이벤트의 데이터 부분의 길이.
Event_Data 이벤트 데이터 그 자체.
바람직하게, 모든 이벤트들은 이러한 하나의 형식으로부터 얻어진다. 바람직하게, 결과적으로 이벤트들은 Event _ TypeEvent _ Data _ Length로 시작하지만, Event_Data 섹션을 포함하지 않을 수 있다(일반적으로 이벤트들이 그들의 특정 구현들로 이러한 필드에 우선하기 때문에). 대표적인 실시예에서, 파일 형식은 Base_Event의 수집물이다.
특징 이벤트 타입은 일련의 특징 발동(invocation)을 나타낸다. 각각의 특징은 로그 파일에 하나 이상의 이벤트를 가질 수 있다. 종종 다양한 특징들을 위해서 로그 파일에는 많은 특징 이벤트들이 있다. 아래의 표 5는 필드들을 기술한다.
필드 설명
Feature_Name_Length 네임 필드의 길이.
Feature_Name 특징의 네임.
Executions 특징이 수행되는 때의 개수.
사용자 구성 이벤트 타입은 통합기에 의해서 생성되고, 부가적인 구성 정보의 임의의 양을 저장하도록 한다. 이하 표 6은 필드들을 기술한다.
필드 설명
Configuration_Entry_Name_Length 구성 엔트리 네임의 길이.
Configuration_Entry_Name 구성 엔트리 네임
Configuration_Entry_Value_Length 구성 값의 길이.
Configuration_Entry_Value 구성 엔트리의 값
이하는, 본 발명에 따라 로그 파일들이 프로세스되고 전송되는 바람직한 실시예에 관하여 좀더 상세하게 설명한다. 상기한 바와 같이, 로그 파일들은 소프트웨어 어플리케이션의 특징들, 결함들 및/또는 실패들을 추적하고, 그것들은 크기 조정 가능한 방법으로 고성능의 경량 프로세싱을 위한 매우 콤팩트한 공간으로 전송된다. 이 때문에, 본 발명에 따른 바람직한 로그 파일은 매우 효율적, 순차적, 상대적, 및 참조적이다. 적은 메시지, 바람직하게는 이진 파일(즉, XML 또는 인간이 읽을 수 있는 텍스트와 대조적으로)을 사용함으로써, 그리고 로그 파일 공간을 줄이기 위해 전체 개수들을 압축함으로써, 효율성이 얻어진다. 바람직하게, 모든 메시지들은 실제 발생된 순서대로 라이트된다. 바람직하게, 메시지들을 위한 타임스탬프는 제1 타임스탬프 메시지에 비례한다. 따라서, 예컨대 제1 메시지가 사건이 12:00에 발생하였음을 나타내고, 제2 메시지는 12:01에 발생하였음을 나타낸다. 제1 메시지는 UTC 에펙(epoch) 날짜로부터 밀리초로서 12:00를 저장하고, 제2 메시지는 제1 이벤트 및 제2 이벤트 사이의 밀리초들의 개수와 함께 저장된다. 다시 한번, 이러한 인코딩 기술은 로그 파일 공간을 감소시킨다. 어플리케이션에 관한 주어진 행동을 사용자가 언제 수행하는지에 대한 상세한 정보 또는 언제 어플리케이션이 특정 방식으로 응답하는지에 대한 상세한 정보를 제공하기 위해서, 보고 메커니즘은 시간 데이터를 이용한다. 특징 사용 정보가 시간당, 일당, 주당, 월당, 또는 임의의 시간 크기마다 검사될 수 있도록, 상기 보고 메커니즘은 상기 데이터를분할할 수 있다. 바람직하게, 몇몇 메시지들(예컨대, 특징 수행 메시지들), 참조 표준 특징 메시지들과 같이, 상기 로그 파일은 또한 참조적이다. 바람직하게, 게다가 특징 메시지는 특징 네임을 위한 인덱스를 생성하고, 특징 발동(invocation)의 개수를 산출하기 위해서 이 인덱스를 이용한다.
대표적인 실시예에서, 추적되는 몇몇의 서로 다른 시나리오들이 있다. 제1 시나리오에서는, 코드는 제1 특징 추출을 기록한다. 바람직하게, 이러한 경우에는, 특징 로깅 코드는 새로운 로그 파일을 열고, 로깅 코드는 이하의 메시지들을, 바람직하게는 프로젝트, 구성, 노드 타입 및 특징의 순서로 라이트한다. 제2 시나리오에서는, 특징 수행들 상의 뒤따름을 기록한다. 바람직하게, 이 시나리오에서, 로깅 코드는 특징 수행을 나타내는 오직 하나의 메시지만을 부가한다. 제3 시나리오에서, 로깅 코드는 특징 실패를 기록한다. 바람직하게, 이 시나리오에서, 로깅 코드는 특징 실패를 나타내는 오직 하나의 메시지만을 부가한다. 최종적으로, 마지막 시나리오에서는 로깅 코드가 특징 결함을 기록한다. 특징 결함을 나타내는 오직 하나의 메시지만이 생성된다. 관련된 로깅 명령문과 함게 샘플 로깅 코드가 표 9에서 기술된다.
바람직하게, 각 로그 파일은 일련의 메시지들로 만들어진다. 일반적으로 각각의 메시지는 몇몇 공통의 형식을 갖으며, 그러면 메시지 타입이 명확하게 된다. 이하는 예시적인 메시지 타입들이다:
■ NodeType Message - 배치된 소프트웨어 인스턴스의 타입
■ Project Message - 프로젝트 네임, 예컨대 추적되고 배치된 소프트웨어의 인스턴스의 네임
■ Feature Name - 추적되는 특징
■ Startup Message - 어플리케이션이 개시된 시간
■ Feature Execution Message - 수행되는 특징 및 그것이 언제 수행되는지
■ Config Message - 환경에 대한 정보 및 어플리케이션이 배치되는 구성
■ UserConfig Message - API의 사용자가 원하는 추가적인 구성 정보를 위한 플레이스홀더(예컨대, 어플리케이션이 설치되는 서버에 대한 더 많은 정보를 모은다)
■ Feature Failure Message - 특징 실패에 대한 정보(예컨대, 사용자가 부적절하게 형식화된 데이터를 기록하기 때문에 특징이 완료되지 못한다), 실패된 시간, 및 왜 실패하였는지에 대한 몇몇 정보
■ Feature Fault Message - 결함 발생에 대한 정보(예외), 결함이 발생된 시간, 및 왜 결함이 발생하였는지에 대한 몇몇 정보
■ Feature Reset Message - 최소의 데이터 크기를 차지하는 특징들을 내부적으로 식별하는 메커니즘, 매우 많은 수의 특징들의 경우의 특징 카운터를 재설정
■ Subnode User Message - 최종 사용자 장치의 구성 및 환경에 대한 정보(예컨대, 어떤 웹 브라우저를 사용하는지 등)
■ Subnode User Configuration - 최종 사용자의 구성에 대한 정보를 커스터마이즈하는 플레이스홀더
■ Subnode Feature Execution - 서버에서 수행되는 특징들과 대비하여, 최종 사용자의 구성에서 수행되는 특징들(웹 어플리케이션 서버와 대비하여 최종 사용자 클라이언트에서 수행되는 리치 인터넷 어플리케이션 또는 DHTML과 같은 상황에서의 클라이언트 프로세싱을 추적하는 것이 필요하다)
■ Subnode Failure Message - 최종 사용자 장치에서 발생하는 실패들
■ Subnode Fault Message - 최송 사용자 장치에서 발생하는 결함들, 예컨대 브라우저에 걸친 자바스크립트 런타임 에러들
■ Subnode Reset Message - Feature Reset Message와 함께, 그러나 최종 사용자 특징들을 위한 것은 아니다
■ Sub Type Message - 추가적인 정보를 추적하도록 증대되는 공간
■ Null Message - 좀더 쉽게 식별가능하도록 로그 파일 내에서 컬럼들을 정렬시키는 목적의 테스트
바람직하게, 로그 파일의 메시지들의 순서는 다음과 같다:
1. Project - 바람직하게는 각 로그 파일당 하나의 메시지만이 존재한다
2. Configuration - 바람직하게는 각 로그 파일당 하나의 메시지만이 존재할 수 있다
3. User Configuration - 0 또는 그 이상이 존재할 수 있다
4. Node Type - 바람직하게는 각 로그 파일당 하나의 메시지만이 존재할 수 있다
5. {Startup|Feature|Sub Node User} - 각 로그 파일당 하나 이상만이 존재할 수 있다
6. {Feature|Reature Execution|Reature Failure|Feature Fault|Reset|Sub Node User|Sub Node User Configuration|Sub Node Feature Execution|Sub Node Failure|Sub Node Fault|Sub Node Reset} - 0 또는 그 이상이 존재할 수 있다
아래 기술된 바와 같이, 데이터베이스 기록의 방식으로 로그 파일에 데이터가 저장된다.
● 메시지 형식은 "네임"이다 : 크기
- 타입(Type) : 1 바이트
- 타임 스탬프(Time Stamp) : 3 바이트
- 메시지 타입 스페시픽 데이터(Message Type Specific Data) : 예컨대 Feature Execution Message 또는 Subnode User Configuration 등의 메시지 타입에 따른 가변적 길이
특징 추적 시스템을 위해 고성능의 목적을 유지하는 동안 원하는 정보를 저장하기 위해서, 바람직하게 로그 파일들은 이하 상세히 설명할 이진 파일 형식을 이용한다. 도 10은 대표적인 파일 형식을 설명한다(바이트가 16진법으로 표현되었음).
이하는, 이진 파일 형식 특히, 다수를 받아서 이를 가능한 최소의 바이트수로 압축시키는 이진 파일 형식을 발생시키는 인코딩 방법을 기술한다. 가장 작은 음이 아닌 숫자인 0을 나타내는 베이스값으로 버퍼를 초기화함으로써 상기 방법이 시작된다. 버퍼 내의 각 바이트의 최상위비트(MSB)가 지정되어, 바이트가 숫자의 일 부분인지 또는 숫자의 마지막인지를 나타낸다. 최상위비트가 지시자임에 반해, 이것은 바이트의 오직 7비트가 실질적으로 숫자 값을 포함함을 의미한다. 그러면, 인코딩 프로세스가 진행되고, 버퍼에 걸쳐 8로부터 7비트로 숫자를 해독하고 비트 7 공간을 오른쪽으로 시프트한다. 숫자의 MSB 부분은, MSB를 1로 설정하여 버퍼의 각 바이트 내에서 인코딩된다. 숫자의 최종 비트는 MSB에서 0으로 인코딩된다. 숫자를 인코딩하는 것은, 버퍼의 MSB 비트가 1로 설정되었는지를 검사하는 프로세스이다. 만약 그렇다면, 루틴은 7비트를 리드하고, 다음으로 7비트를 위한 좌측 값을 32 또는 64비트 데이터 타입과 같은 타겟 데이터 타입으로 시프트한다. MSB가 0으로 설정되었을 때, 루틴은 남아있는 7비트를 리드하고, 동일한 시프트 연산을 수행하며, 리드 프로세스를 종료한다. 그 결과는 인코더를 위한 입력으로서 사용되는 숫자이다.
따라서, 본 발명의 실시예에 따르면, 데이터 타입은 가장 적은 필수적인 비트 수에 적합하도록 압축되는 전체 수를 나타낸다. 바람직하게, 일련의 바이트들에 걸쳐서 숫자들을 해독함으로써 구성이 수행된다. 첫번째의 N 바이트는 10xx xxxx로 설정된 최상위비트(MSB)를 가지며, 여기서 x는 실제 숫자를 나타내는 비트이다. 마지막 바이트는 0xxx xxx로 설정된 MSB를 갖는다. 상기 구성이 어떻게 작용하는지는 인스턴스에 의해서 가장 잘 설명된다.
예컨대, 숫자 1은 본 발명의 구성에 따라 0000 0001로서 저장된다. 일반적인 인코딩은 4바이트를 차지하는 0000 0000 0000 0000 0000 0000 0000 0001이지만, 상기한 바와 같이 본 발명의 구성에서는 단지 1 바이트만을 이용한다. 또 다른 예로서, 숫자 1,000은 1000 0111 0110 1000으로서 저장된다. 일반적인 인코딩은 4바이트를 차지하는 0000 0000 0000 0000 0000 0000 1110 1000임에 반해, 본 발명의 구성에서는 단지 2바이트만을 이용한다. 숫자 100,000은 1000 0110 1000 1101 0010 0000으로 저장된다. 일반적인 인코딩은 4바이트를 차지하는 0000 0000 0000 0001 1000 0110 1010 0000이지만, 본 발명에 따른 구성은 3바이트를 이용한다. 이 기술은 실질적으로 특히 인간이 읽을 수 있는(예컨대, XML) 또는 종래의 이진 숫자(4 바이트) 인코딩과 비교하여 로그 파일의 크기를 감소시킨다.
상기한 로그 파일 형식 및 압축 데이터 타입은 시스템으로 하여금, 최종 사용자를 위해 투명한 고성능 방식으로 특징들, 실패들 및 결함들에 관한 매우 진보된 소프트웨어 어플리케이션 사용 데이터를 추적하도록 한다. 대부분 숫자인 로그 데이터의 대부분은 디스크 대표물로부터 인메모리(in-memory) 대표물로 직접적으로 매핑된다. 그 결과, 상기 데이터는 매우 콤팩트하고 매우 효율적으로 로드되어 전송될 수 있다. 게다가, 데이터의 위치는 매우 명확하고 정돈되었으며, 이는 로그 파일의 전체 크기의 감소를 촉진시킨다. 따라서, 예시적인 실시예에서, 로그 파일은 일련의 메시지들을 포함한다. 각 메시지는 특징 수행 또는 실패와 같은 몇몇의 흥미있는 이벤트를 나타낸다. 바람직하게, 메시지들은 특정 형식들 및 필드 길이로서 형식화된다. 바람직하게, 가변 길이 필드들은 뒤따르는 필드의 길이를 나타내는 필드를 앞에 붙인다. 바람직하게, 숫자 필드는 가변 길이이지만, 상기 기술한 데이터 타입을 이용한다. 상기한 바와 같이, 인코딩 구성은 이진 필드 내에 숫자를 저장하도록 한다.
상기 언급한 바와 같이, 본 발명에서 기술하는 하드웨어 및 소프트웨어 시스템은 단지 설명적인 것이다. 일반적으로 본 발명은 소프트웨어, 하나 이상의 장치들에서 실시될 수 있다. 일반적으로, 장치는 상품 하드웨어 및 소프트웨어, 저장 장치(예컨대, 디스크, 디스크어레이 등), 및 메모리(RAM, ROM 등)를 포함한다. 네트워크에 사용되는 특정 장치들은 본 발명에 제한되지 않는다. 주어진 장치는, 보통의 방식으로 네트워크에 장치를 연결하는 네트워크 인터페이스 및 소프트웨어를 포함한다. 도 1에 도시한 바와 같이, 하나 이상의 네트워크와 연결되거나 연결 가능한 장치들의 세트를 이용하는 관리 서비스(예컨대, ASP 모델에서)로서 본 발명이 구현될 수 있다. 보다 일반적으로, 상기 언급한 진보적인 기능들을 촉진시키거나 또는 제공하는 하나 이상의 연산 관련 엔티티(시스템들, 장치들, 프로세스들, 프로그램들, 라이브러리들, 기능들 등)들을 이용하여, 연산자에 의해 상기 서비스가 제공된다. 일반적인 실시예에서, 상기 서비스는 하나 이상의 컴퓨터 세트를 포함한다. 대표적인 장치가, 상품(예컨대, 펜티엄-클래스) 하드웨어, 운영 시스템(예컨대, 리눅스, 윈도우즈, OS-X 등), 어플리케이션 런타임 환경(예컨대, 자바, .ASP), 및 어플리케이션들 또는 프로세스들의 집합을 구동시키는 네트워크 기반의 서버이며, 주어진 시스템 또는 서브시스템의 기능을 제공한다. 상기한 바와 같이, 상기 서비스는 독립적인 서버에서 또는 분산 장치들의 세트에 걸쳐 구현될 수 있다.일반적으로, 서버는, 원하는 구현 환경에 따라, 공개적으로 라우팅가능한 인터넷, 통합 인트라넷, 사설 네트워크, 또는 이들의 임의의 조합에 연결된다.
호스트 서비스는, 효율적으로 크기 조정하도록 설계된 멀티서버 클러스터 환경에서 구현될 수 있다. 각 서버는 제1 및 제2의 일련의 작업들로 지명될 수 있다. 바람직하게, 하나의 서버는 마스터 서버가 되도록 동적으로 설정되고, 서버는 제2 작업이 모든 서버들에 의해 수행되어야 하는지를 결정한다. 모든 서버는 데이터베이스 내의 그들의 존재를 업데이트하고, 서버들이 협력하여 어떠한 서버가 마스터가 되는지를 결정한다. 클러스터의 서버들은 마스터 서버에 의해서 작업들(예컨대, 로그 임포트 및 이벤트 프로세싱)을 할당받는다.
본 발명을 기술하였으며, 이하는 본 발명에서 청구하는 것이다.

Claims (18)

  1. 각각 로그 파일을 생성하도록 설치된 어플리케이션 인스턴스들의 세트로서 배치된 어플리케이션을 추적하는 방법으로서,
    주어진 로그 파일이 어플리케이션 특징 수행들, 실패들(failures) 및 결함들(faults)의 세트와 관련된 데이터를 포함하고, 상기 어플리케이션 인스턴스들의 세트로부터의 상기 로그 파일들이 수신되는 웹 기반의 호스트 서비스를 제공하는 단계;
    상기 로그 파일들을 결집(aggregate)시키는 단계; 및
    허용된 엔티티를 상기 결집된 로그 파일들에 액세스하여 조사(view)할 수 있도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 어플리케이션은, 서버 기반의 어플리케이션, 웹 기반의 어플리케이션, 및 리치 인터넷 어플리케이션 중 어느 하나인 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 로그 파일들은 http 전송을 통해서 상기 웹 기반의 호스트 서비스에서 수신되는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 로그 파일 내의 주어진 정보는 콤팩트한 데이터 구조로 인코딩되어 상기 로그 파일의 크기를 감소시키는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 로그 파일 데이터는 상기 어플리케이션 특징 수행들, 실패들 및 결함들과 관련된 메시지들의 세트를 포함하고, 상기 메시지들의 세트는 상기 어플리케이션 특징 수행들, 실패들 및 결함들의 순차적 순서로 라이트되는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 메시지들 세트의 적어도 제1 및 제2 메시지들 각각은 타임스팸프들을 포함하고, 상기 제2 메시지의 타임스탬프는 상기 제1 메시지에서의 타임스탬프의 기능인 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 허용된 엔티티는 상기 어플리케이션의 제공자, 및 제3자 중 어느 하나인 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 어플리케이션 인스턴스들은 공용 네트워크에 걸쳐 배치되고, 상기 로그 파일들은 상기 공용 네트워크를 통해서 위치하는 최종 사용자들의 세트로부터 수신되는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 로그 파일은 최종 사용자 장치에서 발생하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 로그 파일은 상기 웹 기반의 호스트 서비스와 관련된 게이트웨이 서버에서 발생하는 것을 특징으로 하는 방법.
  11. 웹 어플리케이션이 로컬 최종 사용자 웹 브라우저 환경 내에서 사용될 때, 광역 네트워크에 걸쳐 배치되는 상기 웹 어플리케이션을 추적하는 방법에 있어서,
    각각의 로컬 최종 사용자 웹 브라우저 환경 내에서 상기 웹 어플리케이션의 시도된 사용으로부터 발생된 주어진 특징 정보가 수신되는 웹 기반의 호스트 서비스를 제공하는 단계;
    상기 주어진 특징 정보를 결집시키는 단계; 및
    허용된 엔티티를 상기 결집된 특징 정보에 액세스하여 조사할 수 있도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 웹 어플리케이션은, 브라우저를 강화한 스크립트, 및 리치 인터넷 어플리케이션 중 어느 하나인 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    상기 주어진 특징 정보는 http 전송을 통해서 상기 웹 기반의 호스트 서비스에서 수신되는 것을 특징으로 하는 방법.
  14. 제11항에 있어서,
    상기 주어진 특징 정보는 콤팩트한 데이터 구조로 인코딩되어 상기 주어진 특징 정보의 크기를 감소시키는 것을 특징으로 하는 방법.
  15. 제11항에 있어서,
    상기 주어진 특징 정보는, 특징 수행, 특징 실패, 및 특징 결함 중 어느 하나인 것을 특징으로 하는 방법.
  16. 제11항에 있어서,
    상기 허용된 엔티티는, 상기 어플리케이션의 제공자, 및 제3자 중 어느 하나인 것을 특징으로 하는 방법.
  17. 제1항의 단계들을 수행하는, 컴퓨터 수행 가능한 명령어들을 포함하는 컴퓨터 판독 가능한 수단.
  18. 제1항의 단계들을 수행하는, 컴퓨터 수행 가능한 명령어들을 포함하는 컴퓨터 판독 가능한 수단과 함께, 프로세서를 포함하는 서버.
KR1020087003403A 2005-07-12 2006-07-07 동적 어플리케이션 사용 정보의 분산 캡쳐 및 결집체 KR101300360B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US69856705P 2005-07-12 2005-07-12
US60/698,567 2005-07-12
US11/481,530 2006-07-06
US11/481,530 US7356590B2 (en) 2005-07-12 2006-07-06 Distributed capture and aggregation of dynamic application usage information
PCT/US2006/026337 WO2007008590A2 (en) 2005-07-12 2006-07-07 Distributed capture and aggregation of dynamic application usage information

Publications (2)

Publication Number Publication Date
KR20080052560A true KR20080052560A (ko) 2008-06-11
KR101300360B1 KR101300360B1 (ko) 2013-08-28

Family

ID=37637743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003403A KR101300360B1 (ko) 2005-07-12 2006-07-07 동적 어플리케이션 사용 정보의 분산 캡쳐 및 결집체

Country Status (7)

Country Link
US (3) US7356590B2 (ko)
EP (1) EP1907941A4 (ko)
JP (1) JP5354776B2 (ko)
KR (1) KR101300360B1 (ko)
CN (1) CN101371245B (ko)
CA (1) CA2657487A1 (ko)
WO (1) WO2007008590A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170069304A (ko) * 2011-10-04 2017-06-20 구글 인코포레이티드 디바이스 상의 결합된 활동 히스토리

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849085B2 (en) * 2004-05-18 2010-12-07 Oracle International Corporation System and method for implementing MBSTRING in weblogic tuxedo connector
US7356590B2 (en) * 2005-07-12 2008-04-08 Visible Measures Corp. Distributed capture and aggregation of dynamic application usage information
US20070055602A1 (en) * 2005-09-02 2007-03-08 Mohn Anne M Methods and systems for financial account management
US7930363B2 (en) * 2005-10-12 2011-04-19 Powerreviews, Inc. Application service provider delivery system
WO2007056344A2 (en) 2005-11-07 2007-05-18 Scanscout, Inc. Techiques for model optimization for statistical pattern recognition
US20070192161A1 (en) * 2005-12-28 2007-08-16 International Business Machines Corporation On-demand customer satisfaction measurement
US8856276B2 (en) * 2006-05-11 2014-10-07 International Business Machines Corporation Method, system and program product for collecting web metric data
US20090271324A1 (en) * 2006-08-11 2009-10-29 Evapt, Inc. Systems and methods for metered software as a service
US8255489B2 (en) * 2006-08-18 2012-08-28 Akamai Technologies, Inc. Method of data collection among participating content providers in a distributed network
US8014726B1 (en) 2006-10-02 2011-09-06 The Nielsen Company (U.S.), Llc Method and system for collecting wireless information transparently and non-intrusively
US8260252B2 (en) 2006-10-02 2012-09-04 The Nielsen Company (Us), Llc Method and apparatus for collecting information about portable device usage
US7996817B1 (en) * 2006-10-27 2011-08-09 Avaya Inc. Automatic validation of test results using componentized software object reflection
US8745647B1 (en) 2006-12-26 2014-06-03 Visible Measures Corp. Method and system for internet video and rich media behavioral measurement
US20080228581A1 (en) * 2007-03-13 2008-09-18 Tadashi Yonezaki Method and System for a Natural Transition Between Advertisements Associated with Rich Media Content
US20080288498A1 (en) * 2007-05-14 2008-11-20 Hinshaw Foster D Network-attached storage devices
US8176476B2 (en) * 2007-06-15 2012-05-08 Microsoft Corporation Analyzing software usage with instrumentation data
US7870114B2 (en) 2007-06-15 2011-01-11 Microsoft Corporation Efficient data infrastructure for high dimensional data analysis
US7739666B2 (en) 2007-06-15 2010-06-15 Microsoft Corporation Analyzing software users with instrumentation data and user group modeling and analysis
US7747988B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Software feature usage analysis and reporting
US8990378B2 (en) * 2007-07-05 2015-03-24 Interwise Ltd. System and method for collection and analysis of server log files
US8321556B1 (en) 2007-07-09 2012-11-27 The Nielsen Company (Us), Llc Method and system for collecting data on a wireless device
US7975262B2 (en) * 2007-08-16 2011-07-05 Microsoft Corporation Error tracing with context history
US8549550B2 (en) * 2008-09-17 2013-10-01 Tubemogul, Inc. Method and apparatus for passively monitoring online video viewing and viewer behavior
US8577996B2 (en) * 2007-09-18 2013-11-05 Tremor Video, Inc. Method and apparatus for tracing users of online video web sites
US8108513B2 (en) * 2007-09-26 2012-01-31 Microsoft Corporation Remote monitoring of local behavior of network applications
US20090083363A1 (en) * 2007-09-26 2009-03-26 Microsoft Corporation Remote monitoring of local behavior of network applications
US8543683B2 (en) * 2007-09-26 2013-09-24 Microsoft Corporation Remote monitoring of local behavior of network applications
US8271836B2 (en) * 2007-09-27 2012-09-18 Microsoft Corporation Capturing diagnostics in web browser applications
US20090089751A1 (en) * 2007-09-28 2009-04-02 Microsoft Corporation Exposing features of software products
US20090113397A1 (en) * 2007-10-25 2009-04-30 Signetag, Inc. Dynamic, secure software tagging for software asset management with respect to deployment, configuration, and usage
US20090138292A1 (en) * 2007-11-26 2009-05-28 International Business Machines Corporation Driving software product changes based on usage patterns gathered from users of previous product releases
US20090276856A1 (en) * 2007-11-26 2009-11-05 International Business Machines Corporation License management facility
US9946722B2 (en) * 2007-11-30 2018-04-17 Red Hat, Inc. Generating file usage information
US8307101B1 (en) 2007-12-13 2012-11-06 Google Inc. Generic format for storage and query of web analytics data
US8429243B1 (en) * 2007-12-13 2013-04-23 Google Inc. Web analytics event tracking system
US20090248729A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Online application platform and user communities
US20090248855A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Method for monitoring web page statistics
US20090313628A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Dynamically batching remote object model commands
US8612751B1 (en) * 2008-08-20 2013-12-17 Cisco Technology, Inc. Method and apparatus for entitled data transfer over the public internet
US8185910B2 (en) 2008-08-27 2012-05-22 Eric Sven-Johan Swildens Method and system for testing interactions between web clients and networked servers
US9612995B2 (en) 2008-09-17 2017-04-04 Adobe Systems Incorporated Video viewer targeting based on preference similarity
US8560675B2 (en) * 2009-04-01 2013-10-15 Comscore, Inc. Determining projection weights based on a census data
US9075883B2 (en) 2009-05-08 2015-07-07 The Nielsen Company (Us), Llc System and method for behavioural and contextual data analytics
US20100306363A1 (en) * 2009-05-26 2010-12-02 Erwien Saputra Determining completion of a web server download session at a database server
US8868601B2 (en) * 2009-08-17 2014-10-21 International Business Machines Corporation Distributed file system logging
CN101645905B (zh) * 2009-08-31 2012-10-24 深圳市茁壮网络股份有限公司 数据下载方法和数据上传方法及浏览器
US20110093783A1 (en) * 2009-10-16 2011-04-21 Charles Parra Method and system for linking media components
US9298569B1 (en) * 2009-11-13 2016-03-29 Arris Enterprises, Inc. Log storage and retrieval for broadband communications devices
WO2012057809A2 (en) * 2009-11-20 2012-05-03 Tadashi Yonezaki Methods and apparatus for optimizing advertisement allocation
US20110138307A1 (en) * 2009-12-09 2011-06-09 Microsoft Corporation Publishing client device usage data
US8332500B1 (en) * 2010-01-29 2012-12-11 Google Inc. Transmitting data requests based on usage characteristics of applications
CN102195795B (zh) * 2010-03-19 2014-03-12 Tcl集团股份有限公司 智能小区日志系统及其日志记录方法
CN103154928B (zh) 2010-06-24 2016-08-03 奥比融移动有限公司 网络服务器系统及其相关方法
US9280391B2 (en) 2010-08-23 2016-03-08 AVG Netherlands B.V. Systems and methods for improving performance of computer systems
KR101021812B1 (ko) * 2010-07-05 2011-03-17 (주)지란지교소프트 엔드포인트 장치의 모니터링을 이용한 조직 관계망 분석 방법 및 그 방법을 실행하는 프로그램이 기록된 기록매체
CN101895431B (zh) * 2010-08-20 2012-02-29 烽火通信科技股份有限公司 一种基于RIA的高性能Web传输网管系统及实现方法
US8340685B2 (en) 2010-08-25 2012-12-25 The Nielsen Company (Us), Llc Methods, systems and apparatus to generate market segmentation data with anonymous location data
WO2012031165A2 (en) * 2010-09-02 2012-03-08 Zaretsky, Howard System and method of cost oriented software profiling
JP2013536717A (ja) 2010-09-07 2013-09-26 ネステク ソシエテ アノニム ユーザインタフェースを有する人間工学的ハンドル
US8542583B2 (en) 2010-09-14 2013-09-24 Brocade Communications Systems, Inc. Manageability tools for lossless networks
US8498213B2 (en) * 2010-09-14 2013-07-30 Brocade Communications Systems, Inc. Manageability tools for lossless networks
US20120117227A1 (en) * 2010-11-10 2012-05-10 Sony Corporation Method and apparatus for obtaining feedback from a device
US8996689B2 (en) * 2010-11-11 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating networks, application servers, and wireless devices supporting machine-to-machine applications
US10102354B2 (en) 2010-11-19 2018-10-16 Microsoft Technology Licensing, Llc Integrated application feature store
US20120140255A1 (en) * 2010-12-02 2012-06-07 Ricoh Company, Ltd. Application launcher apparatus
US20120159341A1 (en) 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
US20120166522A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Supporting intelligent user interface interactions
JP5648911B2 (ja) * 2010-12-27 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation システム、プログラムおよび方法
US20120246619A1 (en) * 2011-03-23 2012-09-27 Oracle International Corporation Automated testing of browser based rich internet applications (ria) delivered through proprietary frameworks
CN102737016B (zh) * 2011-03-30 2014-07-16 中国银联股份有限公司 基于并行处理的信息文件生成系统及方法
US9223632B2 (en) 2011-05-20 2015-12-29 Microsoft Technology Licensing, Llc Cross-cloud management and troubleshooting
US8789020B2 (en) 2011-09-01 2014-07-22 International Business Machines Corporation Interactive debugging environments and methods of providing the same
US9344335B2 (en) 2011-09-09 2016-05-17 Microsoft Technology Licensing, Llc Network communication and cost awareness
CN103019918B (zh) * 2011-09-27 2015-07-15 腾讯科技(深圳)有限公司 一种获取应用程序使用频率的方法和装置
WO2013049853A1 (en) * 2011-09-29 2013-04-04 Sauce Labs, Inc. Analytics driven development
US8359389B1 (en) 2011-10-11 2013-01-22 Google Inc. Monitoring application program resource consumption
JP6196160B2 (ja) 2011-12-12 2017-09-13 サターン ライセンシング エルエルシーSaturn Licensing LLC クライアント端末、およびクライアント端末の動作方法、送信サーバおよび送信サーバの動作方法、並びにプログラム
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
US9704171B2 (en) * 2012-06-05 2017-07-11 Applause App Quality, Inc. Methods and systems for quantifying and tracking software application quality
US20130346917A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Client application analytics
US20140025441A1 (en) * 2012-07-19 2014-01-23 Sap Ag Peer support gamification by application knowledge scoring in social networks
US9183110B2 (en) * 2012-11-26 2015-11-10 Google Inc. Centralized dispatching of application analytics
US10187481B2 (en) * 2012-12-12 2019-01-22 Facebook, Inc. Organizing application-reported information
CN102981934A (zh) * 2012-12-21 2013-03-20 曙光信息产业(北京)有限公司 日志转移方法和日志转移装置
US20140282618A1 (en) * 2013-03-15 2014-09-18 Telemetry Limited Digital media metrics data management apparatus and method
US9628414B1 (en) * 2013-03-15 2017-04-18 Google Inc. User state based engagement
US9998536B2 (en) 2013-05-29 2018-06-12 Microsoft Technology Licensing, Llc Metered network synchronization
US9405531B2 (en) * 2013-07-16 2016-08-02 Software Ag Methods for building application intelligence into event driven applications through usage learning, and systems supporting such applications
RU2598988C2 (ru) * 2013-08-07 2016-10-10 Фиизер Инк. Способы и системы для поиска прикладных программ
US9349142B2 (en) 2013-10-09 2016-05-24 Ebay Inc. Reflow of data presentation using tracking data
WO2016025920A1 (en) * 2014-08-15 2016-02-18 Clarence Wooten Collecting, aggregating, analyzing and reporting traction data on internet-connected applications
US11695657B2 (en) 2014-09-29 2023-07-04 Cisco Technology, Inc. Network embedded framework for distributed network analytics
GB2594372B (en) * 2014-10-24 2022-04-13 Google Llc Methods and systems for automated tagging based on software execution traces
WO2016061820A1 (en) 2014-10-24 2016-04-28 Google Inc. Methods and systems for automated tagging based on software execution traces
US9928233B2 (en) 2014-11-12 2018-03-27 Applause App Quality, Inc. Computer-implemented methods and systems for clustering user reviews and ranking clusters
US10706073B1 (en) * 2014-12-03 2020-07-07 Amazon Technologies, Inc. Partitioned batch processing for a usage analysis system
US10362086B2 (en) * 2014-12-12 2019-07-23 Medidata Solutions, Inc. Method and system for automating submission of issue reports
US10305759B2 (en) * 2015-01-05 2019-05-28 Cisco Technology, Inc. Distributed and adaptive computer network analytics
CN104598372B (zh) * 2015-02-16 2017-11-03 联想(北京)有限公司 一种信息处理方法和装置
US10467000B2 (en) 2015-03-18 2019-11-05 International Business Machines Corporation Extending the usage of integrated portals for a better user experience
US10003669B2 (en) * 2015-07-28 2018-06-19 DISH Technologies L.L.C. Methods and apparatus to create and transmit a condensed logging data file
CN105224445B (zh) * 2015-10-28 2017-02-15 北京汇商融通信息技术有限公司 分布式跟踪系统
US10311500B2 (en) * 2016-09-01 2019-06-04 Facebook, Inc Methods and systems for developer onboarding for software-development products
CN107517128B (zh) * 2017-08-24 2020-06-19 北京小米移动软件有限公司 数据传输方法、装置和设备
US10810099B2 (en) 2017-09-11 2020-10-20 Internatinal Business Machines Corporation Cognitive in-memory API logging
US10691082B2 (en) * 2017-12-05 2020-06-23 Cisco Technology, Inc. Dynamically adjusting sample rates based on performance of a machine-learning based model for performing a network assurance function in a network assurance system
US11263328B2 (en) * 2018-09-13 2022-03-01 Vmware, Inc. Encrypted log aggregation
CN110727567B (zh) * 2019-09-09 2024-02-02 平安证券股份有限公司 软件质量检测的方法、装置、计算机设备和存储介质
CN111597097B (zh) * 2020-04-21 2023-12-12 山西宇钶技术发展有限公司 一种大数据处理方法及系统
US20220114092A1 (en) * 2020-10-13 2022-04-14 Dynatrace Llc Method And System For Estimating Garbage Collection Suspension Contributions Of Individual Allocation Sites
US11347625B1 (en) 2020-10-19 2022-05-31 Splunk Inc. Rendering a service graph illustrate page provider dependencies at query time using exemplars
US11693850B1 (en) 2020-10-19 2023-07-04 Splunk Inc. Rendering a service graph to illustrate page provider dependencies at an aggregate level
WO2022086610A1 (en) * 2020-10-19 2022-04-28 Splunk Inc. End-to-end visibility of a user session
JP7072625B1 (ja) 2020-11-26 2022-05-20 任天堂株式会社 ゲーム開発システム
CN112612664B (zh) * 2020-12-24 2024-04-02 百度在线网络技术(北京)有限公司 电子设备的测试方法、装置、电子设备和存储介质
US20220374457A1 (en) * 2021-05-21 2022-11-24 Databricks Inc. Feature store with integrated tracking
CN113986270B (zh) * 2021-11-16 2022-09-23 前海飞算云智软件科技(深圳)有限公司 分布式应用部署方法、装置、存储介质及电子设备

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073241A (en) * 1996-08-29 2000-06-06 C/Net, Inc. Apparatus and method for tracking world wide web browser requests across distinct domains using persistent client-side state
US6647548B1 (en) * 1996-09-06 2003-11-11 Nielsen Media Research, Inc. Coded/non-coded program audience measurement system
US6353929B1 (en) * 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US7302402B2 (en) * 1998-03-30 2007-11-27 International Business Machines Corporation Method, system and program products for sharing state information across domains
JPH11288381A (ja) * 1998-04-02 1999-10-19 Tokyo Electric Power Co Inc:The ソフトウエアのリモートモニタリング方式
US6470388B1 (en) * 1999-06-10 2002-10-22 Cisco Technology, Inc. Coordinated extendable system for logging information from distributed applications
US20050028171A1 (en) * 1999-11-12 2005-02-03 Panagiotis Kougiouris System and method enabling multiple processes to efficiently log events
JP2001356940A (ja) * 2000-06-13 2001-12-26 Canon Inc 処理装置及びその方法、コンピュータ可読メモリ
US6591228B1 (en) * 2001-02-13 2003-07-08 Charles Schwab & Co., Inc. Centralized diagnostic logging service
JP2002297258A (ja) * 2001-03-30 2002-10-11 Canon Inc アプリケーションのユーザ支援装置、システム、方法および情報処理装置並びに記録媒体並びにプログラムプロダクツ
JP4752125B2 (ja) * 2001-04-06 2011-08-17 大日本印刷株式会社 コンピュータシステム
JP2003050719A (ja) * 2001-08-03 2003-02-21 Katsuyoshi Nagashima アプリケーションソフトウエアの使用状況監視装置及びそのソフトウエアプログラム
US7415437B2 (en) * 2001-10-31 2008-08-19 The United States Of America As Represented By The Secretary Of The Navy Business development process
JP4050497B2 (ja) * 2001-11-06 2008-02-20 インフォサイエンス株式会社 ログ情報管理装置及びログ情報管理プログラム
JP2003186702A (ja) * 2001-12-18 2003-07-04 Tsubasa System Co Ltd 端末稼働監視システムおよび端末稼働監視方法
AU2003210591A1 (en) * 2002-01-18 2003-09-04 Sales Automation Support, Inc. Mobile marketing system
US7546365B2 (en) * 2002-04-30 2009-06-09 Canon Kabushiki Kaisha Network device management system and method of controlling same
JP2004021549A (ja) * 2002-06-14 2004-01-22 Hitachi Information Systems Ltd ネットワーク監視システムおよびプログラム
JP4490029B2 (ja) * 2002-06-28 2010-06-23 キヤノン電子株式会社 情報分析装置及びその制御方法、情報分析システム、プログラム
US20040186738A1 (en) * 2002-10-24 2004-09-23 Richard Reisman Method and apparatus for an idea adoption marketplace
JP2004185463A (ja) * 2002-12-05 2004-07-02 Hitachi Electronics Service Co Ltd Webアプリケーション監視システム及び監視センタ用コンピュータ並びにコンピュータ・ソフトウエア
US20050216844A1 (en) * 2004-03-03 2005-09-29 Error Brett M Delayed transmission of website usage data
JP2004280398A (ja) * 2003-03-14 2004-10-07 Toshiba Corp サービス提供側プログラム、利用側プログラム及び方法
WO2004114143A2 (de) * 2003-06-18 2004-12-29 Fujitsu Siemens Computers Gmbh Clusteranordnung
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US7581224B2 (en) * 2003-07-10 2009-08-25 Hewlett-Packard Development Company, L.P. Systems and methods for monitoring resource utilization and application performance
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US20050125271A1 (en) * 2003-12-09 2005-06-09 Peltz Christopher J. Web services project planning
US7614064B2 (en) * 2004-08-23 2009-11-03 Microsoft Corporation Determining program boundaries through viewing behavior
US8078596B2 (en) * 2004-09-16 2011-12-13 International Business Machines Corporation Method and system for a non-hierarchical trace system using a hierarchical control interface
US7707189B2 (en) * 2004-10-05 2010-04-27 Microsoft Corporation Log management system and method
US7661030B2 (en) * 2004-11-30 2010-02-09 Sap Ag Propagating debug information in a web services environment
US8141111B2 (en) * 2005-05-23 2012-03-20 Open Text S.A. Movie advertising playback techniques
US7610266B2 (en) * 2005-05-25 2009-10-27 International Business Machines Corporation Method for vertical integrated performance and environment monitoring
US7356590B2 (en) * 2005-07-12 2008-04-08 Visible Measures Corp. Distributed capture and aggregation of dynamic application usage information
JP4638370B2 (ja) * 2006-03-29 2011-02-23 富士重工業株式会社 車線逸脱防止装置
US8992304B2 (en) * 2006-04-13 2015-03-31 Igt Methods and systems for tracking an event of an externally controlled interface
US8495204B2 (en) * 2006-07-06 2013-07-23 Visible Measures Corp. Remote invocation mechanism for logging
US7801956B1 (en) * 2006-08-16 2010-09-21 Resource Consortium Limited Providing notifications to an individual in a multi-dimensional personal information network
US20080066107A1 (en) * 2006-09-12 2008-03-13 Google Inc. Using Viewing Signals in Targeted Video Advertising
US8113844B2 (en) * 2006-12-15 2012-02-14 Atellis, Inc. Method, system, and computer-readable recording medium for synchronous multi-media recording and playback with end user control of time, data, and event visualization for playback control over a network
US7747988B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Software feature usage analysis and reporting
US20090094584A1 (en) * 2007-10-04 2009-04-09 International Business Machines Corporation Non-intrusive asset monitoring framework for runtime configuration of deployable software assets
US8621491B2 (en) * 2008-04-25 2013-12-31 Microsoft Corporation Physical object visualization framework for computing device with interactive display

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170069304A (ko) * 2011-10-04 2017-06-20 구글 인코포레이티드 디바이스 상의 결합된 활동 히스토리
KR20190053307A (ko) * 2011-10-04 2019-05-17 구글 엘엘씨 디바이스 상의 결합된 활동 히스토리
KR20200020990A (ko) * 2011-10-04 2020-02-26 구글 엘엘씨 디바이스 상의 결합된 활동 히스토리
US11100139B2 (en) 2011-10-04 2021-08-24 Google Llc Combined activities history on a device

Also Published As

Publication number Publication date
US20130111016A1 (en) 2013-05-02
US8626908B2 (en) 2014-01-07
US20100030785A1 (en) 2010-02-04
EP1907941A4 (en) 2009-10-21
WO2007008590A2 (en) 2007-01-18
US20070016672A1 (en) 2007-01-18
EP1907941A2 (en) 2008-04-09
US7356590B2 (en) 2008-04-08
CN101371245B (zh) 2012-09-05
WO2007008590A3 (en) 2007-07-19
JP5354776B2 (ja) 2013-11-27
CA2657487A1 (en) 2007-01-18
JP2009501386A (ja) 2009-01-15
KR101300360B1 (ko) 2013-08-28
CN101371245A (zh) 2009-02-18
US8135827B2 (en) 2012-03-13

Similar Documents

Publication Publication Date Title
KR101300360B1 (ko) 동적 어플리케이션 사용 정보의 분산 캡쳐 및 결집체
EP1386240B1 (en) Synthetic transaction monitor
Mayer et al. An approach to extract the architecture of microservice-based software systems
EP1490775B1 (en) Java application response time analyzer
US7792948B2 (en) Method and system for collecting, aggregating and viewing performance data on a site-wide basis
US8910187B2 (en) Method and apparatus for non-intrusive web application integration to streamline enterprise business process
US8495204B2 (en) Remote invocation mechanism for logging
JP2009514092A (ja) サーバ利用情報の取得
US10644973B2 (en) Monitoring of availability data for system management environments
CN112039701A (zh) 接口调用监控方法、装置、设备及存储介质
US11531612B2 (en) Methods for providing an enterprise synthetic monitoring framework
US7849183B1 (en) Method of monitoring network and application performance by analyzing web clients and web servers
US20040093401A1 (en) Client-server text messaging monitoring for remote computer management
JP2004234560A (ja) ネットワーク統合管理システム
Strasser Long-term workload monitoring: workload management on distributed OS/2 server systems
Srirama et al. Deliverable D6. 6 Performance testing of cloud applications, Interim Release

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
LAPS Lapse due to unpaid annual fee