KR20110107363A - 마크업 언어를 통해 클라이언트 브라우저 상태의 서버-사이드 로깅을 위한 방법 - Google Patents

마크업 언어를 통해 클라이언트 브라우저 상태의 서버-사이드 로깅을 위한 방법 Download PDF

Info

Publication number
KR20110107363A
KR20110107363A KR1020117018241A KR20117018241A KR20110107363A KR 20110107363 A KR20110107363 A KR 20110107363A KR 1020117018241 A KR1020117018241 A KR 1020117018241A KR 20117018241 A KR20117018241 A KR 20117018241A KR 20110107363 A KR20110107363 A KR 20110107363A
Authority
KR
South Korea
Prior art keywords
web page
browser
state
server
captured
Prior art date
Application number
KR1020117018241A
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 KR20110107363A publication Critical patent/KR20110107363A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 클라이언트 브라우저 상태를 캡쳐하여 웹 서버에 로깅하기 위해 이 캡쳐된 브라우저 상태를 마크업 텍스트 내에 전달하는 것을 포함한다. 한 실시 예에서, 클라이언트에 의해서 접근되는 웹페이지의 DOM(문서 객체 모델)의 컨텐츠는 트래버스되어(traversed) HTML과 같은 문자들의 열 내에 마크업 텍스트로 기록된다. 이 마크업은, 상기 브라우저 디스플레이 환경을 식별하기 위한 특정의 메타데이터에 더하여, HTTP 요청 내에서 텍스트로서, 상기 클라이언트로부터 상기 서버로 전송된다. 그 다음, 상기 서버는 상기 마크업 텍스트 및 메타데이터를 나중의 접근을 위해 로그 할 수 있다. 상기 로그된 마크업 텍스트 및 메타데이터는 상기 클라이언트 브라우저 내에서 일어났던 정확한 디스플레이를 재생성하기 위해 사용될 수 있고, 따라서 웹페이지 문제 결정, 테스팅, 및 개발을 위해 유용한 상세 정보를 제공할 수 있다.

Description

마크업 언어를 통해 클라이언트 브라우저 상태의 서버-사이드 로깅을 위한 방법{METHOD FOR SERVER-SIDE LOGGING OF CLIENT BROWSER STATE THROUGH MARKUP LANGUAGE}
본 발명은 일반적으로 웹 서버와 클라이언트 브라우저 인터페이스를 필요로 하는 데이터 트랙킹과 저장 오퍼레이션들(data tracking and storage operations)에 관한 것이다. 좀더 구체적으로는, 클라이언트 브라우저로부터 획득한 데이터에 대한 로깅과 서버-사이드 접근을 가능하게 해주는 오퍼레이션들에 관한 것이다.
오늘날 사용자 인터페이스들의 대부분은 웹사이트들이며, 이들은 인터페이스 컨텐츠에 접근하기 위해 브라우저의 사용을 필요로 한다. 그러나, 서로 다른 브라우저들은 동일 컨텐츠를 클라이언트 사용자들에게 다르게 보여준다. 예를 들면, 마이크로소프트 인터넷 익스플로어(Internet Explorer) 및 모질라 파이어폭스(Mozilla FireFox) 이들 각각은 XML DOM(Document Object Model)을 다르게 구현한다. 또한, JavaScript 혹은 AJAX와 같은 동적 웹 페이지 기술들을 사용하면, 사용자가 현재 보고 있는(viewing) 컨텐츠는 서버가 제공한 원래 상태로부터 수정될 수 있다.
따라서, 종종 클라이언트가 무엇을 하고 있는지 그리고 컨텐츠가 클라이언트에게 어떻게 디스플레이되는지를 정확히 결정하기 어려운데, 그 이유는 클라이언트 코드가 웹 서버와 다른 시스템상에서 실행되기 때문이다. 이는 문제 결정을 특히 어렵게 하는데, 이러한 사정은 클라이언트 측에서 발생하는 에러들 혹은 예상치 못한 결과(behavior)를 이해하려 할 때 특히 그러하다.
기존의 시스템들에서 확실한(robust) 문제 결정 솔루션을 제공하기 위해서는, 사용자가 보고 있는 것과 하고 있는 것을 정확히 기록하는 브라우저-사이드 로깅(browser-side logging)을 클라이언트 컴퓨터상에 구현하는 것이 필요하다. 이는 통상적으로 사용자가 컨트롤을 위해 입력했을 수 있는 모든 값들에 관한 기록을 하는 것과, 디스플레이된 컨텐츠들에 대해서 스크립트들(scripts)이 만든 모든 변경(every change)를 트래킹하는 것을 포함한다.
따라서, 종종 클라이언트가 무엇을 하고 있는지 그리고 컨텐츠가 클라이언트에게 어떻게 디스플레이되는지를 정확히 결정하기 어려운데, 그 이유는 클라이언트 코드가 웹 서버와 다른 시스템상에서 실행되기 때문이다. 이는 문제 결정을 특히 어렵게 하는데, 이러한 사정은 클라이언트 측에서 발생하는 에러들 혹은 예상치 못한 결과(behavior)를 이해하려 할 때 특히 그러하다.
기존의 시스템들에서 확실한(robust) 문제 결정 솔루션을 제공하기 위해서는, 사용자가 보고 있는 것과 하고 있는 것을 정확히 기록하는 브라우저-사이드 로깅(browser-side logging)을 클라이언트 컴퓨터상에 구현하는 것이 필요하다. 이는 통상적으로 사용자가 컨트롤을 위해 입력했을 수 있는 모든 값들에 관한 기록을 하는 것과, 디스플레이된 컨텐츠들에 대해서 스크립트들(scripts)이 만든 모든 변경(every change)를 트래킹하는 것을 포함한다.
본 발명은 클라이언트 브라우저 상태의 서버-사이드 로깅을 가능하게 하는 개선된 오퍼레이션들을 포함한다. 한 실시 예에서, DOM(문서 객체 모델)의 내용을 트래버스하여(traversing) 기록(recording)함으로써, 클라이언트 사용자에 의해 접근된 웹 페이지의 완전한 현재 상태가 문자들의 열(string of characters)로 기록될(written) 수 있다. 이것은 입력 위젯(input widgets)에 입력되는 모든 데이터와, 스크립팅에 의해 상기 페이지에 대해 만들어지는 모든 수정들을 포함한다. 웹페이지의 상태를 나타내는 데이터를 포함하는 이 문자열은 그 다음에 서버로 전송되어서 표준 로깅 방법을 사용하여 로그될 수 있다. 따라서, 상기 로그된 정보는 해부되고(parsed) 분석되어(analyzed) 상기 클라이언트 브라우저의 상태를 재생성할 수 있다(recreate).
여기서 공개된 로깅 오퍼레이션들을 사용하면, 어떤 주어진 시점에서(at any given point in time), 컨텐츠 제공자(content provider)에게 사용자가 무엇을 하고 있었는지, 그리고 무엇이 사용자에게 디스플레이 되었는지를 정확히 알 수 있도록 해 준다. 따라서, 상기 공개된 로깅 오퍼레이션들은 : 컨텐츠 생성 스크립트 코드의 디버깅 ; 특정 브라우저 혹은 브라우저의 버전에서 발생하는 렌더링 이슈들(rendering issues)의 식별 ; 일부 유효하지 않은 입력이 예기치 않은 결과를 발생시킬 경우 웹페이지로 입력되는 값의 결정 ; 클라이언트-사이드 스크립팅 파일들이 오래되어서(out-of-date) 리프레시될 필요가 있는 경우(혹은 캐시를 컨텐츠가 없는 상태로 할 필요가 있는 경우)와 같은 “캐시”문제들의 식별 ;그리고 사용자에게 제공되는 컨텐츠의 전반적인 감사를 가능하게 한다. 또한, 현재 본 발명에서 공개하한 실시 예들은 고장수리공들(troubleshooters) 및 지원 인력(support personnel)이, 웹 서버 또는 데이터베이스에 대한 접근을 하지 않고, 사용자가 포함되었던 시나리오를 정확히 재작성할 수 있도록 해 준다.
한 실시 예에서, 클라이언트 브라우저 상태의 서버-사이드 로깅 수행을 위한 오퍼레이션은 웹페이지 컨텐츠가 웹 서버로부터 수신된 후에, 클라이언트 컴퓨터 시스템에서 동작하는 브라우저를 위해 수행된다. 이 웹페이지 컨텐츠가 상기 브라우저에 디스플레이된 후, 상기 브라우저 내에 디스플레이된 웹페이지의 상태가 캡쳐된다.
캡쳐가 되면, 상기 브라우저의 동작 환경은 문자열로 컴파일된다. 또한, 상기 웹페이지의 캡쳐된 상태의 각각 DOM 엘레멘트를 표시하는 문자열은 상기 페이지의 각각 DOM 엘리멘트를 트래버싱하여 각각의 DOM 엘레멘트와 관련 데이터를 컴파일함으로써 생성된다. 다른 실시 예에서는, 상기 브라우저 내에 디스플레이 웹페이지의 상태는 사용자에 의해 입력 필드들(input fields)로 제공된 입력 값들을 포함한다.
그 다음 상기 메타데이터 및 DOM 스트링 데이터는 웹 서버로 전송된다. 다른 실시 예에서, 이 문자열은 HTTP 요청(request) 내에서 전송된다. 일단 웹 서버가 상기 문자열을 수신했다면. 그 다음에 상기 웹 서버에 의해서 접근 가능한 데이터 저장소(data store)내에 메타데이터와 DOM 정보를 로깅하는 것과 같은 필요한 처리를 할 수 있다.
또 다른 실시 예에서, 상기 웹페이지의 상태는 다른 시간들에서 혹은 특정 이벤트들에 응답하여 캡쳐된다. 예를 들어, 상기 웹페이지 캡쳐는: 웹페이지 컨텐츠가 브라우저에 디스플레이된 직후에; 클라이언트 브라우저에 의한 스크립트 실행에 반응하여서 ; 사용자로부터 웹페이지 상태가 로그되게 하는 신호(예를 들어, 사용자에 의한 버튼 혹은 메뉴-구동 명령을 통해서 나온 신호)를 수신한 것에 응답하여서 ; 혹은 이와 달리(alternatively) 웹페이지의 상태를 캡쳐하기 위한 때를 결정하는 웹페이지 내에 실행된 스크립팅으로부터 발생될 수 있다.
한 실시 예에서, 클라이언트 브라우저 상태의 서버-사이드 로깅 수행을 위한 오퍼레이션은 웹페이지 컨텐츠가 웹 서버로부터 수신된 후에, 클라이언트 컴퓨터 시스템에서 동작하는 브라우저를 위해 수행된다. 이 웹페이지 컨텐츠가 상기 브라우저에 디스플레이된 후, 상기 브라우저 내에 디스플레이된 웹페이지의 상태가 캡쳐된다.
캡쳐가 되면, 상기 브라우저의 동작 환경은 문자열로 컴파일된다. 또한, 상기 웹페이지의 캡쳐된 상태의 각각 DOM 엘레멘트를 표시하는 문자열은 상기 페이지의 각각 DOM 엘리멘트를 트래버싱하여 각각의 DOM 엘레멘트와 관련 데이터를 컴파일함으로써 생성된다. 다른 실시 예에서는, 상기 브라우저 내에 디스플레이 웹페이지의 상태는 사용자에 의해 입력 필드들(input fields)로 제공된 입력 값들을 포함한다.
그 다음 상기 메타데이터 및 DOM 스트링 데이터는 웹 서버로 전송된다. 다른 실시 예에서, 이 문자열은 HTTP 요청(request) 내에서 전송된다. 일단 웹 서버가 상기 문자열을 수신했다면. 그 다음에 상기 웹 서버에 의해서 접근 가능한 데이터 저장소(data store)내에 메타데이터와 DOM 정보를 로깅하는 것과 같은 필요한 처리를 할 수 있다.
또 다른 실시 예에서, 상기 웹페이지의 상태는 다른 시간들에서 혹은 특정 이벤트들에 응답하여 캡쳐된다. 예를 들어, 상기 웹페이지 캡쳐는: 웹페이지 컨텐츠가 브라우저에 디스플레이된 직후에; 클라이언트 브라우저에 의한 스크립트 실행에 반응하여서 ; 사용자로부터 웹페이지 상태가 로그되게 하는 신호(예를 들어, 사용자에 의한 버튼 혹은 메뉴-구동 명령을 통해서 나온 신호)를 수신한 것에 응답하여서 ; 혹은 이와 달리(alternatively) 웹페이지의 상태를 캡쳐하기 위한 때를 결정하는 웹페이지 내에 실행된 스크립팅으로부터 발생될 수 있다.
본 발명의 실시 예들은, 첨부된 도면들을 참조하여, 오직 예로 써만, 설명될 것이다.
도 1은 종래 기술의 웹 클라이언트/서버 아키텍처의 한 예를 도시한 것이다.
도 2는 본 발명의 한 실시 예에 따른 클라이언트 브라우져 상태의 로깅을 구현하는 웹 클라이언트/서버 아키텍처의 한 예를 도시한 것이다.
도 3은 본 발명의 한 실시 예에 따른 클라이언트 브라우저 상태의 서버-사이드 로깅의 수행을 위한 한 방법의 예에 관한 플로 챠트를 도시한 것이다.
본 발명은 문제 결정, 지원, 및 테스팅의 목적으로 분석 및 사용하기 위해 클라이언트 브라우저 상태를 로깅하는 것과 이 로그된 브라우저 상태 데이터를 웹 서버로 전송하는 것을 포함한다. 한 실시 예에서, 클라이언트 브라우저 상태는 캡쳐되어 메타데이터 및 HTML을 포함하는 문자열이 된다. 로그된 데이터 내에 캡쳐된 상기 HTML은 런-타임(run-time)을 표시하는데, 이는 클라이언트에 원래 제공된 “소스” HTML 보다는 한 페이지의 동적으로 생성된 HTML을 표시한다. 상기 메타데이터는 브라우저 이름, 브라우저 버전, 윈도우 크기, 그리고 운영체제와 같은 데이터를 포함할 수 있다. 클라이언트 브라우저 상태 및 메타 데이터가 하나의 문자열로 캡쳐된 후 이 문자열은 웹 서버 및 /혹은 제 3 자의 위치로 전송된다.
캡쳐된 브라우저 상태 정보를 사용하면, 지원 팀(support team)은 브라우저 상태가 로그된 순간에 사용자가 경험한 사용자 인터페이스의 상태를 정확하게 재생 할 수 있다. 예를 들어, 이에는 웹페이지 입력필드들에 사용자 입력한 값들 혹은 브라우저 내에서 동적으로 변경되었던 컨텐츠 디스플레이의 상태를 포함할 수 있다. 상기 로깅 오퍼레이션은 “로그 브라우저 상태”버튼과 같은 사용자의 명령에 의해 수동으로 실행될 수 있거나, 혹은 스크립트 내에 정의된 “미리-정의된 인터벌들에서(at pre-defined intervals)” 실행될 수도 있다. 다른 실시 예에서, 사용자가 입력하는 패스워드 필드들과 같은 클라이언트 웹페이지 상의 민감한 데이터를 로깅하지 못하게 하는 조건들이 클라이언트 브라우저 상태를 캡쳐하는 동안 적용될 수 있다.
종래 기술에서 실시되었던 표준 로깅은 클라이언트와 브라우저의 통합 상태(comprehensive state)를 쉽게 로깅할 수 없었으며, 특히 다양한 종류의 브라우저들 및 브라우저 플랫폼들에 대하여 다르게 제공된 웹페이지의 디스플레이를 모니터하려고 할 때 그러했다. 본 발명의 장점 중 하나는 로깅과 문제 결정이 서버 및 클라이언트-사이드 양쪽 모두의 상태 데이터를 위해서 디플로이 되고(deployed) 그리고/또는 조정될 수 있다(coordinated)는 것이다. 더욱이, 본 발명의 실시 예들은 컨텐츠가 서버 혹은 클라이언트-사이드에서 생성된 것인지에 관계없이 제공된 HTML를 정확히 캡쳐할 수 있게 해 준다.
또한, 본 발명의 한 실시 예에서, 관리자는 사용자가 페이지의 입력 위젯들(input widgets)에 입력한 데이터에 대한 로깅을 분석할 수 있는데, 비록 이 데이터가 서버에 제출되지 않았더라도 가능하다. 스크린 캡쳐들을 사용하는 기존의 시스템과는 달리, 본 발명의 이 실시 예는 픽셀-데이터(pixel-data)를 저장하지 않는다. 대신에, 마크업(markup)이 텍스트로서 저장되는데, 이렇게 함으로써 공간을 절약할 수 있고 검사(examination)에도 도움이 된다. 다시 말하면, 마크업 “스크린쇼트(screenshot)”는 수행된 모든 사용자의 동작(action)을 위해 캡쳐될 수 있다는 것이다. 스크립팅 시스템은 정규 인터벌들에서(at regular intervals) 페이지의 상태를 저장하도록 구성될 수 있기 때문에, 이는 클라이언트 사용의 “비디오 같은” 재생(“video-like” playback)을 실제 비디오 데이터를 저장하는 것보다 상당히 감소된 오버헤드로 가능하게 할 것이다.
클라이언트 상에 웹페이지가 제공될 때 디스플레이를 캡쳐함으로써, 본 발명의 다양한 실시 예들이 기본 웹 브라우징 액티비티들(basic web browsing activities)를 이용하는 광범위한 종류(wide varity)의 클라이언트 플랫폼들에서 실행될 수 있다. 이에는, 데스크탑 컴퓨터 상에서 동작하는 널리 사용되는 브라우저들이 포함될 뿐만 아니라, 이 외에도 전화들, 모바일 디바이스들, 및 휴대용 전자 컴퓨팅 디바이스들 상에서 동작하는 다른 브라우저들도 포함된다. 따라서, 데이터 로깅은, 클라이언트 브라우저가 Firefox, Internet Explorer, Safari, Google Chrome, 등 어느 것이던지 간에 클라이언트로부터 균일하게 수행되고 수집될 수 있다.
도 1의 종래 기술에서 존재하는 웹 서버 아키텍처의 예에서 도시한 바와 같이, 동적 웹 어플리케이션들은 통상적으로 다음과 같은 구성을 갖는다. 브라우저 (110)의 URL은 서버 (120)에 포인트 될 때, 초기 요청(initial request)(130)을 형성하고, 서버(120)은 이를 요청 처리기(request handler)(121)에서 처리한다. 상기 웹 서버의 어플리케이션 로직 (122) 및 응답 발생기들 (123)으로부터 생성되는 서버의 응답 (131)은 페이지의 초기 로드(initial load)를 구성한다. 일반적으로 상기 응답은 디스플레이 (113)을 위해 HTML 페이지를 제공하는 형식을 취하지만, 상기 응답은 이론적으로 문서 객체 모델(DOM)에 의해서 표시되는 모든 종류의 파일을 제공할 수 있다.
페이지가 일단 로드되면, 브라우저 (110)은 상기 페이지와 연관된 모든 스크립트들(111)을 실행하기 시작한다. 이들 스크립트들은 여러 태스크들, 예를 들어 상기 페이지의 컨텐츠를 애니메이트한다던지(animating), 사용자 입력을 모니터하여 응답한다던지. 혹은 더 많은 데이터를 위해 서버에 추가의 요청들을 보낸다 던지 같은 태스크들을 수행할 수 있다. 후자의 경우에, 스크립트는 서버에 전송되어 처리되는 요청을 형성할 수 있고, 동적 응답 (132)는 콜백 기능(callback function)을 통해 상기 페이지의 스크립트에 직접적으로 전송된다(sent back).
이들 동작들 중 어느 것이던지 그 결과는 스크립트 (111)에 나타나서 DOM (112)를 갱신한다. 또한, 사용자 입력 (114)도 마찬가지로 상기 DOM을 수정한다. 따라서, 통상적인 클라이언트/웹 서버 구성으로 하면, 서버가 어떤 주어진 시간에서 제공된 페이지의 정확한 상태를 알 수 있는 확실한 방법이 없다. 로깅 데이터 저장소(140) 내의 서버-사이드 상에서 쉽게 캡쳐 될 수 있는 데이터만이 서버 (120)을 통해서 전달되는 데이터 요청들 혹은 응답들이 될 것이다.
도 2는 본 발명의 한 실시 예에 따른 클라이언트 브라우저 상태의 서버-사이드 로깅을 구현하는 유사한 웹 클라이언트/서버 아키텍처를 도시한다. 아래의 오퍼레이션은 서버 사이드 상의 로깅을 위해 클라이언트 데이터를 캡쳐하여 그 클라이언트 데이트를 서버에 전송하는 방법의 한 예를 제공한다.
먼저, 로깅 오퍼레이션은 클라이언트 사이드 브라우저(110) 내에서 시작하여 디스플레이된 웹페이지 DOM을 캡쳐한다. 상기 로깅 오퍼레이션은 다양한 방법으로 시작될 수 있는데, 예를 들어, 디스플레이 상태가 로그 되게 하는 브라우저 사용자 신호를 가짐으로써 시작될 수 있다. 이 신호는, 예를 들어, 브라우저 (110) 내의 한 버튼을 클릭함에 의해서 수행될 수 있다. 이와 달리, 상기 로깅은 상기 페이지 내에서 실행하는 스크립팅 (111)에 의해서 시작될 수 있는데, 상기 스크립팅은 미리 정의된 인터벌에 혹은 속성(pre-defined interval or predicate)에 기초하여, 상기 페이지 상태가 로그 되게 하는 지를 결정한다.
이에 더하여, 클라이언트 브라우저의 상태를 캡쳐하는 것의 일부분으로서, 스크립팅 시스템(111)은 또한 상기 웹페이지의 디스플레이에 관련된 메타데이터- 정보, 예를 들어 현재 브라우저 버전, 스크린 해상도, 운영체제 버전 등을 결정한다. 이러한 메타데이터 정보는 캡쳐되어 문자열로 표시된다.
다음, 스크립팅 시스템(111)은 웹 페이지의 각각의 DOM엘리멘트를 방문한다. DOM (112)내의 각각의 엘리멘트에 대해서, HTML이 그 엘리멘트를 표시하는 문자열에 기록된다. 예를 들어, DOM 내에서 테이블 엘리멘트를 만나면, <table>태그가 기록된다. 각각의 엘리멘트 내에 포함된 데이터도 마찬가지로 상기 문자열에 기록된다. 다른 실시 예들에서, 상기 엘리멘트가 패스워드 필드와 같은 “민감성”으로 판단되면, 그러한 필드는 민감성 데이터가 로그되지 않도록 읽혀지지 않는다. 오퍼레이션 (201)에서 도시한 바와 같이, 그 다음에는 메타데이터 정보 및 브라우저 DOM HTML의 조합을 포함하는 문자열이 브라우저 상태 저장(browser state save)을 표시하는 요청을 통해서 서버에 전송된다.
서버의 요청 처리기 (121) 내에서 상기 요청을 처리하고 나면, 메타데이터 로깅 기능부(metadata logging function) (202) 내의 로직이 클라이언트 상태-저장 메타데이터(client state-saved metadata) 및 HTML을 로깅 데이터 저장소(logging data store) (140) 내에 저장하기 위해 오퍼레이션 (203)에서 추가로 처리한다. 그 다음에, 서버의 로깅 데이터 저장소 (140)에 접근하는 모든 사용자는 저장된 데이터를 열 수 있고, 상기 메타데이터 내에 표시된 브라우저 버전을 사용하여 사용자가 상기 상태 저장 시에 보았던 것을 정확히 볼 수 있다(view).
이 분야의 통상의 지식을 가진 자는 본 발명의 범위 내의 브라우저 상태 로깅 및 데이터 수집 기술들은 도 2에 도시한 단순한 웹 서버나 혹은 고급 데이터 저장, 검색, 및 분석 기술들의 대규모 조합과 조합될 수 있는 다양한 서버-사이드 환경들 내에서 달성될 수 있음을 이해할 수 있을 것이다. 특히, 상기 로깅 오프레이션들은, 스토리지 영역 네트웍(storage area network : SAN), 네트웍 접속 스토리지(network attached storage : NAS) 디바이스들, 백업 유틸리티들(backup utilities) 및 어플라언스들(appliances), 그리고 기타 스토리지 자원들과 같은, 관리된 스토리지 환경들 내에 저장되는 데이터를 생성하도록 수행될 수 있다.
또한, 클라이언트-사이드 브라우저들로부터 수집되는 데이터는 자동화된 테스팅 환경, 하이퍼바이저(hypervisor), 혹은 기타 가상 환경들의 오퍼레이션 내에서 선택되고, 착수되고(launched), 재생성되고(recreated), 그리고 이용될 수 있다.
추가의 어플리케이션들 및 전술한 로깅 오퍼레이션의 이용들을 보여주는 두 개의 예들(이에 한정되지 않음)은 다음과 같다. 첫 번째 예에서, 브라우저 상태 로깅 오퍼레이션은 웹 서버로부터 PHP 혹은 JSP 페이지를 제공한 후 즉시 실행될 수 있다. 이것은 클라이언트가 수신한 서버-생성 HTML(server-generated HTML)의 정확한 분석을 가능하게 하며, 그리고 서버-사이드 로직 및 스크립트들이 의도하는 패션으로(in intended fashion) 동작하고 있음을 검증할 수 있게 해 준다.
두 번째 예에서, 브라우저 상태 로깅 오퍼레이션은 JavaScript 이벤트가 시작되었거나 혹은 어떤 특정 JavaScript 코드가 실행된 후에 실행될 수 있다. 이벤트의 발생에 따라 로깅 오퍼레이션을 시작하는 한가지 이유는 현재 선택된 라디오 버튼들의 정확한 스냅쇼트(snapshot)를 획득하여, 값들, 및 이와 유사한 것들을 형성하기 위함이다. 이는 웹페이지 입력들 중 어느 것이 에러를 일으키거나 예상치 못한 결과를 일으키는 경우 고장수리(troubleshooting)를 도울 수 있다.
도 3은 본 발명의 한 실시 예에 따라 마크업 언어를 통해서 클라이언트 브라우저 상태의 서버-사이드 로깅을 수행하는 한 예시적 오퍼레이션의 플로차트를 도시한 것이다. 먼저, 단계 (301)에서, 로깅 오퍼레이션은 시작된다. 상기 로깅 오퍼레이션은 사용자에 의해 수동으로 시작될 수도 있고, 어떤 정의된 기간에 자동으로 시작될 수도 있으며, 혹은 스크립트에서와 같이 미리 정의된 로직의 실행에 응답하여 시작될 수 있다.
다음은, 단계 (302)에서, 스크립팅 시스템은 웹페이지 및 클라이언트 디스플레이 환경에 관한 관련 메타데이터 정보, 예를 들면, 현재 브라우저, 스크린 해상도 및 운영체제에 관한 정보를 결정한다. 이 정보는 텍스트 포맷(textual format)으로 컴파일되어 저장된다.
다음은, 단계 (303)에서, 스크립팅 시스템은 디스플레이된 웹페이지의 각각 DOM 엘리멘트를 트래버스한다(traverse). 단계 (304)에서, 각각의 DOM 엘리멘트를 위해, HTML이 그 엘리멘트와 데이터를 표시하는 문자열로 컴파일 된다. 예를 들어, 테이블 엘리멘트를 만나면, <table>태그가 기록되고, 그 엘리멘트를 포함하는 텍스트 혹은 기타 데이터도 상기 문자열에 기록된다. 규칙들은 또한 패스워드 필드들과 같은 엘리멘트들로부터의 데이터 수집은 배제하도록 정의될 수 있다.
단계 (305)에서, 클라이언트 디스플레이 환경 메타데이터 정보를 포함하는 브라우저 상태를 표시하는 문자열과, HTML의 웹페이지 DOM의 표시를 포함하는 컴파일된 문자열은 HTTP 요청을 통해서 서버에 전송된다. 단계 (306)에서, 서버는, 데이터를 위해 구성된 스토리지 방법이 어떤 종류이던지 간에, 상태 저장 메타데이터 및 HTML 문자열들을 자신의 구성된 데이터 저장소로 로그한다.
마지막으로, 단계 (307)에서, 상기 메타데이터 및 HTML 문자열들은 추가의 분석을 위해 접근될 수 있다. 예를 들어, 상기 메타데이터에 의해서 표시된 브라우저는 사용자가 그 상태 저장 시에 보았던 것을 정확히 보기 위해 디플로이 될 수 있다(deployed). 적절한 분석, 테스팅, 및/혹은 개발 변경들은 예상치 못한 혹은 의도하지 않은 웹페이지 결과를 치유하기 위해 수행될 수 있다.
이 분야에서 통상의 지식을 가진 자는 알 수 있듯이, 본 발명은 시스템, 방법, 혹은 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명은 전체를 하드웨어 실시 예의 형태로, 전체를 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로-코드, 등을 포함함) 실시 형태로, 혹은 “회로”, “모듈”, 혹은 “시스템”으로 부를 수 있는 소프트웨어 및 하드웨어를 포함하는 형태로 구현할 수 있다. 더 나아가서, 본 발명은 매체 내에 구현된 컴퓨터 사용가능 프로그램 코드를 갖는 모든 유형의 매체에 구현된 컴퓨터 프로그램 제품의 형태로도 구현될 수 있다.
하나 혹은 그 이상의 컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체(들)의 모든 조합이 이용될 수 있다. 컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체는 , 예를 들면, 전자, 자기, 광, 전자기, 적외선, 혹은 반도체 시스템, 장치, 디바이스, 혹은 전파매체가 될 수 있으며, 이에 한정되는 것은 아니다. 컴퓨터 판독가능 매체의 더 구체적인 예들(모든 예를 포함하는 것은 아니다)은 다음 것들을 포함할 수 있다 : 하나 혹은 그 이상의 배선들을 갖는 전기적 커넥션, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤액세스 메모리(RAM), 읽기 전용 메모리(ROM), 지울 수 있는 프로그램 가능 읽기 전용 메모리(EPROM 혹은 플래시 메모리), 광 파이버, 휴대용 컴팩트 디스크 읽기 전용 메모리(CDROM), 광 스토리지 디바이스, 인터넷 혹은 인트라넷을 지원하는 것과 같은 전송 매체, 혹은 자기 스토리지 디바이스. 컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체는 다음의 경우에는 페이퍼 혹은 다른 적절한 매체도 될 수 있다. 즉, 프로그램이 인쇄되어, 그 프로그램이, 예를 들어 페이퍼 혹은 기타 매체의 광 스캐닝을 통해서 전자적으로 캡쳐 되어, 컴파일 되고, 해석되며, 혹은, 필요하다면, 기타 적절한 방법으로 처리되어, 그 다음에 컴퓨터 메모리에 저장될 수 있을 때 그러하다. 본 명세서에서, 컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체는 명령 실행 시스템, 장치 혹은 디바이스에 의한 사용을 위해 혹은 관련하여 사용하기 위해 프로그램을 포함, 저장, 전달, 전파, 혹은 전송할 수 있는 모든 매체가 될 수 있다. 컴퓨터 사용가능 매체는 베이스밴드 내에 혹은 캐리어 웨이브의 일부로서 그 안에 구현된 컴퓨터 사용가능 프로그램 코드를 갖는 전파된 데이터 신호를 포함할 수 있다. 컴퓨터 사용가능 프로그램 코드는 모든 적절한 매체를 사용하여 전송될 수 있으며, 그러한 매체에는 무선, 유선, 광파이버 케이블, RF, 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 오퍼레이션들을 수행하기 위한 컴퓨터 프로그램 코드는 하나 혹은 그 이상의 프로그래밍 언어들의 어떤 조합으로 작성될 수 있는데, 그러한 언어들에는 Java, Smalltalk, C++ 혹은 이와 유사한 언어와 같은 객체 지향 프로그래밍 언어와, “C” 프로그래밍 언어 혹은 이와 유사한 프로그래밍 언어들과 같은 종래의 절차 프로그래밍 언어들을 포함한다. 프로그램 코드는 전적으로 사용자 컴퓨터 상에서, 부분적으로 사용자 컴퓨터상에서, 독립(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자 컴퓨터상에서 및 부분적으로 원격지 컴퓨터상에서, 혹은 전적으로 원격지 컴퓨터 혹은 서버상에서 실행될 수 있다. 후자의 경우에, 원격지 컴퓨터는 LAN 혹은 WAN을 포함하는 모든 종류의 네트웍을 통해서 사용자 컴퓨터에 접속될 수 있거나, 혹은 그러한 접속이 외부 컴퓨터(예를 들어, 인터넷 서비스 공급자를 사용하는 인터넷을 통해서)로 이루어질 수도 있다.
본 발명의 다양한 대표적인 실시 예들이 어느 정도의 자세하게 위에서 기술되었지만, 이 분야에서 통상의 지식을 가진 자들은 본 명세서 및 청구항들에 기재한 본 발명의 주제의 정신과 범위로부터 벗어남이 없이 상기 개시된 본 발명의 실시 예들에 대하여 다양한 변경들을 만들 수 있을 것이다.

Claims (22)

  1. 클라이언트 브라우저 상태의 서버-사이드 로깅을 수행하기 위한 방법에서, 상기 방법은:
    웹 서버로부터 웹 페이지의 컨텐츠를, 클라이언트 컴퓨터 시스템상에서 동작하는 브라우저 내에, 수신하는 단계;
    상기 웹 페이지의 컨텐츠를 상기 브라우저 내에 디스플레이하는 단계;
    상기 브라우저 내에 디스플레이된 상기 웹 페이지의 상태를 캡쳐하는 단계;
    상기 브라우저의 동작 환경의 메타데이터를 표시하는 문자열을 컴파일하는 단계;
    상기 웹페이지의 캡쳐된 상태의 각각 문서 객체 모델(DOM) 엘리멘트를 트래버스하는 단계;
    각각의 DOM 엘리멘트 및 그와 연관된 데이터를 표시하는 문자열을 상기 웹페이지의 캡쳐된 상태 내에서 컴파일하는 단계;
    상기 메타데이터 및 DOM 문자열들을 상기 웹 서버로 전송하는 단계; 그리고
    상기 메타데이터 및 DOM 문자열들을 상기 웹 서버에 의해서 접근 가능한 데이터 저장소 내에 로깅하는 단계를 포함하는
    방법.
  2. 제 1항에서, 상기 웹 페이지의 상태는 상기 브라우저 내에 디스플레이되는 웹 페이지 컨텐츠에 반응하여 캡쳐되는
    방법.
  3. 제 1항에서, 상기 웹 페이지의 상태는 상기 클라이언트 브라우저에 의한 스크립트의 실행에 반응하여 캡쳐되는
    방법.
  4. 제 1항에서, 상기 웹 페이지의 상태는 상기 웹 페이지의 상태가 로그 되게 하는 신호를 사용자로부터 수신하는 것에 반응하여 캡쳐되는
    방법.
  5. 상기 항들 중 어느 하나에 있어서, 상기 웹 페이지 내에 실행되는 스크립팅은 상기 웹 페이지의 상태를 언제 캡쳐 하는지를 결정하는
    방법.
  6. 상기 항들 중 어느 하나에 있어서, 상기 브라우저 내에 디스플레이된 상기 웹 페이지의 상태는 사용자에 의해 제공되는 입력 값을 포함하는
    방법.
  7. 상기 항들 중 어느 하나에 있어서, 상기 메타데이터 및 DOM 문자열들은 HTTP 요청 내에서 상기 웹 서버로 전송되는
    방법.
  8. 시스템에서, 상기 시스템은:
    적어도 하나의 프로세서; 및
    클라이언트 브라우저 상태의 서버-사이드 로깅을 수행하기 위해 상기 적어도 하나의 프로세서와 동작 가능한 명령들을 저장하는 적어도 하나의 메모리를 포함하되, 상기 명령들은 실행되어;
    웹 서버로부터 웹 페이지의 컨텐츠를, 클라이언트 컴퓨터 시스템상에서 동작하는 브라우저 내에, 수신하고;
    상기 웹 페이지의 컨텐츠를 상기 브라우저 내에 디스플레이하며;
    상기 브라우저 내에 디스플레이된 상기 웹 페이지의 상태를 캡쳐하고;
    상기 브라우저의 동작 환경의 메타데이터를 표시하는 문자열을 컴파일하며;
    상기 웹페이지의 캡쳐된 상태의 각각의 문서 객체 모델(DOM) 엘리멘트를 트래버스하고;
    각각의 DOM 엘리멘트 및 그와 연관된 데이터를 표시하는 문자열을 상기 웹페이지의 캡쳐된 상태 내에서 컴파일하며 ;
    상기 메타데이터 및 DOM 문자열들을 상기 웹 서버로 전송하고 ; 그리고
    상기 메타데이터 및 DOM 문자열들을 상기 웹 서버에 의해서 접근 가능한 데이터 저장소 내에 로깅하는
    시스템.
  9. 제 8항에서, 상기 웹 페이지의 상태는 상기 브라우저 내에 디스플레이되는 웹 페이지 컨텐츠에 반응하여 캡쳐되는
    시스템.
  10. 제 8항에서, 상기 웹 페이지의 상태는 상기 클라이언트 브라우저에 의한 스크립트의 실행에 반응하여 캡쳐되는
    시스템.
  11. 제 8항에서, 상기 웹 페이지의 상태는 상기 웹 페이지의 상태가 로그 되게 하는 신호를 사용자로부터 수신한 것에 반응하여 캡쳐되는
    시스템.
  12. 제 8항 내지 제 11항 중 어느 하나에 있어서, 상기 웹 페이지 내에서 실행된 스크립팅이 상기 웹 페이지의 상태를 언제 캡쳐하는 지를 결정하는
    시스템.
  13. 제 8항 내지 제 12항 중 어느 하나에 있어서, 상기 브라우저 내에서 디스플레이된 상기 웹 페이지의 상태는 사용자에 의해 제공되는 입력 값을 포함하는
    시스템.
  14. 제 8항 내지 제 13항 중 어느 하나에 있어서, 상기 메타데이터 및 DOM 문자열들은 HTTP 요청 내에서 상기 웹 서버로 전송되는
    시스템.
  15. 클라이언트 브라우저 상태의 서버-사이드 로깅을 수행하기 위한 컴퓨터 판독가능 프로그램을 갖는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 제품에서, 상기 컴퓨터 판독가능 프로그램이 컴퓨터상에서 실행될 때 상기 프로그램이 상기 컴퓨터가 :
    웹 서버로부터 웹 페이지의 컨텐츠를, 클라이언트 컴퓨터 시스템상에서 동작하는 브라우저 내에, 수신하는 단계;
    상기 웹 페이지의 컨텐츠를 상기 브라우저 내에 디스플레이하는 단계;
    상기 브라우저 내에 디스플레이된 상기 웹 페이지의 상태를 캡쳐하는 단계;
    상기 브라우저의 동작 환경의 메타데이터를 표시하는 문자열을 컴파일하는 단계;
    상기 웹페이지의 캡쳐된 상태의 각각의 문서 객체 모델(DOM) 엘리멘트를 트래버스하는 단계;
    각각의 DOM 엘리멘트 및 그와 연관된 데이터를 표시하는 문자열을 상기 웹페이지의 캡쳐된 상태 내에서 컴파일하는 단계;
    상기 메타데이터 및 DOM 문자열들을 상기 웹 서버로 전송하는 단계; 그리고
    상기 메타데이터 및 DOM 문자열들을 상기 웹 서버에 의해서 접근 가능한 데이터 저장소 내에 로깅하는 단계를 실행하도록 하는
    컴퓨터 프로그램.
  16. 제 15항에서, 상기 웹 페이지의 상태는 상기 브라우저 내에 디스플레이 되는 웹 페이지 내용에 반응하여 캡쳐되는
    컴퓨터 프로그램.
  17. 제 15항에서, 상기 웹 페이지의 상태는 상기 클라이언트 브라우저에 의한 스크립트의 실행에 반응하여 캡쳐되는
    컴퓨터 프로그램.
  18. 제 15항에서, 상기 웹 페이지의 상태는 상기 웹 페이지의 상태가 로그 되게 하는 신호를 사용자로부터 수신한 것에 반응하여 캡쳐되는
    컴퓨터 프로그램.
  19. 제 15항 내지 18항 중 어느 하나에 있어서, 상기 웹 페이지 내에서 실행된 스크립팅이 상기 웹 페이지의 상태를 언제 캡쳐할 지를 결정하는
    컴퓨터 프로그램.
  20. 제 15항 내지 19항 중 어느 하나에 있어서, 상기 브라우저 내에서 디스플레이된 상기 웹 페이지의 상태는 사용자에 의해 제공되는 입력 값을 포함하는
    컴퓨터 프로그램.
  21. 제 15항 내지 20항 중 어느 하나에 있어서, 상기 메타데이터 및 DOM 문자열들은 HTTP 요청 내에서 상기 웹 서버로 전송되는
    컴퓨터 프로그램.
  22. 상기 프로그램이 컴퓨터상에서 실행될 때 제 1항 내지 제 7항의 모든 단계들을 수행하도록 준비된 프로그램 코드 수단을 포함하는
    컴퓨터 프로그램.
KR1020117018241A 2009-01-08 2009-12-07 마크업 언어를 통해 클라이언트 브라우저 상태의 서버-사이드 로깅을 위한 방법 KR20110107363A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/350,324 2009-01-08
US12/350,324 US7962547B2 (en) 2009-01-08 2009-01-08 Method for server-side logging of client browser state through markup language

Publications (1)

Publication Number Publication Date
KR20110107363A true KR20110107363A (ko) 2011-09-30

Family

ID=42060933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117018241A KR20110107363A (ko) 2009-01-08 2009-12-07 마크업 언어를 통해 클라이언트 브라우저 상태의 서버-사이드 로깅을 위한 방법

Country Status (7)

Country Link
US (3) US7962547B2 (ko)
EP (1) EP2374078B1 (ko)
JP (1) JP5511845B2 (ko)
KR (1) KR20110107363A (ko)
CN (1) CN102272757B (ko)
TW (1) TW201037531A (ko)
WO (1) WO2010079028A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248867B1 (ko) * 2012-10-26 2013-04-02 (주)밸류팩토리 웹페이지에서 크롭 영역과 겹쳐지는 문서요소만을 재구성하여 크롭하는 웹화면 크롭 서버 장치
KR101282975B1 (ko) * 2012-10-26 2013-07-08 (주)밸류팩토리 문서 요소를 분리 구조화하여 표준화한 후 웹페이지를 재구성하는 웹화면 크롭 서버 장치
KR20200005802A (ko) * 2018-07-09 2020-01-17 에스케이플래닛 주식회사 클라우드 스트리밍 환경에서의 사용자 활동 재생 방법 및 이를 위한 장치
KR20220081267A (ko) * 2020-12-08 2022-06-15 주식회사 앰진시큐러스 동적 컨텐츠와 링크를 포함하는 웹사이트의 채증 방법

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004061699A1 (en) 2002-12-27 2004-07-22 Nielsen Media Research, Inc. Methods and apparatus for transcoding metadata
US8868533B2 (en) 2006-06-30 2014-10-21 International Business Machines Corporation Method and apparatus for intelligent capture of document object model events
US8583772B2 (en) 2008-08-14 2013-11-12 International Business Machines Corporation Dynamically configurable session agent
US8365082B2 (en) 2008-10-23 2013-01-29 Savnor Technologies Llc Universal content referencing, packaging, distribution system, and a tool for customizing web content
US7962547B2 (en) * 2009-01-08 2011-06-14 International Business Machines Corporation Method for server-side logging of client browser state through markup language
US9934320B2 (en) 2009-03-31 2018-04-03 International Business Machines Corporation Method and apparatus for using proxy objects on webpage overlays to provide alternative webpage actions
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US8335819B2 (en) * 2009-12-31 2012-12-18 Nokia Corporation Method and apparatus for providing client-side caching
US20110185134A1 (en) * 2010-01-22 2011-07-28 Microsoft Corporation Temporary state service protocol
US9015136B2 (en) 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
US8572477B1 (en) * 2010-01-29 2013-10-29 Asana, Inc. Web-based incremental computing
US8627199B1 (en) 2010-01-29 2014-01-07 Asana, Inc. Incremental computing of changes to computer user interfaces
CA2796299A1 (en) 2010-04-12 2011-10-20 Google Inc. Collaborative cursors in a hosted word processor
US20110252312A1 (en) * 2010-04-12 2011-10-13 Google Inc. Real-Time Collaboration in a Hosted Word Processor
JP5325169B2 (ja) * 2010-06-25 2013-10-23 株式会社日立製作所 ウェブアプリケーションの操作再現方法およびシステム
US8838679B2 (en) 2010-12-22 2014-09-16 Microsoft Corporation Providing state service for online application users
CN102624761A (zh) * 2011-01-27 2012-08-01 腾讯科技(深圳)有限公司 一种获取图文信息的装置、系统及方法
US8539338B2 (en) * 2011-04-11 2013-09-17 Microsoft Corporation Cooperative rendering cache for mobile browser
US9380356B2 (en) 2011-04-12 2016-06-28 The Nielsen Company (Us), Llc Methods and apparatus to generate a tag for media content
US8562441B1 (en) * 2011-05-03 2013-10-22 Zynga Inc. Secure, parallel, and independent script execution
US9209978B2 (en) 2012-05-15 2015-12-08 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US9210208B2 (en) 2011-06-21 2015-12-08 The Nielsen Company (Us), Llc Monitoring streaming media content
EP2756684A4 (en) * 2011-06-21 2015-06-24 Nielsen Co Us Llc METHOD AND DEVICE FOR MEASURING THE EXPOSURE OF STREAMING MEDIA
US20130268630A1 (en) * 2012-04-10 2013-10-10 Jan Besehanic Methods and apparatus to measure exposure to streaming media
WO2012177870A2 (en) * 2011-06-21 2012-12-27 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
WO2013010031A1 (en) * 2011-07-12 2013-01-17 Facebook, Inc. Media recorder
US9146909B2 (en) * 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
WO2013025193A1 (en) * 2011-08-14 2013-02-21 Savnor Technologies Llc Web content capturing, packaging distribution
US9251287B2 (en) 2011-08-26 2016-02-02 International Business Machines Corporation Automatic detection of item lists within a web page
US8683263B2 (en) 2011-09-09 2014-03-25 Microsoft Corporation Cooperative client and server logging
US8775923B1 (en) * 2011-09-26 2014-07-08 Google Inc. Web page restoration
US9608881B2 (en) 2012-04-13 2017-03-28 International Business Machines Corporation Service compliance enforcement using user activity monitoring and work request verification
JP5670377B2 (ja) * 2012-04-24 2015-02-18 日本電信電話株式会社 Web閲覧履歴取得装置及びプログラム
CN103488560B (zh) * 2012-06-12 2014-11-05 腾讯科技(深圳)有限公司 一种用于网页测试的测试目标处理方法和装置
US20140096014A1 (en) * 2012-09-29 2014-04-03 Oracle International Corporation Method for enabling dynamic client user interfaces on multiple platforms from a common server application via metadata
US9635094B2 (en) 2012-10-15 2017-04-25 International Business Machines Corporation Capturing and replaying application sessions using resource files
US9536108B2 (en) 2012-10-23 2017-01-03 International Business Machines Corporation Method and apparatus for generating privacy profiles
US8788533B2 (en) * 2012-10-26 2014-07-22 Sap Ag Read access logging
US9535720B2 (en) * 2012-11-13 2017-01-03 International Business Machines Corporation System for capturing and replaying screen gestures
US10474735B2 (en) 2012-11-19 2019-11-12 Acoustic, L.P. Dynamic zooming of content with overlays
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US10956667B2 (en) 2013-01-07 2021-03-23 Google Llc Operational transformations proxy for thin clients
US9462037B2 (en) 2013-01-07 2016-10-04 Google Inc. Dynamically sizing chunks in a partially loaded spreadsheet model
US9311622B2 (en) 2013-01-15 2016-04-12 Google Inc. Resolving mutations in a partially-loaded spreadsheet model
US10025760B2 (en) * 2013-01-25 2018-07-17 Ebay Inc. Mapping page states to URLs
CN104956362B (zh) * 2013-01-29 2017-10-24 慧与发展有限责任合伙企业 分析web应用程序的结构
US9313544B2 (en) 2013-02-14 2016-04-12 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US9158657B2 (en) 2013-02-19 2015-10-13 Audible, Inc. Architecture for remote access to content state
WO2014130048A1 (en) 2013-02-25 2014-08-28 Hewlett-Packard Development Company, L.P. Presentation of user interface elements based on rules
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US9805114B2 (en) 2013-09-30 2017-10-31 Microsoft Technology Licensing, Llc Composable selection model through reusable component
US9332035B2 (en) 2013-10-10 2016-05-03 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US10035615B2 (en) * 2013-10-11 2018-07-31 Veltek Associates, Inc. Method of packaging sterilized products
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
JP2017504129A (ja) * 2013-11-01 2017-02-02 カパオ・テクノロジーズKapow Technologies ウェブブラウザにおいて表わされる状態表現の構築
RU2580392C2 (ru) * 2013-12-31 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ синхронизации первой и второй сессии просмотра страниц для пользователя и сервер
US10601895B1 (en) 2014-01-08 2020-03-24 Western Digital Technologies, Inc. Data transfer by data storage device based on received uniform resource locator information
US11210362B2 (en) * 2014-05-31 2021-12-28 International Business Machines Corporation Script logging for markup language elements
CN105446986B (zh) 2014-06-30 2018-12-14 国际商业机器公司 用于处理web页面的方法和装置
US10409884B2 (en) 2014-07-02 2019-09-10 The Nielsen Company (Us), Llc Methods and apparatus to identify sponsored media in a document object model
US9641590B2 (en) 2014-08-27 2017-05-02 Google Inc. Resuming session states
US10452757B2 (en) 2014-11-25 2019-10-22 Oracle International Corporation Persistent user personalization
US9934214B2 (en) * 2014-12-11 2018-04-03 International Business Machines Corporation DOM snapshot capture
US10339199B2 (en) * 2015-04-10 2019-07-02 Oracle International Corporation Methods, systems, and computer readable media for capturing and storing a web page screenshot
US9762965B2 (en) 2015-05-29 2017-09-12 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US10498842B2 (en) 2015-07-13 2019-12-03 SessionCam Limited Methods for recording user interactions with a website
US10742764B2 (en) 2015-07-27 2020-08-11 Adp, Llc Web page generation system
US10417317B2 (en) 2015-07-27 2019-09-17 Adp, Llc Web page profiler
US10324600B2 (en) 2015-07-27 2019-06-18 Adp, Llc Web page generation system
CN106656925A (zh) * 2015-10-30 2017-05-10 北京国双科技有限公司 网页注册方法及装置
CN105912460A (zh) * 2016-04-05 2016-08-31 浪潮电子信息产业股份有限公司 一种基于qtp的软件测试方法及系统
CN105975395A (zh) * 2016-05-30 2016-09-28 深圳市华傲数据技术有限公司 网站状态侦察方法及装置
WO2017219293A1 (zh) * 2016-06-22 2017-12-28 华为技术有限公司 一种获取网页内容的方法及装置
CN106874585A (zh) * 2017-01-26 2017-06-20 北京恒泰实达科技股份有限公司 一种实现等效果高性能b/s发布的电厂仿真方法
US11361328B2 (en) * 2017-03-15 2022-06-14 International Business Machines Corporation Reduced network footprint customer behavior analytics
CN108133010A (zh) * 2017-12-22 2018-06-08 新奥(中国)燃气投资有限公司 一种资讯抓取方法及装置
CN110019764A (zh) * 2017-12-28 2019-07-16 中国移动通信集团重庆有限公司 大数据平台敏感数据的发现方法、装置、设备及存储介质
CN108959605A (zh) * 2018-07-13 2018-12-07 彩讯科技股份有限公司 用于网页的截图方法、装置、计算机设备和存储介质
US11068643B2 (en) * 2019-02-08 2021-07-20 Oracle International Corporation Client-side customization and rendering of web content
US11290541B2 (en) 2019-03-19 2022-03-29 International Business Machines Corporation Synchronous client-side log service
CN111475763B (zh) * 2020-04-15 2020-12-15 成都安易迅科技有限公司 网页运行方法、装置、存储介质及设备
US11803695B1 (en) * 2021-03-29 2023-10-31 Plus Docs Inc. Dynamic sharable web clippings
CN113221042B (zh) * 2021-05-31 2024-05-17 京东科技控股股份有限公司 网页操作过程记录方法、装置、电子设备及计算机可读介质
CN114257575B (zh) * 2021-12-16 2024-04-16 平安壹账通云科技(深圳)有限公司 一种客户端数据的处理方法、装置、电子设备及存储介质
CN115118616B (zh) * 2022-04-29 2024-04-23 腾讯科技(深圳)有限公司 展示结果测试方法、装置、计算机设备和存储介质
CN116226557B (zh) * 2022-12-29 2024-04-19 中国科学院信息工程研究所 待标注数据的拾取方法、装置、电子设备和存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299403B1 (en) * 2000-10-11 2007-11-20 Cisco Technology, Inc. Methods and apparatus for obtaining a state of a browser
US7669212B2 (en) * 2001-02-02 2010-02-23 Opentv, Inc. Service platform suite management system
US20030195963A1 (en) * 2002-04-10 2003-10-16 Yu Song Session preservation and migration among different browsers on different devices
US20050066037A1 (en) 2002-04-10 2005-03-24 Yu Song Browser session mobility system for multi-platform applications
JP4391766B2 (ja) * 2002-05-31 2009-12-24 株式会社エヌ・ティ・ティ・ドコモ マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム
US7805523B2 (en) * 2004-03-15 2010-09-28 Mitchell David C Method and apparatus for partial updating of client interfaces
JP4817814B2 (ja) * 2004-11-19 2011-11-16 富士通株式会社 アプリケーション状態情報転送システム
US7698633B2 (en) * 2004-11-24 2010-04-13 Rojer Alan S Markup metalanguage
US20070050703A1 (en) * 2005-08-26 2007-03-01 Pierre Lebel Methods, systems and computer program products for analyzing a hypertext markup language (HTML) document
US20080005281A1 (en) 2006-06-29 2008-01-03 Microsoft Corporation Error capture and reporting in a distributed computing environment
US8127000B2 (en) * 2006-06-30 2012-02-28 Tealeaf Technology, Inc. Method and apparatus for monitoring and synchronizing user interface events with network data
US20080282175A1 (en) * 2007-05-07 2008-11-13 Adobe Systems Incorporated Automatically encoded, gracefully degrading panels
US7941383B2 (en) * 2007-12-21 2011-05-10 Yahoo! Inc. Maintaining state transition data for a plurality of users, modeling, detecting, and predicting user states and behavior
US8924845B2 (en) * 2008-02-20 2014-12-30 Lsi Corporation Web application code decoupling and user interaction performance
US7962547B2 (en) * 2009-01-08 2011-06-14 International Business Machines Corporation Method for server-side logging of client browser state through markup language
JP5325169B2 (ja) 2010-06-25 2013-10-23 株式会社日立製作所 ウェブアプリケーションの操作再現方法およびシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248867B1 (ko) * 2012-10-26 2013-04-02 (주)밸류팩토리 웹페이지에서 크롭 영역과 겹쳐지는 문서요소만을 재구성하여 크롭하는 웹화면 크롭 서버 장치
KR101282975B1 (ko) * 2012-10-26 2013-07-08 (주)밸류팩토리 문서 요소를 분리 구조화하여 표준화한 후 웹페이지를 재구성하는 웹화면 크롭 서버 장치
KR20200005802A (ko) * 2018-07-09 2020-01-17 에스케이플래닛 주식회사 클라우드 스트리밍 환경에서의 사용자 활동 재생 방법 및 이를 위한 장치
KR20220081267A (ko) * 2020-12-08 2022-06-15 주식회사 앰진시큐러스 동적 컨텐츠와 링크를 포함하는 웹사이트의 채증 방법

Also Published As

Publication number Publication date
US20130073950A1 (en) 2013-03-21
US8326922B2 (en) 2012-12-04
JP2012514801A (ja) 2012-06-28
US20110154185A1 (en) 2011-06-23
JP5511845B2 (ja) 2014-06-04
US20100174774A1 (en) 2010-07-08
TW201037531A (en) 2010-10-16
CN102272757A (zh) 2011-12-07
US9235640B2 (en) 2016-01-12
US7962547B2 (en) 2011-06-14
EP2374078A1 (en) 2011-10-12
CN102272757B (zh) 2014-09-24
WO2010079028A1 (en) 2010-07-15
EP2374078B1 (en) 2014-06-04

Similar Documents

Publication Publication Date Title
US7962547B2 (en) Method for server-side logging of client browser state through markup language
US10216855B2 (en) Mobilizing an existing web application
US20190188060A1 (en) Enabling a web application to call at least one native function of a mobile device
US9268670B1 (en) System for module selection in software application testing including generating a test executable based on an availability of root access
US8996921B2 (en) Indicating coverage of Web application testing
US20110161395A1 (en) Synthetic transaction monitoring and management of scripts
US9317694B2 (en) Directed execution of dynamic programs in isolated environments
US9740668B1 (en) Plotting webpage loading speeds and altering webpages and a service based on latency and pixel density
US20160359989A1 (en) Recording And Triggering Web And Native Mobile Application Events With Mapped Data Fields
Amalfitano et al. The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis
EP3104279B1 (en) Testing interactive network systems
US20170147159A1 (en) Capturing and storing dynamic page state data
JP6505849B2 (ja) 要素識別子の生成
CN115514677B (zh) 服务器拨测方法及系统
Amalfitano et al. Comprehending Ajax Web applications by the DynaRIA tool
US20240127325A1 (en) Generating a product demonstration
CN113190435A (zh) 信息获取方法、装置、电子设备及存储介质
Beltran Getting Started with PhantomJS
CN115905661A (zh) 一种网页数据的自动爬取方法和装置、计算机设备和介质
WO2020260943A1 (en) Detecting relationships between web services in a web-based computing system
CN117097548A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN116881160A (zh) 测试脚本优化方法及装置、电子设备和存储介质
CN113900909A (zh) 日志采集sdk组装方法、装置、设备及可读存储介质
CN114860568A (zh) 数据处理方法、系统、装置、设备及计算机可读存储介质

Legal Events

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