KR102225476B1 - 임베디드 웹 콘텐츠 실행의 애플리케이션 제어 - Google Patents

임베디드 웹 콘텐츠 실행의 애플리케이션 제어 Download PDF

Info

Publication number
KR102225476B1
KR102225476B1 KR1020167000748A KR20167000748A KR102225476B1 KR 102225476 B1 KR102225476 B1 KR 102225476B1 KR 1020167000748 A KR1020167000748 A KR 1020167000748A KR 20167000748 A KR20167000748 A KR 20167000748A KR 102225476 B1 KR102225476 B1 KR 102225476B1
Authority
KR
South Korea
Prior art keywords
web content
application
execution
script
content
Prior art date
Application number
KR1020167000748A
Other languages
English (en)
Other versions
KR20160021202A (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 KR20160021202A publication Critical patent/KR20160021202A/ko
Application granted granted Critical
Publication of KR102225476B1 publication Critical patent/KR102225476B1/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/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • 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
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

웹 콘텐츠는 웹 콘텐츠를 호스팅하는 애플리케이션의 애플리케이션 콘텐츠와 동시에 디스플레이된다. 웹 콘텐츠는 스크립트와 같은 실행 또는 작동 가능한 적어도 일부 콘텐츠를 포함한다. 웹 콘텐츠의 수행은, 예를 들면 웹 콘텐츠가 실행된 시간량 및/또는 웹 콘텐츠에 의해 사용된 메모리 양을 모니터링함으로써 모니터링된다. 웹 콘텐츠의 수행에 관한 피드백이 웹 콘텐츠를 호스팅하는 애플리케이션에 제공되고, 애플리케이션은 웹 콘텐츠의 수행에 기초하여 웹 콘텐츠의 실행을 변경할 것인지 그리고/또는 어떻게 변경할 것인지를 결정할 수 있다. 웹 콘텐츠의 실행은 웹 콘텐츠의 실행을 스로틀링하거나 웹 콘텐츠의 실행을 중지하는 것과 같은 각종 방식으로 변경될 수 있다.

Description

임베디드 웹 콘텐츠 실행의 애플리케이션 제어{APPLICATION CONTROL OF EMBEDDED WEB CONTENT EXECUTION}
컴퓨터가 점차 흔해지면서 다양한 다른 애플리케이션이 이용 가능해지고 있다. 이러한 애플리케이션들은 컴퓨터의 사용자 인터페이스를 통하여 콘텐츠를 디스플레이할 수 있고, 디스플레이된 콘텐츠는 다른 소스로부터의 데이터에 기초를 둘 수 있다. 그러나, 특정 소스로부터의 데이터가 예컨대 불량하게 기록 또는 설계된 데이터 등으로 인해 애플리케이션의 수행이 손상되고 애플리케이션에 대하여 역효과를 야기하는 상황이 발생할 수 있다. 그러한 상황은 애플리케이션의 유용성을 손상시키고 사용자 경험을 좌절시킬 수 있다.
이 요약은 뒤의 상세한 설명 부분에서 더 구체적으로 설명하는 개념들의 선택을 간단한 형태로 소개하기 위해 제공된다. 이 요약은 청구하는 발명의 대상의 핵심적인 특징 또는 본질적인 특징을 식별하기 위한 것으로 의도되지 않고, 또한 청구하는 발명의 대상의 범위를 제한하는 용도로 의도되지 않는다.
하나 이상의 양태에 따르면, 애플리케이션에 임베딩(embedding)된 웹 콘텐츠는 애플리케이션의 콘텐츠와 동시에 디스플레이된다. 웹 콘텐츠의 수행은 모니터링되고, 웹 콘텐츠의 수행에 관한 피드백이 애플리케이션에 제공된다. 애플리케이션은 상기 피드백에 응답하여 웹 콘텐츠의 실행을 변경하도록 허용된다.
도면 전체에 걸쳐 동일한 번호는 동일한 특징을 인용하기 위해 사용된다.
도 1은 하나 이상의 실시형태에 따른, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하는 예시적인 시스템을 보인 도이다.
도 2는 하나 이상의 실시형태에 따른, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하는 다른 예시적인 시스템을 보인 도이다.
도 3은 하나 이상의 실시형태에 따른 예시적인 애플리케이션 인터페이스를 보인 도이다.
도 4는 하나 이상의 실시형태에 따른, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하기 위한 예시적인 프로세스를 보인 흐름도이다.
도 5는 여기에서 설명하는 각종 기술을 구현할 수 있는 하나 이상의 시스템 및/또는 장치를 나타내는 예시적인 컴퓨팅 장치를 포함한 예시적인 시스템을 보인 도이다.
임베디드 웹 콘텐츠(embedded web content) 실행의 애플리케이션 제어를 여기에서 설명한다. 애플리케이션은 임베디드 웹 콘텐츠를 포함할 수 있고, 애플리케이션이 웹 콘텐츠를 호스팅한다고도 부른다. 웹 콘텐츠와 웹 콘텐츠를 호스팅하는 애플리케이션의 콘텐츠가 둘 다 동시에 디스플레이된다. 웹 콘텐츠는 스크립트(script)와 같은, 실행 또는 작동 가능한 적어도 일부 콘텐츠를 포함한다. 웹 콘텐츠의 수행은, 예를 들면 웹 콘텐츠가 실행된 시간량 및/또는 웹 콘텐츠에 의해 사용된 메모리의 양을 모니터링함으로써 모니터링된다. 웹 콘텐츠의 수행에 관한 피드백이 웹 콘텐츠를 호스팅하는 애플리케이션에 제공되고, 애플리케이션은 상기 웹 콘텐츠의 수행에 기초하여 웹 콘텐츠의 실행을 변경할 것인지 그리고/또는 어떻게 변경할 것인지를 결정할 수 있다. 웹 콘텐츠의 실행은, 예를 들면 웹 콘텐츠의 실행을 스로틀링(throttling)하거나 웹 콘텐츠의 실행을 중지시키는 것과 같은 각종 방식으로 변경될 수 있다.
도 1은 하나 이상의 실시형태에 따른, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하는 예시적인 시스템(100)을 보인 도이다. 시스템(100)은 실제 장치 또는 가상 장치와 같은 각종의 다른 유형의 장치일 수 있는 컴퓨팅 장치(102)를 포함한다. 예를 들면, 컴퓨팅 장치(102)는 데스크톱 컴퓨터, 서버 컴퓨터, 랩톱 또는 넷북 컴퓨터, 태블릿 또는 노트패드 컴퓨터, 이동국(mobile station), 오락기기, 디스플레이 장치에 통신적으로 결합된 셋톱 박스, 텔레비전 또는 다른 디스플레이 장치, 셀룰러 또는 다른 무선 전화기, 게임 콘솔, 자동차용 컴퓨터 등과 같은 실제 장치(physical device)일 수 있다. 컴퓨팅 장치(102)는 또한 실제 장치에서 작동하는 가상 기계와 같은 가상 장치일 수 있다. 가상 기계는 각종의 다른 유형의 실제 장치 중 임의의 장치(예를 들면, 전술한 각종 유형 중 임의의 장치)에서 작동할 수 있다. 따라서, 컴퓨팅 장치(102)는 실질적인 메모리 및 프로세서 리소스를 가진 풀 리소스(full resource) 장치(예를 들면, 개인용 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 처리 리소스를 가진 로우 리소스(low-resource) 장치(예를 들면, 전통적인 셋톱박스, 핸드헬드 게임 콘솔)까지의 범위를 가질 수 있다.
컴퓨팅 장치(102)는 디스플레이 장치(108)의 일부(106)에서 애플리케이션 콘텐츠를 디스플레이하는 애플리케이션(104)을 포함한다. 애플리케이션 콘텐츠는 이미지, 드로잉, 텍스트, 비디오, 그래프, 맵, 링크, 또는 이들의 조합 등을 포함한 각종의 다른 유형의 콘텐츠 중 임의의 것일 수 있다. 애플리케이션 콘텐츠는 도 1에서 복수의 선(예를 들면, 텍스트를 나타냄)으로 도시되어 있지만, 이것은 단순히 예를 든 것임에 주목해야 한다. 상기 부분(106)은 디스플레이 장치(108)에 디스플레이된 창, 디스플레이 장치(108)의 다른 세그멘트 또는 영역, 디스플레이 장치(108)의 전체 디스플레이 영역 등일 수 있다. 디스플레이 장치(108)는 컴퓨팅 장치(102)의 일부로서 포함될 수 있다. 대안적으로, 디스플레이 장치(108)는 컴퓨팅 장치(102)로부터 분리되고, 컴퓨팅 장치(102)는 디스플레이 장치(108)에 의해 디스플레이되는 콘텐츠 및 임의의 다른 사용자 인터페이스 요소들을 표시하는 하나 이상의 신호를 디스플레이 장치(108)에 제공할 수 있다.
컴퓨팅 장치(102)는 웹 뷰 컨트롤(110)을 또한 포함한다. 웹 뷰 컨트롤(110)은 하나 이상의 웹 콘텐츠 소스로부터 웹 콘텐츠(112)를 획득한다. 웹 콘텐츠 소스는 컴퓨팅 장치(102)의 고정형 또는 분리형 스토리지 장치와 같은, 컴퓨팅 장치(102)에 국부적인 웹 콘텐츠 소스(114)를 포함할 수 있다. 웹 콘텐츠(112)는 추가적으로 또는 대안적으로, 컴퓨팅 장치(102)로부터 원격에 있고 네트워크(118)를 통해 컴퓨팅 장치(102)에 의해 액세스되는 웹 콘텐츠 소스(116)로부터 획득될 수 있다. 네트워크(126)는 인터넷, 근거리 통신망(LAN), 공중 전화망, 인트라넷, 다른 공적 및/또는 사적 네트워크, 또는 이들의 조합 등과 같은 각종의 다른 네트워크 중 임의의 하나 이상일 수 있다.
웹 뷰 컨트롤(110)은 하위 부분(120)으로 도시되는, 부분(106) 중의 일부에서의 웹 콘텐츠(112)의 디스플레이를 관리한다. 웹 콘텐츠(112)는 애플리케이션(104)에 임베딩되고, 이것은 애플리케이션(104)에 의해 디스플레이되는 애플리케이션 콘텐츠와 동시에 (예를 들면, 웹 뷰 컨트롤(110)에 의해) 디스플레이되는 웹 콘텐츠(112)를 말한다. 디스플레이된 웹 콘텐츠는 도 1에 자동차의 이미지로서 도시되어 있지만, 이것은 단순히 일 예인 점에 주목해야 한다. 상기 하위 부분(120)은 디스플레이된 웹 콘텐츠가 디스플레이된 애플리케이션 콘텐츠로부터 구별되도록, 애플리케이션 콘텐츠를 디스플레이하는 부분(106)의 영역으로부터 분리된, 부분(106) 내의 창 또는 다른 영역일 수 있다. 대안적으로, 상기 디스플레이된 웹 콘텐츠는 상기 디스플레이된 애플리케이션 콘텐츠와 함께 산재될 수 있고, 상기 디스플레이된 웹 콘텐츠와 상기 디스플레이된 애플리케이션 콘텐츠 간에 눈에 보이거나 사용자가 인식할 수 있는 윤곽(delineation)이 없을 수 있다.
웹 콘텐츠(112)는 월드 와이드 웹을 이용하여 애플리케이션에 대하여 이해할 수 있는 언어로 작성된 콘텐츠를 말한다. 웹 콘텐츠(112)는 각종 데이터, 링크, 실행 명령어 등을 포함할 수 있다. 웹 콘텐츠(112)는 웹 페이지일 수 있지만, 반드시 그럴 필요는 없다. 예를 들면, 웹 콘텐츠(112)는 하이퍼텍스트 마크업 언어(HTML)와 같은 각종의 마크업 언어로 작성된 콘텐츠를 포함할 수 있다. 다른 예로서, 웹 콘텐츠(112)는 자바스크립트와 같은 각종 스크립팅 언어로 작성된 콘텐츠를 포함할 수 있다.
웹 콘텐츠(112)는 스크립트 콘텐츠(스크립팅 언어로 작성된 콘텐츠)와 같이 실행 가능한 적어도 일부 콘텐츠를 포함한다. 웹 콘텐츠(112)의 실행은 웹 콘텐츠(112)를 작동시킨다고도 또한 말한다. 실행 가능한 콘텐츠는 실행되는 컴파일된 명령어, (컴파일 대신에) 해석(interprete)되고 실행되는 명령어 등일 수 있다. 웹 뷰 컨트롤(110)은, 뒤에서 더 자세히 설명하는 바와 같이, 이 콘텐츠를 실행하여 상기 하위 부분(120)에 디스플레이되는 웹 콘텐츠를 생성하는 실행 엔진을 포함한다. 웹 콘텐츠(112)는 이미지, 텍스트, 비디오 등과 같이 웹 뷰 컨트롤(110)에 의해 디스플레이되거나 또는 다른 방식으로 제시되는 추가의 콘텐츠를 선택적으로 포함할 수 있다. 이러한 추가의 콘텐츠는 간단히 디스플레이 또는 다른 방식으로 제시될 수 있고, 상기 추가 콘텐츠의 디스플레이를 생성하도록 실행 또는 다른 방식으로 작동하지 않는다는 점에 주목해야 한다. 웹 콘텐츠(112)의 실행은 실행 가능한 웹 콘텐츠(112)의 상기 부분의 실행을 말한다.
도 2는 하나 이상의 실시형태에 따른, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하는 예시적인 시스템(200)을 보인 도이다. 시스템(200)은 전술한 바와 같은 애플리케이션(104) 및 뷰 컨트롤(110)을 포함한다. 웹 뷰 컨트롤(110)은 애플리케이션 인터페이스(202), 웹 콘텐츠 검색 모듈(204), 프레젠테이션 모듈(206), 실행 엔진(208), 웹 콘텐츠 실행시간 모니터링 모듈(210), 및 웹 콘텐츠 메모리 소비 모니터링 모듈(212)을 포함한다. 웹 뷰 컨트롤(110)은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다.
일반적으로, 시스템(200)의 동작 중에, 애플리케이션(104)은 웹 콘텐츠(112)를 디스플레이하거나 다른 방식으로 제시하게 하는 요청을 웹 뷰 컨트롤(110)에 제공한다. 웹 콘텐츠 검색 모듈(204)은 웹 콘텐츠 소스로부터 웹 콘텐츠(112)를 검색 또는 다른 방식으로 획득하고, 프레젠테이션 모듈(206) 및 실행 엔진(208)에 이용 가능한 웹 콘텐츠(112)의 적당한 부분을 만든다. 프레젠테이션 모듈(206)은 웹 콘텐츠(112)(예를 들면, 텍스트, 이미지 등)의 일부를 디스플레이 또는 다른 방식으로 제시하고, 실행 엔진(208)은 웹 콘텐츠(112)를 실행한다. 웹 콘텐츠(112)의 부분들을 실행한 결과는 실행 엔진(208)에 의해 및/또는 프레젠테이션 모듈(206)에 의해 디스플레이 또는 다른 방식으로 제시될 수 있는데, 이것은 웹 콘텐츠(112)를 디스플레이한다고도 불린다.
애플리케이션 인터페이스(202)는 웹 콘텐츠가 웹 뷰 컨트롤(110)에 의해 디스플레이되는 것을 애플리케이션(104)이 요청할 수 있게 하는 메커니즘이다. 웹 뷰 컨트롤(110)이 웹 콘텐츠를 디스플레이하게 하기 위해, 애플리케이션(104)은 디스플레이될 웹 콘텐츠의 표시(indication)를 애플리케이션 인터페이스(202)에 제공할 수 있다. 그러한 표시는 애플리케이션 인터페이스(202)에 의해 노출되는 애플리케이션 프로그래밍 인터페이스(API)의 방법을 호출하는 것과 같은 다른 방식으로 제공될 수 있다. 대안적으로, 디스플레이될 웹 콘텐츠의 표시를 애플리케이션(104)이 제공하는 대신에, 디스플레이될 웹 콘텐츠는 예를 들면 웹 뷰 컨트롤(110)이 웹 콘텐츠의 표시와 함께 구성되는 것에 의해, 애플리케이션(104) 자체가 웹 뷰 컨트롤(110)에 웹 콘텐츠(112)를 제공하는 것에 의해, 웹 뷰 컨트롤(110)이 웹 콘텐츠 소스의 표시 및 애플리케이션(104)과 관련된 웹 콘텐츠를 식별하는 방법과 함께 구성되거나 상기 표시 및 상기 식별하는 방법을 다른 곳으로부터 획득하는 것에 의해 등의 다른 방식으로 식별될 수 있다.
실행 엔진(208)은 웹 콘텐츠(112)를 실행한다. 하나 이상의 실시형태에 있어서, 실행 엔진(208)(및 선택적으로 웹 뷰 컨트롤(110)의 다른 모듈 또는 인터페이스)는 애플리케이션(104)과 동일한 프로세스로 작동한다. 예를 들면, 실행 엔진(208)은 애플리케이션(104)과 동일한 프로세스로 작동하는 스크립트 엔진일 수 있다. 대안적으로, 실행 엔진(208)은 애플리케이션(104)과 별개의 프로세스로 작동할 수 있다.
애플리케이션 콘텐츠와 웹 콘텐츠가 동시에 디스플레이되기 때문에, 웹 콘텐츠와 관련된 수행 문제는 애플리케이션(104)이 불량하게 수행되고 있는 외관(appearance)을 생성할 수 있다. 따라서, 웹 뷰 컨트롤(110)은 실행 엔진(208)에 의해 실행되는 웹 콘텐츠(112)의 수행을 모니터링하고, 웹 콘텐츠의 수행에 관한 피드백을 애플리케이션(104)에 제공한다. 웹 콘텐츠(112) 실행의 각종의 다른 수행 양태가 뒤에서 자세히 설명하는 바와 같이 모니터링될 수 있다. 웹 뷰 컨트롤(110)은 또한 애플리케이션(104)이 웹 콘텐츠(112)의 실행을 변경하게 할 수 있다. 웹 콘텐츠(112) 실행의 변경은 뒤에서 자세히 설명하는 바와 같이 각종의 다른 방식으로 수행될 수 있다.
하나 이상의 실시형태에 있어서, 실행 엔진(208)에 의해 실행되는 웹 콘텐츠(112) 수행의 모니터링은 웹 콘텐츠(112)가 실행된 시간량(예를 들면, 웹 콘텐츠가 얼마 동안 작동하였는지)의 모니터링을 포함한다. 웹 콘텐츠 실행시간 모니터링 모듈(210)은 실행 엔진(208)에 의한 웹 콘텐츠(112)의 실행을 모니터링하고, 웹 콘텐츠(112)가 실행된 시간량을 계속하여 추적한다. 웹 콘텐츠(112)가 실행된 시간량의 이러한 모니터링은 웹 콘텐츠(또는 스크립트) 관리라고도 부른다.
상기 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 실행된 시간량을 다양한 방식으로 결정할 수 있다. 하나 이상의 실시형태에 있어서, 실행시간 모니터링 모듈(210)은 실행 엔진(208)에 의해 규칙적인 간격으로 또는 불규칙적인 간격으로 수행된 다른 태스크 또는 동작에 배속된다(attached). 예를 들면, 이러한 태스크는 명령어의 실행, 특정 유형의 명령어 실행, 실행 엔진(208)에 의해 수행된 가비지(garbage) 수집(예를 들면, 해방될 수 있는 객체 수집) 등일 수 있다. 다른 태스크가 수행되는 것(또는 다른 태스크가 수행되는 시간)에 응답하여, 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 실행된 시간량을 결정한다. 예를 들면, 실행시간 모니터링 모듈(210)은 실행 엔진(208)이 웹 콘텐츠(112)의 실행을 시작할 때의 시간을 계속하여 기록할 수 있다. 그 다음에, 실행시간 모니터링 모듈(210)은 실행 엔진(208)이 웹 콘텐츠(112)의 실행을 시작할 때의 시간과 현재시간 간의 시간차를 결정함으로써 웹 콘텐츠(112)가 실행된 시간량을 쉽게 결정할 수 있다. 대안적으로, 실행시간 모니터링 모듈(210)은 예를 들면 실행된 명령어의 수, 수행된 다른 태스크의 수(예를 들면, 가비지 수집이 실행 엔진(208)에 의해 몇 회 수행되었는지) 등에 기초하여 각종의 발견적 지도법(heuristics) 또는 규칙을 적용하는 것과 같은 다른 방식으로, 웹 콘텐츠(112)가 실행된 시간량을 결정할 수 있다.
실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 실행된 시간량에 관한 표시를 규칙적 또는 불규칙적 간격으로 애플리케이션(104)에 제공할 수 있다. 그러한 표시를 애플리케이션(104)에 제공할 때의 타이밍은 다른 이벤트 또는 태스크가 수행되는 것에 응답해서(예를 들면, 가비지 수집이 실행 엔진(208)에 의해 수행되는 매 3번째), 애플리케이션(104)으로부터의 표시에 대한 요청에 응답해서, 등에 의해 특정 간격으로(예를 들면, 약 250 밀리초마다)와 같은 다양한 방식으로 결정될 수 있다. 애플리케이션(104)에 제공되는 이 표시는 웹 콘텐츠(112)가 실행된 시간량(예를 들면, 다수의 밀리초)의 명시적 표시일 수 있다.
실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 실행되는 동안에 웹 콘텐츠(112)가 얼마 동안 실행되었는지의 표시를 애플리케이션(104)에 제공하고, 그 다음에 애플리케이션(104)에 대한 그러한 표시의 제공을 중지할 수 있다. 실행시간 모니터링 모듈(210)은, 선택적으로, 웹 콘텐츠(112)가 실행을 중지하였다는 표시를 애플리케이션(104)에 제공할 수 있고, 또는 대안적으로 애플리케이션(104)은 만일 웹 콘텐츠(112)가 얼마 동안 실행되었는지에 관한 표시를 적어도 임계 시간량 동안 실행시간 모니터링 모듈(210)로부터 수신하지 않으면 웹 콘텐츠(112)가 실행을 중지하였다고 추론할 수 있다. 만일 웹 콘텐츠(112)의 실행이 후속적으로 재개되어야 하면, 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 얼마 동안 실행되었는지의 표시를 애플리케이션(104)에 제공하는 것을 재개할 수 있다(선택적으로, 적어도 임계 시간량 동안 실행이 중지된 후에 웹 콘텐츠(112)가 실행을 재개할 때마다 웹 콘텐츠(112)가 실행된 시간량을 리셋할 수 있다).
대안적으로, 웹 콘텐츠(112)가 실행된 시간량을 결정하는 대신에, 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 아직 실행중인지를 단순히 결정할 수 있다. 이 결정은, 시간량을 결정하지 않고서도, 웹 콘텐츠(112)가 실행된 시간량을 결정하는 것과 관련하여 위에서 설명한 것과 유사하게 규칙적 또는 불규칙적 간격으로 이루어질 수 있다. 실행시간 모니터링 모듈(210)은 그 다음에 웹 콘텐츠(112)가 아직 실행중인지에 관한 표시를 규칙적 또는 불규칙적 간격으로 애플리케이션(104)에 제공할 수 있다. 그러한 표시를 애플리케이션(104)에 제공할 때의 타이밍은 다른 이벤트 또는 태스크가 수행되는 것에 응답해서(예를 들면, 가비지 수집이 실행 엔진(208)에 의해 수행되는 매 3번째) 등에 의해 특정 간격으로(예를 들면, 약 250 밀리초마다)와 같은 다양한 방식으로 결정될 수 있다. 애플리케이션(104)은 그 다음에 웹 콘텐츠(112)가 아직 실행중인 실행시간 모니터링 모듈(210)로부터의 표시를 애플리케이션(104)이 얼마 동안 수신하였는지에 기초하여 웹 콘텐츠(112)가 얼마 동안 실행되었는지를 결정할 수 있다.
실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 아직 실행중인지의 표시를 규칙적 또는 불규칙적 간격으로 애플리케이션(104)에 계속하여 제공할 수 있다. 대안적으로, 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)의 실행이 중지될 때 그러한 표시의 제공을 중지하고, 웹 콘텐츠(112)의 실행이 중지되었음을 애플리케이션(104)에 통지하지만 웹 콘텐츠(112)의 실행이 정지되었다는 표시를 애플리케이션(104)에 제공하는 것을 계속하지 않을 수 있다. 만일 웹 콘텐츠(112)의 실행이 후속적으로 재개되어야 하면, 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 실행중이라는 표시를 애플리케이션(104)에 제공하는 것을 재개할 수 있다.
다른 실시형태에 있어서, 애플리케이션(104)은 실행시간 트리거 값을 웹 뷰 컨트롤(110)에 제공한다. 실행시간 트리거 값은 시간량의 표시이고, 만일 웹 콘텐츠(112)가 실행시간 트리거 값을 만족시키는 시간량 동안 실행되면(예를 들면, 적어도 실행시간 트리거 값 시간량 동안 실행되면), 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)의 실행이 실행시간 트리거 값을 만족시켰다는 것(예를 들면, 웹 콘텐츠(112)가 적어도 실행시간 트리거 값 시간량 동안 실행되었다는 것)을 애플리케이션에 통지한다. 웹 콘텐츠(112)가 실행된 시간량은 전술한 바와 같은 다양한 다른 방식으로 실행시간 모니터링 모듈(210)에 의해 결정될 수 있다. 따라서, 실행시간 모니터링 모듈(210)은 웹 콘텐츠(112)가 얼마 동안 실행되었는지를 모니터링할 수 있지만, 웹 콘텐츠(112)가 적어도 특정 시간량 동안 실행되지 않는다면 웹 콘텐츠(112)가 얼마 동안 실행되었는지를 애플리케이션(104)에 통지하지 않는다.
하나 이상의 실시형태에 있어서, 실행 엔진(208)에 의해 실행되는 웹 콘텐츠(112)의 수행의 모니터링은 웹 콘텐츠(112)에 의해 사용된 메모리 양의 모니터링을 포함한다. 웹 콘텐츠 메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)가 사용하거나 소비하는 메모리 양(예를 들면, 시스템(200)을 구현하는 컴퓨팅 장치의 메모리 관리자에 의해 웹 콘텐츠(112) 및/또는 실행 엔진(208)에 할당된 메모리 양)을 모니터링한다.
메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)에 의해 사용된 메모리 양을 다양한 방식으로 결정할 수 있다. 하나 이상의 실시형태에 있어서, 웹 콘텐츠(112)는 복수의 요소를 가진 문서 객체 모델(document object model, DOM)과 같은 데이터 구조로 웹 뷰 컨트롤(110)에 의해 유지된다. 메모리 소비 모니터링 모듈(212)은 상기 데이터 구조를 횡단하여, 상기 복수의 요소 각각에 할당된 메모리 양을 식별하고 상기 복수의 요소 각각에 할당된 메모리 양을 합산할 수 있다. 상기 복수의 요소 각각에 할당된 메모리 양의 합은 웹 콘텐츠(112)에 의해 사용된 메모리의 양이다. 대안적으로, 웹 콘텐츠(112)에 의해 사용된 메모리의 양은 웹 콘텐츠(112) 및/또는 실행 엔진(208)에 의해 행해진 메모리 할당 요청을 모니터링하는 것 및 그러한 요청을 허가하는 것과 같은 다른 방식으로 결정될 수 있다.
메모리 소비 모니터링 모듈(212)이 웹 콘텐츠(112)에 의해 사용된 메모리 양을 결정할 때의 타이밍은 다양한 방식으로 결정될 수 있다. 하나 이상의 실시형태에 있어서, 메모리 소비 모니터링 모듈(212)은 실행 엔진(208)에 의해 규칙적인 간격으로 또는 불규칙적인 간격으로 수행된 다른 태스크 또는 동작에 배속된다. 예를 들면, 이러한 태스크는 명령어의 실행, 특정 유형의 명령어 실행, 실행 엔진(208)에 의해 수행된 가비지 수집(예를 들면, 할당 해제될 수 있는 객체 수집) 등일 수 있다. 다른 태스크가 수행되는 것(또는 다른 태스크가 수행되는 시간)에 응답하여, 메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)가 사용하고 있는 메모리의 양을 결정한다.
메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)가 사용하고 있는 메모리의 양에 관한 표시를 규칙적 또는 불규칙적 간격으로 애플리케이션(104)에 제공할 수 있다. 그러한 표시를 애플리케이션(104)에 제공할 때의 타이밍은 다른 이벤트 또는 태스크가 수행되는 것에 응답해서(예를 들면, 가비지 수집이 실행 엔진(208)에 의해 수행되는 매 3번째), 애플리케이션(104)으로부터의 그러한 표시의 요청에 응답해서 등에 의해 특정 간격으로(예를 들면, 약 250 밀리초마다)와 같은 다양한 방식으로 결정될 수 있다. 이 표시는 웹 콘텐츠(112)가 사용중인 메모리의 양(예를 들면, 다수의 메가바이트)의 명시적 표시일 수 있다. 이 표시는 선택적으로 웹 콘텐츠(112)가 얼마 동안 실행되었는지에 대한 웹 콘텐츠 실행시간 모니터링 모듈(210)에 의해 제공된 표시와 같은 다른 표시와 함께 제공될 수 있다.
메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)가 실행 및/또는 디스플레이되고 있는 동안에 웹 콘텐츠(112)가 사용하고 있는 메모리 양의 표시를 애플리케이션(104)에 제공하고, 그 다음에 애플리케이션(104)에 대한 그러한 표시의 제공을 중지할 수 있다.
다른 실시형태에 있어서, 애플리케이션(104)은 메모리 사용량(memory usage) 트리거 값을 웹 뷰 컨트롤(110)에 제공한다. 메모리 사용량 트리거 값은 메모리 양의 표시이고, 만일 웹 콘텐츠(112)가 상기 트리거 값을 만족시키는 메모리 양을 이용하면(예를 들면, 적어도 메모리 사용량 트리거 값 메모리 양을 이용하면), 메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)가 메모리 사용량 트리거 값을 만족시켰다는 것(예를 들면, 웹 콘텐츠(112)가 적어도 메모리 사용량 트리거 값 메모리 양을 이용한다는 것)을 애플리케이션에 통지한다. 웹 콘텐츠(112)가 사용한 메모리 양은 전술한 바와 같은 다양한 다른 방식으로 메모리 소비 모니터링 모듈(212)에 의해 결정될 수 있다. 따라서, 메모리 소비 모니터링 모듈(212)은 웹 콘텐츠(112)가 사용하고 있는 메모리 양을 모니터링할 수 있지만, 웹 콘텐츠(112)가 적어도 특정 시간량을 사용하지 않는다면 웹 콘텐츠(112)가 사용하고 있는 메모리 양을 애플리케이션(104)에 통지하지 않는다.
웹 뷰 컨트롤(110)(예를 들면, 웹 콘텐츠 메모리 소비 모니터링 모듈(212) 및/또는 웹 콘텐츠 실행시간 모니터링 모듈(210))에 의해 제공된 표시에 응답하여, 애플리케이션(104)은 웹 콘텐츠(112)의 실행을 변경하는 방법에 관한 표시를 웹 뷰 컨트롤(110)에 제공할 수 있다. 웹 콘텐츠(112)의 실행은 다양한 다른 방식으로 변경될 수 있다. 웹 콘텐츠(112)의 실행을 변경할 때 및/또는 변경하는 방법을 웹 뷰 컨트롤(110)에 표시함으로써, 애플리케이션(104)은 웹 콘텐츠의 실행을 제어할 수 있다.
하나 이상의 실시형태에 있어서, 웹 콘텐츠(112)의 실행은 웹 콘텐츠(112)의 실행을 종결(termination)함으로써 변경된다. 애플리케이션(104)은 웹 콘텐츠(112)의 실행을 중지하게 하는 요청 또는 다른 표시를 웹 뷰 컨트롤(110)에 전송하고, 이것에 응답하여 실행 엔진(208)이 웹 콘텐츠(112)의 실행을 정지한다. 웹 콘텐츠(112) 실행의 중지는 선택적으로 시스템의 메모리로부터 웹 콘텐츠(112)를 제거하는 것을 포함하는데, 이것은 웹 콘텐츠(112) 언로딩(예를 들면, 웹 콘텐츠(112) 삭제, 웹 콘텐츠(112) 및/또는 실행 엔진(208)에 할당된 메모리 해방 등)이라고도 불린다. 비록 애플리케이션(104)이 웹 콘텐츠(112)의 실행을 중지하게 하는 요청을 웹 뷰 컨트롤(110)에 전송할 수 있지만, 애플리케이션(104)은 후속적으로 웹 콘텐츠(112)의 실행을 재개하게 하는 요청을 웹 뷰 컨트롤(110)에 전송할 수 있다는 점에 주목하여야 한다. 웹 콘텐츠(112)의 실행을 재개하게 하는 요청에 응답하여, 실행 엔진(208)은 웹 콘텐츠(112)의 실행을 재개한다(예를 들면, 웹 콘텐츠(112)가 아직 메모리에 있거나 그렇지 않으면 웹 뷰 컨트롤(110)에 의해 획득될 수 있다고 가정한다).
대안적으로, 웹 콘텐츠(112)의 실행은 다른 방식으로 변경될 수 있다. 예를 들면, 애플리케이션(104)은 웹 콘텐츠(112)의 실행을 스로틀링할 수 있다. 애플리케이션(104)은 웹 콘텐츠의 실행을 스로틀링하게 하는 요청 또는 표시를 웹 뷰 컨트롤(110)에 전송하고, 이것에 응답하여 실행 엔진(208)은 웹 콘텐츠(112)의 실행과 비실행(예를 들면, 시작과 정지) 사이에서 교대한다. 예를 들면, 실행 엔진(208)은 200 밀리초 동안 웹 콘텐츠의 실행과 100 밀리초 동안 웹 콘텐츠의 비실행 사이에서, 200 밀리초 동안 웹 콘텐츠의 실행과 500 밀리초 동안 웹 콘텐츠의 비실행 사이에서 등으로 교대할 수 있다. 웹 콘텐츠(112)가 실행되어야 하는 시간량은 실행 엔진(208)에서 구성되는 것, 애플리케이션(104)에 의해 웹 뷰 컨트롤(110)에 식별되는 것 등과 같은 다양한 다른 방식으로 결정될 수 있다.
웹 콘텐츠(112)의 실행이 변경되는지 여부, 및/또는 웹 콘텐츠(112)의 실행이 어떻게 변경되어야 하는지는 다양한 다른 방식으로 애플리케이션(104)에 의해 결정될 수 있다. 하나 이상의 실시형태에 있어서, 애플리케이션(104)은 웹 콘텐츠(112)의 실행을 변경하는지 여부 및/또는 변경하는 방법을 결정하기 위해 적용되는 하나 이상의 규칙 또는 기준을 포함하거나 다른 방식으로 획득한다. 이러한 규칙 또는 기준은 웹 콘텐츠(112)가 실행된 시간량, 웹 콘텐츠(112)에 의해 사용된 메모리의 양, 애플리케이션(104)이 실행한 시간량, 애플리케이션(104)에 의해 사용된 메모리의 양, 시스템(200) 내의 다른 애플리케이션에 의해 사용된 메모리의 양 등과 같은 각종 요소를 포함할 수 있다.
하나 이상의 실시형태에 있어서, 애플리케이션(104)은 웹 콘텐츠(112)의 실행을 변경해야 하는지 여부 및/또는 변경하는 방법에 관하여 시스템(200)의 사용자에게도 상기시킬 수 있다. 예를 들면, 사용자는 웹 콘텐츠(112)가 긴 시간량 동안 실행된 것을 통지받을 수 있고(선택적으로 대략 얼마 동안 웹 콘텐츠(112)가 실행되었는지를 사용자에게 명시함), 사용자는 웹 콘텐츠(112)가 많은 메모리를 사용하고 있는 것 등을 통지받을 수 있다(선택적으로 대략 얼마나 많은 메모리를 웹 콘텐츠(112)가 이용하는지를 사용자에게 명시함). 그 다음에 웹 콘텐츠(112)의 실행을 변경해야 하는지 여부 및/또는 변경하는 방법을 표시하는 사용자 입력이 수신될 수 있다.
여기에서의 설명에서는 웹 뷰 컨트롤(110)이 웹 콘텐츠의 수행을 모니터링하고, 웹 콘텐츠의 수행에 관한 피드백을 애플리케이션(104)에 제공하고, 선택적으로 웹 콘텐츠의 수행을 변경하는 것을 언급하였다. 하나 이상의 실시형태에 있어서, 이러한 모니터링, 피드백 제공 및 선택적인 실행 변경은 상이한 복수의 웹 콘텐츠에 대하여 동시에 수행될 수 있다. 예를 들면, 애플리케이션(104)은 하나의 소스로부터의 제1 웹 콘텐츠 및 동일하거나 상이한 소스로부터의 제2 웹 콘텐츠를 임베딩할 수도 있다. 상기 제1 및 제2 웹 콘텐츠는 둘 다 애플리케이션 콘텐츠와 동시에 디스플레이될 수 있고, 웹 뷰 컨트롤(110)은 모니터링, 피드백 제공, 및 제1 웹 콘텐츠와 제2 웹 콘텐츠의 선택적 실행 변경을 개별적으로 행할 수 있다. 예를 들면, 애플리케이션(104)은 제2 웹 콘텐츠의 실행을 종결하지만 제1 웹 콘텐츠의 실행을 변경하지 않는 것으로 결정할 수 있다.
도 3은 하나 이상의 실시형태에 따른 예시적인 애플리케이션 인터페이스(202)를 보인 도이다. 도 3에 도시된 예에 있어서, 애플리케이션 인터페이스(202)는 전술한 웹 뷰 컨트롤(110)의 API이고, 장기 작동 스크립트(long running script) 검출법(302), 스크립트 메모리 정보 취득법(304), 및 스크립트 인에이블형 속성(306)을 포함한다. 이 애플리케이션 인터페이스(202)는 예이고, 애플리케이션 인터페이스(202)는 도시된 요소 및/또는 속성을 모두 포함할 필요가 없으며, 그리고/또는 추가의 요소 및/또는 속성을 포함할 수 있다는 점에 주목해야 한다.
장기 작동 스크립트 검출법(302)은 웹 뷰 컨트롤에 콜백 함수를 제공하기 위해 애플리케이션(예를 들면, 전술한 애플리케이션(104))에 의해 호출된다. 장기 작동 스크립트 검출법(302)은 애플리케이션의 콜백 함수인 파라미터를 포함한다. 웹 뷰 컨트롤은 웹 콘텐츠가 실행된 시간량의 표시를 제공하기 위해 애플리케이션의 콜백 함수를 호출한다. 콜백 함수는 예를 들면 웹 콘텐츠가 실행된 시간량을 파라미터로서 취할 수 있고, 웹 콘텐츠의 실행을 중지해야 하는지 또는 웹 콘텐츠의 실행을 계속해야 하는지를 표시하는 값을 반환할 수 있다. 대안적으로, 콜백 함수는 파라미터를 취할 필요가 없고, 그리고/또는 반환값 없음(no return value), 웹 콘텐츠의 실행이 스로틀링되어야 하는지의 표시, 웹 콘텐츠의 실행이 스로틀링되어야 하는 양(예를 들면, 60 밀리초 동안의 실행과 40 밀리초 동안의 비실행 간의 교대와 같이 시간의 60%를 실행하도록 허용된다), 메모리로부터 웹 콘텐츠를 언로드하기 위한 표시 등과 같은 다른 값들을 반환할 수 있다.
스크립트 메모리 정보 취득법(304)은 웹 콘텐츠가 사용하고 있는 메모리의 양을 요청하기 위해 애플리케이션(예를 들면, 전술한 애플리케이션(104))에 의해 호출된다. 스크립트 메모리 정보 취득법(304)은 파라미터를 포함하지 않는 함수일 수 있고, 웹 콘텐츠가 사용하고 있는 메모리의 양(예를 들면, 다수의 메가바이트)의 표시를 반환한다. 대안적으로, 스크립트 메모리 정보 취득법(304)은 웹 뷰 컨트롤에 콜백 함수를 제공하기 위해 애플리케이션에 의해 호출되는 것과 같은 다른 방법으로 구현될 수 있고, 웹 뷰 컨트롤은 전술한 장기 작동 스크립트 검출법(302)과 유사하게 웹 콘텐츠가 사용하고 있는 메모리의 양의 표시를 제공하기 위해 애플리케이션의 콜백 함수를 호출할 수 있다.
스크립트 인에이블형 속성(306)은 웹 콘텐츠의 실행(예를 들면, 스크립트의 실행)이 인에이블되는지 디스에이블되는지를 표시하는 웹 뷰 컨트롤의 속성이다. 이 속성(306)은 웹 뷰 컨트롤에 의한 웹 콘텐츠의 실행이 현재 인에이블되는지 디스에이블되는지를 결정하기 위해 애플리케이션(예를 들면, 전술한 애플리케이션(104))에 의해 판독될 수 있다. 이 속성(306)은 또한 애플리케이션에 의해 선택적으로 설정 또는 기록되어 웹 뷰 컨트롤에 의한 웹 콘텐츠의 실행이 인에이블되어야 하는지 디스에이블되어야 하는지를 애플리케이션이 명시하게 할 수 있다.
도 4는 하나 이상의 실시형태에 따른, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하기 위한 예시적인 프로세스(400)를 보인 흐름도이다. 프로세스(400)는 전술한 웹 뷰 컨트롤(110)과 같은 웹 뷰 컨트롤에 의해 수행되고, 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 프로세스(400)는 블록들의 집합으로 도시되고, 각종 블록의 동작을 수행함에 있어서 도시된 순서로 제한되지 않는다. 프로세스(400)는 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하기 위한 예시적인 프로세스이고, 임베디드 웹 콘텐츠 실행의 애플리케이션 제어를 구현하는 다른 설명들이 다른 도면과 관련하여 여기에 포함된다.
프로세스(400)에 있어서, 웹 콘텐츠가 획득된다(단계 402). 웹 콘텐츠는 전술한 바와 같이 각종 소스로부터 획득될 수 있고, 실행 또는 작동 가능한 적어도 일부 콘텐츠를 포함한다.
웹 콘텐츠는 웹 콘텐츠를 호스팅하는 애플리케이션의 애플리케이션 콘텐츠와 동시에 디스플레이된다(단계 404). 웹 콘텐츠를 호스팅하는 애플리케이션은 웹 콘텐츠가 임베딩된 애플리케이션이다. 웹 콘텐츠는, 웹 콘텐츠에 포함된 임의의 이미지, 텍스트 또는 다른 디스플레이 가능한 콘텐츠를 디스플레이할 뿐만 아니라 실행 또는 작동 가능한 웹 콘텐츠의 실행 또는 작동(예를 들면, 웹 콘텐츠에 포함된 하나 이상의 스크립트의 실행) 결과를 디스플레이함으로써 디스플레이된다.
웹 콘텐츠의 수행이 모니터링된다(단계 406). 웹 콘텐츠의 수행은 다양한 다른 방식으로 모니터링될 수 있다. 예를 들면, 웹 콘텐츠의 수행은, 전술한 바와 같이 웹 콘텐츠가 실행되는 시간량을 모니터링함으로써 모니터링될 수 있다(단계 408). 추가적으로 또는 대안적으로, 웹 콘텐츠의 수행은, 전술한 바와 같이 웹 콘텐츠에 의해 사용된(소비된) 메모리의 양을 모니터링함으로써 모니터링될 수 있다(단계 410).
웹 콘텐츠의 수행에 관한 피드백이 웹 콘텐츠를 호스팅하는 애플리케이션에 제공된다(단계 412). 피드백은 전술한 바와 같이 웹 콘텐츠가 얼마 동안 실행되었는지의 표시, 웹 콘텐츠가 아직 실행중인지의 표시, 웹 콘텐츠에 의해 소비된 메모리 양의 표시 등과 같은 다양한 다른 방식으로 제공될 수 있다.
웹 콘텐츠의 실행은 애플리케이션으로부터의 표시에 기초하여 변경될 수 있다(단계 414). 이 표시들은 전형적으로 단계 412에서 제공된 피드백에 응답하여 제공되지만, 대안적으로 다른 동작 또는 이벤트에 응답하여 제공될 수 있다. 웹 콘텐츠의 실행은 전술한 바와 같이 웹 콘텐츠의 실행 중지, 웹 콘텐츠의 실행 스로틀링, 메모리로부터 웹 콘텐츠의 언로딩 등과 같은 다양한 방식으로 변경될 수 있다. 표시가, 단계 412에서 제공된 피드백에 응답하여 애플리케이션으로부터 수신될 필요는 없고, 그 경우 웹 콘텐츠의 실행 변경은 단계 414에서 수행될 필요가 없다는 점에 주목해야 한다. 예를 들면, 애플리케이션은 웹 콘텐츠의 실행 변경이 바람직하지 않다는 것을 단계 412에서 제공된 피드백에 기초하여 결정하고, 웹 뷰 컨트롤에 그러한 표시를 제공하지 않을 수 있으며, 그 경우 웹 뷰 컨트롤은 웹 콘텐츠의 실행을 계속한다.
여기에서 설명한 기술들은 각종 사용량 시나리오를 지원한다. 예를 들면, 애플리케이션은 애플리케이션 콘텐츠와 동시에 디스플레이되는 웹 콘텐츠를 임베딩하고 웹 콘텐츠가 너무 많은 메모리를 사용하는지 또는 너무 오랫동안 실행되고 있는 스크립트를 포함하는지 결정할 수 있다. 만일 웹 콘텐츠가 너무 많은 메모리를 사용하거나 또는 너무 오랫동안 실행되고 있는 스크립트를 포함한다고 애플리케이션이 결정하면, 애플리케이션은 스크립트의 실행을 종결하고 그리고/또는 웹 콘텐츠를 메모리로부터 언로드할 수 있다. 다른 예로서, 애플리케이션은 애플리케이션 콘텐츠와 동시에 디스플레이되는 웹 콘텐츠를 임베딩하고 웹 콘텐츠가 너무 많은 메모리를 사용하는지 또는 너무 오랫동안 실행되고 있는 스크립트를 포함하는지 결정할 수 있다. 만일 웹 콘텐츠가 너무 많은 메모리를 사용하거나 또는 너무 오랫동안 실행되고 있는 스크립트를 포함한다고 애플리케이션이 결정하면, 애플리케이션은 웹 콘텐츠가 많은 메모리를 사용한다는 것 또는 장시간 동안 실행되고 있다는 것을 시스템 사용자에게 통지할 수 있다. 따라서, 사용자는 인지된 수행상의 문제점이 애플리케이션 자체보다는 웹 콘텐츠에서 기인할 수 있다는 것을 통지받고, 사용자는 웹 콘텐츠의 실행을 종결하는 기회를 가질 수 있다.
비록 특정의 기능이 특정 모듈과 관련하여 여기에서 설명되지만, 여기에서 설명하는 개별 모듈의 기능은 복수의 모듈로 분리될 수 있고, 그리고/또는 복수 모듈의 적어도 일부 기능이 단일 모듈로 통합될 수 있다는 점에 주목하여야 한다. 추가로, 동작을 수행하는 것으로서 여기에서 설명한 특정 모듈은 동작을 수행하는 상기 특정 모듈 자체를 포함하거나, 또는 대안적으로 동작을 수행하는(또는 상기 특정 모듈과 함께 동작을 수행하는) 다른 컴포넌트 또는 모듈을 호출하거나 다른 방식으로 액세스하는 특정 모듈을 포함한다는 점에 주목하여야 한다. 따라서, 동작을 수행하는 특정 모듈은 동작을 수행하는 특정 모듈 자체, 및/또는 동작을 수행하는 특정 모듈에 의해 호출 또는 다른 방식으로 액세스되는 다른 모듈을 포함한다.
도 5는 여기에서 설명하는 각종 기술을 구현할 수 있는 하나 이상의 시스템 및/또는 장치를 나타내는 예시적인 컴퓨팅 장치(502)를 포함한 예시적인 시스템을 전체적으로 500의 참조 번호로 보인 도이다. 컴퓨팅 장치(502)는 예를 들면 서비스 제공자의 서버, 클라이언트와 연관된 장치(예를 들면, 클라이언트 장치), 온칩 시스템, 및/또는 임의의 다른 적당한 컴퓨팅 장치 또는 컴퓨팅 시스템일 수 있다.
도시된 예시적인 컴퓨팅 장치(502)는 처리 시스템(504), 하나 이상의 컴퓨터 판독가능 매체(506), 및 하나 이상의 I/O 인터페이스(508)를 포함하고, 이들은 서로 통신적으로 결합된다. 비록 도시 생략하였지만, 컴퓨팅 장치(502)는 각종 컴포넌트를 서로 결합하는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 또한 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 범용 직렬 버스, 및/또는 다양한 버스 구조 중 임의의 버스 구조를 이용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조 중의 임의의 하나 또는 그 조합을 포함할 수 있다. 제어 라인 및 데이터 라인과 같은 각종의 다른 예도 또한 발상된다.
처리 시스템(504)은 하드웨어를 이용하여 하나 이상의 동작을 수행하는 기능을 대표한다. 따라서, 처리 시스템(504)은 프로세서, 기능 블록 등으로서 구성될 수 있는 하드웨어 요소(510)를 포함하는 것으로서 도시되어 있다. 이것은 주문형 반도체(ASIC), 또는 하나 이상의 반도체를 이용하여 형성된 다른 논리 장치로서 하드웨어로 구현되는 것을 포함한다. 하드웨어 요소(510)는 그 하드웨어 요소(510)를 형성하는 물질 또는 하드웨어 요소(510)에서 사용하는 처리 메커니즘에 의해 제한되지 않는다. 예를 들면, 프로세서는 반도체 및/또는 트랜지스터를 포함할 수 있다(예를 들면, 전자 집적회로(IC)). 그러한 상황에서, 프로세서 실행가능 명령어는 전자적으로 실행가능한 명령어일 수 있다.
컴퓨터 판독가능 매체(506)는 메모리/스토리지(512)를 포함하는 것으로 도시되어 있다. 메모리/스토리지(512)는 하나 이상의 컴퓨터 판독가능 매체와 연관된 메모리/스토리지 능력을 나타낸다. 메모리/스토리지(512)는 휘발성 매체(예를 들면, 랜덤 액세스 메모리(RAM)) 및/또는 비휘발성 매체(예를 들면, 읽기 전용 메모리(ROM), 플래시 메모리, 광디스크, 자기디스크 등)를 포함할 수 있다. 메모리/스토리지(512)는 고정형 매체(예를 들면, RAM, ROM, 고정형 하드 드라이브 등)뿐만 아니라 분리형 매체(예를 들면, 플래시 메모리, 분리형 하드 드라이브, 광디스크 등)를 포함할 수 있다. 컴퓨터 판독가능 매체(506)는 뒤에서 더 설명하는 바와 같은 다양한 다른 방법으로 구성될 수 있다.
입력/출력 인터페이스(508)는 사용자가 컴퓨팅 장치(502)에 커맨드 및 정보를 입력하게 하고 정보가 각종 입력/출력 장치를 이용하여 사용자 및/또는 다른 컴포넌트 또는 장치에 제시되게 하는 기능을 대표한다. 입력 장치의 예로는 키보드, 커서 제어 장치(예를 들면, 마우스), 마이크로폰(예를 들면, 음성 입력용), 스캐너, 터치 기능(예를 들면, 물리적 터치를 검출하도록 구성된 용량성 또는 다른 센서), 카메라(예를 들면, 제스처로서 터치를 수반하지 않는 움직임을 검출하도록 적외선 주파수와 같은 가시적 또는 비가시적 파장을 사용할 수 있음) 등이 있다. 출력 장치의 예로는 디스플레이 장치(예를 들면, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 장치 등이 있다. 따라서, 컴퓨팅 장치(502)는 사용자 상호작용을 지원하도록 뒤에서 더 설명되는 다양한 방법으로 구성될 수 있다.
컴퓨팅 장치(502)는 웹 뷰 컨트롤(514)을 또한 포함한다. 웹 뷰 컨트롤(514)은 예를 들면 전술한 웹 뷰 컨트롤(110)일 수 있다.
각종 기술들을 소프트웨어, 하드웨어 요소, 또는 프로그램 모듈의 일반적인 관계로서 여기에서 설명하였다. 일반적으로, 그러한 모듈은 특정 태스크를 수행하거나 또는 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 여기에서 사용하는 용어 "모듈", "기능" 및 "컴포넌트"는 일반적으로 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 나타낸다. 여기에서 설명한 기술들의 특징(feature)은 플랫폼 독립형이고, 이것은 기술들이 다양한 프로세서를 구비한 다양한 컴퓨팅 플랫폼에서 구현될 수 있다는 것을 의미한다.
설명한 모듈 및 기술들의 구현은 소정 형태의 컴퓨터 판독가능 매체에 저장되거나 컴퓨터 판독가능 매체를 통해 전달될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 장치(502)에 의해 액세스 가능한 다양한 매체를 포함할 수 있다. 비제한적인 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 판독가능 기억 매체" 및 "컴퓨터 판독가능 신호 매체"를 포함할 수 있다.
"컴퓨터 판독가능 기억 매체"는 단순한 신호 전송, 반송파 또는 신호 자체와 대조적으로 정보의 영속적 저장이 가능한 매체 및/또는 장치, 및/또는 형체가 있는 스토리지를 말한다. 따라서, 컴퓨터 판독가능 기억 매체는 비신호 베어링 매체(non-signal bearing media)를 말한다. 컴퓨터 판독가능 기억 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 논리 요소/회로 또는 기타 데이터와 같은 정보의 저장에 적당한 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체 및/또는 기억 장치 등의 하드웨어를 포함한다. 컴퓨터 판독가능 기억 매체의 비제한적인 예를 들자면 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 스토리지, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 장치, 또는 다른 스토리지 장치, 유형적인 매체, 또는 원하는 정보를 저장하기에 적당하고 컴퓨터에 의해 액세스될 수 있는 제조 물품을 포함한다.
"컴퓨터 판독가능 신호 매체"는 예를 들면 네트워크를 통해 컴퓨팅 장치(502)의 하드웨어에 명령어를 전송하도록 구성된 신호 베어링 매체를 말한다. 신호 매체는 전형적으로 반송파, 데이터 신호 또는 다른 전달 메커니즘과 같이, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 변조된 데이터 신호 내의 다른 데이터를 포함할 수 있다. 신호 매체는 임의의 정보 전달 매체를 또한 포함한다. 용어 "변조된 데이터 신호"는 하나 이상의 특성 집합을 갖거나 신호 내의 정보를 인코딩하는 그러한 방식으로 변경된 신호를 의미한다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 또는 음파, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다.
전술한 바와 같이, 하드웨어 요소(510) 및 컴퓨터 판독가능 매체(506)는 여기에서 설명하는 기술들 중 적어도 일부 양태를 구현하기 위해 일부 실시형태에서 사용될 수 있는 하드웨어 형태로 구현되는 명령어, 모듈, 프로그래머블 논리 장치 및/또는 고정형 논리 장치를 대표한다. 하드웨어 요소는 집적회로 또는 온칩 시스템, 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 복합 프로그래머블 논리 장치(CPLD) 및 실리콘 또는 다른 하드웨어 장치의 다른 구현예의 컴포넌트들을 포함할 수 있다. 이러한 상황에서, 하드웨어 요소는, 그 하드웨어 요소에 의해 포함되는 명령어, 모듈 및/또는 로직에 의해 규정된 프로그램 태스크를 수행하는 처리 장치뿐만 아니라 실행용 명령어를 저장하기 위해 사용되는 하드웨어 장치, 예를 들면, 전술한 컴퓨터 판독가능 기억 매체로서 동작할 수 있다.
여기에서 설명한 각종 기술 및 모듈을 구현하기 위해 전술한 실시형태들의 조합을 또한 사용할 수 있다. 따라서, 소프트웨어, 하드웨어 또는 프로그램 모듈 및 기타 프로그램 모듈은 일부 형태의 컴퓨터 판독가능 기억 매체 상에 포함되는 하나 이상의 명령어 및/또는 로직으로서 그리고/또는 하나 이상의 하드웨어 요소(510)에 의해 구현될 수 있다. 따라서, 소프트웨어로서 컴퓨팅 장치(502)에 의해 실행 가능한 모듈로서의 모듈의 구현은 예를 들면 컴퓨터 판독가능 기억 매체 및/또는 처리 시스템의 하드웨어 요소(510)를 사용함으로써 적어도 부분적으로 하드웨어로 달성될 수 있다. 명령어 및/또는 기능은 여기에서 설명하는 기술, 모듈 및 예들을 구현하기 위해 하나 이상의 제조 물품(예를 들면, 하나 이상의 컴퓨팅 장치(502) 및/또는 처리 시스템(504))에 의해 실행/동작할 수 있다.
도 5에 또한 도시된 바와 같이, 예시적인 시스템(500)은 애플리케이션을 퍼스널 컴퓨터(PC), 텔레비전 장치, 및/또는 모바일 장치에서 작동시킬 때 끊김없는(seamless) 사용자 경험을 위한 유비쿼터스 환경을 가능하게 한다. 서비스 및 애플리케이션은 애플리케이션을 활용하고 비디오 게임을 하고 비디오를 보는 동안 하나의 장치로부터 다른 장치로 천이할 때 공통적인 사용자 경험을 위한 3개의 환경 모두에서 실질적으로 유사하게 작동한다.
예시적인 시스템(500)에 있어서, 복수의 장치가 중앙 컴퓨팅 장치를 통하여 상호접속된다. 중앙 컴퓨팅 장치는 복수의 장치에 대하여 국부적일 수 있고, 또는 복수의 장치로부터 원격에 위치할 수 있다. 하나 이상의 실시형태에 있어서, 중앙 컴퓨팅 장치는 네트워크, 인터넷 또는 다른 데이터 통신 링크를 통하여 복수의 장치에 접속된 하나 이상의 서버 컴퓨터의 클라우드일 수 있다.
하나 이상의 실시형태에 있어서, 이러한 상호접속 구조는 기능이 복수의 장치에 걸쳐 전달되어 공통적이고 끊김없는 경험을 복수 장치의 사용자에게 제공할 수 있게 한다. 복수의 장치는 각각 상이한 물리적 요구 및 능력을 가질 수 있고, 중앙 컴퓨팅 장치는 장치에 맞추어져 있으면서 모든 장치에 공통적인 장치에 대한 경험의 전달을 가능하게 하기 위해 플랫폼을 사용한다. 하나 이상의 실시형태에 있어서, 목표 장치의 분류(class)가 생성되고 경험이 장치들의 일반적인 분류에 맞추어진다. 장치들의 분류는 장치의 물리적 특징, 용도 유형, 또는 다른 공통적 특성에 의해 규정될 수 있다.
각종 구현예에 있어서, 컴퓨팅 장치(502)는 컴퓨터(516), 모바일(518) 및 텔레비전 용도와 같이 다양한 다른 구성을 상정할 수 있다. 이러한 구성들은 각각 일반적으로 상이한 구성 및 능력을 가진 장치를 포함하고, 따라서 컴퓨팅 장치(502)는 하나 이상의 상이한 장치 분류에 따라 구성될 수 있다. 예를 들면, 컴퓨팅 장치(502)는 퍼스널 컴퓨터, 데스크톱 컴퓨터, 멀티스크린 컴퓨터, 랩톱 컴퓨터, 넷북 등을 포함하는 장치의 컴퓨터(516) 분류로서 구현될 수 있다.
컴퓨팅 장치(502)는 이동 전화기, 휴대용 뮤직 플레이어, 휴대용 게임 장치, 태블릿 컴퓨터, 멀티스크린 컴퓨터 등과 같은 모바일 장치를 포함한 장치의 모바일(518) 분류로서 또한 구현될 수 있다. 컴퓨팅 장치(502)는 평상시의 시청 환경에서 일반적으로 더 큰 화면을 갖거나 상기 화면에 접속된 장치를 포함한 장치의 텔레비전(520) 분류로서 또한 구현될 수 있다.
여기에서 설명한 기술들은 각종 구성의 컴퓨팅 장치(502)에 의해 지원되고 여기에서 설명한 특정 예의 기술로 제한되지 않는다. 이 기능은 또한 뒤에서 설명하는 것처럼 예를 들면 플랫폼(524)을 경유하여 "클라우드"(522)를 통한 분산형 시스템을 사용하여 전부 또는 부분적으로 구현될 수 있다.
클라우드(522)는 리소스(526)용의 플랫폼(524)을 포함하고 그리고/또는 그러한 플랫폼(524)을 대표한다. 플랫폼(524)은 클라우드(522)의 하드웨어(예를 들면, 서버) 및 소프트웨어 리소스의 하부 기능을 추출(abstract)한다. 리소스(526)는 컴퓨팅 장치(502)로부터 원격에 있는 서버 상에서 컴퓨터 처리가 실행되는 동안 활용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 리소스(526)는 또한 셀룰러 또는 와이파이 네트워크와 같은 가입자 네트워크를 통해서 그리고/또는 인터넷을 통해서 제공되는 서비스를 포함할 수 있다.
플랫폼(524)은 컴퓨팅 장치(502)를 다른 컴퓨팅 장치와 접속하기 위한 리소스 및 기능을 추출할 수 있다. 플랫폼(524)은 그 플랫폼(524)을 통해 구현되는 리소스(526)의 충돌 요구(encountered demand)에 대한 대응하는 스케일 레벨을 제공하기 위해 리소스의 스케일링을 추출하도록 또한 소용될 수 있다. 따라서, 상호접속 장치 실시형태에서, 여기에서 설명한 기능의 구현은 시스템(500) 전체에 분산될 수 있다. 예를 들면, 기능은 컴퓨팅 장치(502)에서뿐만 아니라, 클라우드(522)의 기능을 추출하는 플랫폼(524)을 통하여 부분적으로 구현될 수 있다.
비록 발명의 대상이 구조적 특징 및/또는 방법적 단계에 특유한 언어로 설명되어 있지만, 첨부된 청구범위에서 규정되는 발명의 대상은 반드시 전술한 특유의 특징 또는 단계들로 제한되지 않는다는 것을 이해하여야 한다. 오히려, 전술한 특유의 특징 및 단계들은 청구범위를 구현하는 예시적인 형태로서 개시된다.

Claims (20)

  1. 컴퓨팅 장치에 의해 각 단계가 수행되는 방법에 있어서,
    다수의 인스턴스의 웹 콘텐츠를 취득하는 단계로서, 상기 다수의 인스턴스의 웹 콘텐츠 중 적어도 하나는 스크립트를 포함하는 것인, 상기 취득하는 단계와,
    애플리케이션에 임베딩(embedding)된 상기 다수의 인스턴스의 웹 콘텐츠를 상기 애플리케이션의 콘텐츠와 동시에 디스플레이하는 단계로서, 상기 스크립트의 실행 결과를 디스플레이하는 단계를 포함하고, 디스플레이된 다수의 인스턴스의 웹 콘텐츠 각각은 상이한 소스를 갖는 것인, 상기 디스플레이하는 단계와,
    상기 애플리케이션으로부터 트리거 값을 수신하는 단계와,
    상기 트리거 값에 대해 상기 스크립트가 실행되어온 시간 양을 모니터링하는 단계와,
    상기 웹 콘텐츠가 실행되고 있는 동안에 상기 트리거 값이 만족되는 것에 응답하여 상기 디스플레이된 다수의 인스턴스의 웹 콘텐츠 각각에 대한 수행(performance)에 관해 상기 애플리케이션에 피드백을 제공하는 단계와,
    상기 피드백에 응답하여 상기 애플리케이션이 상기 웹 콘텐츠의 실행을 변경하도록 허용하는 단계로서, 제2 인스턴스의 상기 디스플레이된 웹 콘텐츠의 실행을 변경하지 않고서 제1 인스턴스의 상기 디스플레이된 웹 콘텐츠의 실행을 종결시키는 단계를 포함하는, 상기 애플리케이션이 상기 웹 콘텐츠의 실행을 변경하도록 허용하는 단계와,
    상기 제1 인스턴스의 웹 콘텐츠가 더 이상 실행되고 있지 않다면 상기 제1 인스턴스의 웹 콘텐츠에 대한 수행에 관해 상기 애플리케이션에 피드백을 제공하는 것을 중지하는 단계
    를 포함하는 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  2. 제1항에 있어서, 상기 모니터링하는 단계는 상기 스크립트를 실행할 때에 상기 스크립트의 수행을 모니터링하는 단계를 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  3. 제1항에 있어서, 상기 모니터링하는 단계는 상기 스크립트를 실행할 때에 상기 스크립트의 수행을 모니터링하는 단계를 포함하며, 상기 웹 콘텐츠의 실행을 변경하는 것은 상기 스크립트의 실행을 스로틀링(throttling)하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  4. 제1항에 있어서, 상기 애플리케이션에 피드백을 제공하는 단계는, 상기 웹 콘텐츠에 의해 사용되는 메모리 양에 관해 피드백을 제공하는 단계를 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  5. 제1항에 있어서, 상기 웹 콘텐츠의 실행을 변경하는 것은, 상기 애플리케이션의 콘텐츠를 계속 디스플레이하면서 상기 웹 콘텐츠의 실행을 종결시키는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  6. 제1항에 있어서, 상기 웹 콘텐츠의 적어도 일부를 실행하는 실행 엔진이 상기 애플리케이션과 동일한 프로세스에서 구동(running)하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  7. 제1항에 있어서, 상기 피드백을 제공하는 단계는, 상기 애플리케이션으로부터의 피드백에 대한 요청에 응답하여 상기 애플리케이션에 피드백을 제공하는 단계를 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  8. 제1항에 있어서, 상기 피드백을 제공하는 단계는, 상기 웹 콘텐츠의 수행에 대한 표시(indication)를 규칙적 또는 불규칙적 간격으로 상기 애플리케이션에 전송하는 단계를 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  9. 제8항에 있어서, 상기 표시는 상기 웹 콘텐츠가 실행되어온 시간 양을 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  10. 제8항에 있어서, 상기 표시는 상기 웹 콘텐츠에 의해 사용되는 메모리 양을 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  11. 제1항에 있어서, 상기 트리거 값은 메모리 사용 트리거 값을 더 포함하고, 상기 피드백을 제공하는 단계는 상기 웹 콘텐츠가 적어도 상기 메모리 사용 트리거 값의 메모리 양을 사용하고 있음을 표시하는 피드백을 상기 애플리케이션에 제공하는 단계를 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  12. 컴퓨팅 장치에 의해 각 단계가 수행되는 방법에 있어서,
    다수의 인스턴스의 웹 콘텐츠를 취득하는 단계로서, 상기 다수의 인스턴스의 웹 콘텐츠 중 적어도 하나는 스크립트를 포함하는 것인, 상기 취득하는 단계와,
    애플리케이션 콘텐츠와 상기 애플리케이션 콘텐츠에 임베딩된 상기 다수의 인스턴스의 웹 콘텐츠 둘 다를 동시에 디스플레이하는 단계로서, 상기 스크립트의 실행 결과를 디스플레이하는 단계를 포함하고, 디스플레이된 다수의 인스턴스의 웹 콘텐츠 각각은 상이한 소스를 갖는 것인, 상기 디스플레이하는 단계와,
    상기 스크립트가 실행되어온 시간 양을 모니터링하는 단계와,
    상기 스크립트가 얼마나 오랫동안 실행되고 있었는지에 대한 표시를 적어도 포함하는, 상기 디스플레이된 다수의 인스턴스의 웹 콘텐츠 각각마다의 수행에 대한 하나 이상의 표시를 규칙적 또는 불규칙적 간격으로 상기 애플리케이션에 제공하는 단계와,
    상기 수행에 대한 하나 이상의 표시가 트리거 값을 만족시킬 때에 상기 애플리케이션에 통지를 전송하는 단계와,
    상기 애플리케이션으로부터 상기 스크립트의 실행을 종결시키는 종결 표시를 수신하는 단계와,
    상기 애플리케이션으로부터의 종결 표시에 응답하여, 또 다른 인스턴스의 웹 콘텐츠의 실행을 변경하지 않고서, 상기 디스플레이된 다수의 인스턴스의 웹 콘텐츠 중 하나 이상의 실행을 종결시키는 단계
    를 포함하는 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  13. 제12항에 있어서, 상기 하나 이상의 표시를 제공하는 단계는, 상기 다수의 인스턴스의 웹 콘텐츠 중 적어도 하나의 수행에 대한 하나 이상의 표시를, 규칙적 또는 불규칙적 간격으로 전송하는 단계를 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  14. 제13항에 있어서, 상기 다수의 인스턴스의 웹 콘텐츠 중 적어도 하나의 수행은 상기 웹 콘텐츠에 의해 사용되는 메모리의 양을 더 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  15. 제12항에 있어서, 상기 트리거 값은 메모리 사용 트리거 값을 더 포함하고, 상기 하나 이상의 표시를 제공하는 단계는, 상기 다수의 인스턴스의 웹 콘텐츠 중 적어도 하나가 적어도 상기 메모리 사용 트리거 값의 메모리 양을 사용하고 있다면 상기 애플리케이션에 상기 하나 이상의 표시를 제공하는 단계를 더 포함하는 것인 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  16. 제12항에 있어서,
    상기 애플리케이션으로부터 상기 스크립트의 실행을 스로틀링(throttling)하는 스로틀링 표시를 수신하는 단계와,
    상기 스크립트의 실행을 스로틀링하는 단계를 더 포함하는 컴퓨팅 장치에 의해 각 단계가 수행되는 방법.
  17. 컴퓨팅 장치에 있어서,
    하나 이상의 프로세서와,
    다수의 명령어들이 저장된 컴퓨터 판독가능 저장 매체
    를 포함하고,
    상기 명령어들은, 상기 하나 이상의 프로세서에 의한 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금,
    다수의 인스턴스의 웹 콘텐츠를 취득하는 동작으로서, 상기 다수의 인스턴스의 웹 콘텐츠 중 적어도 하나는 스크립트를 포함하는 것인, 상기 취득하는 동작과,
    애플리케이션 콘텐츠와 상기 애플리케이션 콘텐츠에 임베딩된 다수의 인스턴스의 웹 콘텐츠 둘 다를 동시에 디스플레이하는 동작으로서, 상기 스크립트의 실행 결과를 디스플레이하는 동작을 포함하고, 디스플레이된 다수의 인스턴스의 웹 콘텐츠 각각은 상이한 소스를 갖는 것인, 상기 디스플레이하는 동작과,
    상기 스크립트가 실행되어온 시간 양을 모니터링하는 동작과,
    상기 스크립트가 얼마나 오랫동안 실행되고 있었는지에 대한 표시를 적어도 포함하는, 상기 디스플레이된 다수의 인스턴스의 웹 콘텐츠 각각마다의 수행에 대한 하나 이상의 표시를, 규칙적 또는 불규칙적 간격으로 상기 애플리케이션에 제공하는 동작과,
    상기 수행에 대한 하나 이상의 표시가 트리거 값을 만족시킬 때에 상기 애플리케이션에 통지를 전송하는 동작과,
    상기 애플리케이션으로부터 상기 스크립트의 실행을 종결시키는 종결 표시를 수신하는 동작과,
    상기 애플리케이션으로부터의 종결 표시에 응답하여, 또 다른 인스턴스의 웹 콘텐츠의 실행을 변경하지 않고서, 상기 스크립트의 실행을 종결시키는 동작
    을 포함하는 동작들을 수행하게 하는 것인 컴퓨팅 장치.
  18. 제17항에 있어서, 상기 트리거 값은 메모리 사용 트리거 값을 포함하고, 상기 통지를 전송하는 동작은, 상기 웹 콘텐츠가 적어도 상기 메모리 사용 트리거 값의 메모리 양을 사용하고 있을 때에 통지를 전송하는 동작을 포함하는 것인 컴퓨팅 장치.
  19. 제17항에 있어서, 상기 트리거 값은 실행 시간 트리거 값을 포함하고, 상기 통지를 전송하는 동작은, 상기 웹 콘텐츠가 적어도 상기 실행 시간 트리거 값의 시간 양 동안 실행되어 왔다면 상기 통지를 전송하는 동작을 포함하는 것인 컴퓨팅 장치.
  20. 제17항에 있어서, 상기 웹 콘텐츠는 상기 컴퓨팅 장치에 의해 디스플레이될 이미지, 텍스트 및 비디오 중 하나 이상인 것인 컴퓨팅 장치.
KR1020167000748A 2013-06-14 2013-09-20 임베디드 웹 콘텐츠 실행의 애플리케이션 제어 KR102225476B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/918,758 US9288125B2 (en) 2013-06-14 2013-06-14 Application control of embedded web content execution
US13/918,758 2013-06-14
PCT/US2013/060761 WO2014200532A1 (en) 2013-06-14 2013-09-20 Application control of embedded web content execution

Publications (2)

Publication Number Publication Date
KR20160021202A KR20160021202A (ko) 2016-02-24
KR102225476B1 true KR102225476B1 (ko) 2021-03-08

Family

ID=49305160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167000748A KR102225476B1 (ko) 2013-06-14 2013-09-20 임베디드 웹 콘텐츠 실행의 애플리케이션 제어

Country Status (5)

Country Link
US (1) US9288125B2 (ko)
EP (1) EP3008631A1 (ko)
KR (1) KR102225476B1 (ko)
CN (1) CN105324766B (ko)
WO (1) WO2014200532A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110113844A (ko) * 2010-04-12 2011-10-19 엘지전자 주식회사 이동 단말기 및 그 제어방법
US9319422B2 (en) * 2014-03-31 2016-04-19 International Business Machines Corporation Detecting remote operation of a computer
US10620996B2 (en) * 2017-04-26 2020-04-14 Servicenow, Inc. Batching asynchronous web requests
US11983235B2 (en) * 2021-09-22 2024-05-14 International Business Machines Corporation Dynamic resource usage web browser

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061783A1 (en) 2005-09-09 2007-03-15 Sun Microsystems, Inc. Task dispatch monitoring for dynamic adaptation to system conditions
US8250228B1 (en) 2011-09-27 2012-08-21 Google Inc. Pausing or terminating video portion while continuing to run audio portion of plug-in on browser
US20130061129A1 (en) 2011-09-07 2013-03-07 Compuware Corporation Performance monitoring of a media player launched by a web browser

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799208B1 (en) 2000-05-02 2004-09-28 Microsoft Corporation Resource manager architecture
US8341268B2 (en) * 2009-08-28 2012-12-25 Microsoft Corporation Resource sharing in multi-principal browser
US8881055B1 (en) * 2010-05-18 2014-11-04 Google Inc. HTML pop-up control
CN102035696B (zh) * 2010-12-22 2012-10-03 中国工商银行股份有限公司 一种网站访问性能监测方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061783A1 (en) 2005-09-09 2007-03-15 Sun Microsystems, Inc. Task dispatch monitoring for dynamic adaptation to system conditions
US20130061129A1 (en) 2011-09-07 2013-03-07 Compuware Corporation Performance monitoring of a media player launched by a web browser
US8250228B1 (en) 2011-09-27 2012-08-21 Google Inc. Pausing or terminating video portion while continuing to run audio portion of plug-in on browser

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"What determines that a script is long-running? | NCZOnline", https://humanwhocodes.com/blog/2009/01/05/what-determines-that-a-script-is-long-running/, 5 January 2009

Also Published As

Publication number Publication date
US9288125B2 (en) 2016-03-15
CN105324766A (zh) 2016-02-10
KR20160021202A (ko) 2016-02-24
CN105324766B (zh) 2019-09-03
WO2014200532A1 (en) 2014-12-18
US20140372594A1 (en) 2014-12-18
EP3008631A1 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
US10503371B2 (en) Virtual tabs supporting web content suspension
CN108369456B (zh) 用于触摸输入设备的触觉反馈
KR102076379B1 (ko) 지속적이고 회복력 있는 워커 프로세스
US20130031490A1 (en) On-demand tab rehydration
JP5813102B2 (ja) ユーザーインターフェース内での互換性のないコンテンツのレンダリング
KR20160141838A (ko) 확장가능한 애플리케이션 표시
JP2015512540A (ja) インスタンス化可能なジェスチャオブジェクト
US20150095758A1 (en) Web content suspension compatibility and suspended web content lifetime
US10055388B2 (en) Declarative style rules for default touch behaviors
US9047469B2 (en) Modes for applications
US9747004B2 (en) Web content navigation using tab switching
KR20160140932A (ko) 확장 가능한 애플리케이션 표시 및 콘텐트 전송
CN107408065B (zh) 监视应用加载
KR102225476B1 (ko) 임베디드 웹 콘텐츠 실행의 애플리케이션 제어
US20180196584A1 (en) Execution of multiple applications on a device
TW201617839A (zh) 光解離管理器
US9383908B2 (en) Independent hit testing
KR20170097161A (ko) 브라우저 디스플레이 캐스팅 기법들
US20140372903A1 (en) Independent Hit Testing for Touchpad Manipulations and Double-Tap Zooming
CN108415746B (zh) 应用界面的显示方法、装置、存储介质及电子设备
KR20160144445A (ko) 확장가능한 애플리케이션 표시, 마일스톤, 및 스토리라인

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