KR20000057440A - 웹 브라우저 어드레스 공간에 있는 이벤트 포착 코드를 사용한 간질성 콘텐트 디스플레이 - Google Patents

웹 브라우저 어드레스 공간에 있는 이벤트 포착 코드를 사용한 간질성 콘텐트 디스플레이 Download PDF

Info

Publication number
KR20000057440A
KR20000057440A KR1019990705057A KR19997005057A KR20000057440A KR 20000057440 A KR20000057440 A KR 20000057440A KR 1019990705057 A KR1019990705057 A KR 1019990705057A KR 19997005057 A KR19997005057 A KR 19997005057A KR 20000057440 A KR20000057440 A KR 20000057440A
Authority
KR
South Korea
Prior art keywords
display
browser
window
web browser
user
Prior art date
Application number
KR1019990705057A
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 KR20000057440A publication Critical patent/KR20000057440A/ko

Links

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/451Execution arrangements for user interfaces

Abstract

본 발명은 소정 수행가능한 코드(42)가 웹 브라우저 어드레스 공간(44)을 공유하고 웹 브라우저 이벤트를 포착하도록 이용되는 웹 브라우저를 위한 간질성 콘텐트 디스플레이 시스템 및 방법에 관한 것이다. 웹 브라우저는 뷰어 윈도우를 발생시키는 디스플레이 엔진(48)을 구동시키기 위하여 이용된다. 뷰어 윈도우는 사용자 인터페이스 제어부를 포함하며, 이는 수동 및 자동으로 재배치되거나 재편성된다. 동작시, 수행가능한 코드는 소스 웹 페이지의 URL 활성과 같은 소정 브라우저 이벤트에 응답하여 브라우저가 목표 웹 페이지의 복귀를 기다리는 간질성 지연 주기 동안에 브라우저 디스플레이 윈도우상에 뷰어 윈도우를 중첩시키고 소정 콘텐트를 디스플레이하도록 디스플레이 엔진을 제어한다. 예를 들어 목표 웹 페이지(또는 이것의 일부)의 수신과 같은 사건이 발생하였을 때, 사용자 윈도우는 선택적으로 숨겨지거나 (소위 "미니 윈도우"로) 축소되고 재구성되어 사용자의 목표 웹 페이지 관측을 방해하지 않고 간질성 콘텐트 디스플레이를 완료시키도록 한다.

Description

웹 브라우저 어드레스 공간에 있는 이벤트 포착 코드를 사용한 간질성 콘텐트 디스플레이{INTERSTITIAL CONTENT DISPLAY USING EVENT-CAPTURE CODE RUNNING IN WEB BROWSER ADDRESS SPACE}
월드 와이드 웹은 인터넷의 멀티미디어 정보 검색 시스템이다. 웹 환경에서, 클라이언트 머신은 하이퍼텍스트 메이크업 언어(HTML)로 알려진 표준 페이지 기술 언어를 이용하여 사용자가 파일(예를 들어, 텍스트, 그래픽, 이미지, 음성, 비디오 등)에 액세스하도록 하는 응용 프로토콜로 공지된 하이퍼텍스트 전송 프로토클(HTTP)을 이용하여 웹 서버로의 트랜잭션을 수행한다.
웹 브라우징은 웹 페이지 다운로드사이에서의 긴 지연 때문에 사용자에게 불만을 줄 수 있다. 사용자가 하이퍼링크를 클릭하거나 또는 균일 자원 로케이터(URL) 어드레스에 진입할 때, 사용자는 네트워크에서 특정 웹 서버로부터 다운로딩될 목표 웹 페이지를 포함하는 데이터를 기다려야 한다. 이러한 시간 중에, 사용자는 소스 페이지(즉, 하이퍼링크가 발진되는 페이지)의 콘텐트를 시작하거나 또는 블랭크 스크린을 시작한다. 이러한 지연을 "간질성" 지연이라하며, 이는 웹 페이지 복잡성을 악화시킨다.
인터넷은 호스트 컴퓨터, 라우터 및 전자 상호접속장치의 패키지 베이스 네트워크이다. 컴퓨터 및 라우터는 다른 동작 성질을 가질 수 있으며, 상호접속장치는 상이한 대역폭 용량을 가질 수 있다. 따라서, 지연 또는 레이턴시가 인터넷 통신에 내재되어 있다.
이러한 레이턴시는 "응답" 레이턴시 및 "다운로드" 레이턴시로 분할될 수 있다. 응답 레이턴시는 웹 브라우저가 웹 사이트로 요구(request)를 보낸 시간으로부터 웹 브라우저가 웹 사이트로부터 제 1패킷을 수신한 시간까지의 주기이다. 다운로드 레이턴시는 제 1패킷이 수신된 시간으로부터 요구된 파일의 최종 패킷이 수신되는 시간까지의 주기이다.
소정 사용자가 소정 웹 서버로부터 데이터를 다운로딩받을 때 경험하는 전체 레이턴시는 몇 가지 성분에 의하여 결정되는데; 이는 사용자 및 웹 서버사이의 각각의 상호접속장치의 대역폭 용량 및 트래픽 로드, 사용자와 웹 서버사이의 각각의 라우터의 속도 및 로드 및 웹 서버에서 호스트 컴퓨터의 속도와 로드이다. 명백하게, 레이턴시는 소정 시간 또는 브라우징 기간에 인식될 수 있다. 또한, 빠른 네트워크 접속의 사용은 간질성 지연을 감소시키지 못한다. 또한 접속 속도가 향상된다 하더라도, 상기와 같은 향상이 다이내믹 HTML 및 다른 페이지 스크립팅 기술에 의하여 제공되는 큰 페이지 콘텐트 볼륨에 의하여 오프셋된다. 또한, 접속 속도는 응답 레이턴시만을 감소시킨다. 특정 브라우징 기간동안 소정 시간에 특정 접속에 대하여 얼마나 레이턴시가 유지되는지를 아는 것은 불가능하다. 그러나, 일반적인 웹 브라우징 기간에서, HTML 서류에 대한 응답은 2 내지 6초이다. 다운로드 레이턴시는 다운로딩되는 파일의 크기에 의존한다.
따라서, 사용자가 웹 사이트로부터 데이터를 요구할 때, 사용자는 적어도 약간의 시간동안 스크린에서 대기하고 주의를 기울여야 하며 때때로 그의 작업을 완료하기 위하여 웹 브라우저에 대하여 불안하고 수동적으로 기다려야 한다.
종래에 웹 브라우저 클라이언트 윈도우 디스플레이 영역내의 사용자에 대한 정보를 디스플레이하는 레이턴시 주기 동안 이러한 사용자 "대기 포커스 시간"을 이용하는 것이 공지되어 있다. 기본 기술은 예를 들어 미국특허 5,572,643에 설명되어 있는데, 여기서 정보 대상(음성, 비디오, 텍스트, 메시지, 애니메이션 등)은 간질성 "시간-공간"에 디스플레이된다. 이러한 기술은 대기 시간이 존재하고 사용자 눈이 클라이언트 윈도우 영역에 포커싱된다는 사실을 이용한다.
간질성 공간에서 콘텐트를 출력하는 기본 방법이 종래에 공지되어 있지만, 상기 콘텐트의 디스플레이이상의 개선된 제어를 제공하고 간질성 지연 주기 중에 디스플레이되는 콘텐트의 속성 및 타입에 대한 사용자 능력을 향상시키도록 하는 추가적인 방법 및 기술이 요구된다.
본 발명은 클라이언트-서버 컴퓨터 네트워크 내의 통신에 관한 것이며, 특히 뷰어 기초 사용자 인터페이스를 이용하는 웹 페이지 링킹 중에 콘텐트를 디스플레이하는 방법에 관한 것이다.
도 1은 공지된 웹 브라우저 실행을 갖는 종래의 브라우징-대기-브라우징 경험을 설명하는 도면.
도 2는 본 발명을 사용하여 달성되는 "브라우징-감시-브라우징" 경험을 설명하는 도면.
도 3은 본 발명의 간질성 콘텐트 디스플레이 시스템 및 방법의 블록도.
도 4는 본 발명에 따른 간질성 콘텐트 디스플레이의 방법의 플로우차트.
도 5는 본 발명의 "미니-윈도우" 동작을 설명하는 도면.
도 6은 간질성 클라이언트 애플리케이션 및 그와 연관된 모듈의 상세 블록도.
도 7a 및 7b는 개개의 뷰 윈도우 디스플레이 특성 및 디스플레이 목적 종류를 세팅 또는 선택하는데 사용될 수 있는 대표적인 우선 다이얼로그 스크린을 나타내는 도면.
도 8은 간질성 광고가 웹 페이지상에 공지된 "배너(banner)" 광고와 통합되는 본 발명의 변형된 디스플레이 방법을 설명하는 도면.
본 발명의 주목적은 소정 수행가능한 코드가 웹 브라우저의 어드레스 공간을 공유하고 웹 브라우저 이벤트를 포착하도록 이용하는 웹 브라우저를 위한 간질성 콘텐트 디스플레이 시스템 및 방법을 제공하는 것이다. 웹 브라우저 이벤트는 뷰어 윈도우를 발생시키는 디스플레이 엔진을 구동하기 위하여 이용된다. 뷰어 윈도우는 적당한 사용자 인터페이스 제어부를 포함하며, 이는 수동 또는 자동으로 재배열되거나 재편성될 수 있다. 동작시, 수행가능한 코드는 소스 웹 페이지내의 URL의 활성과 같은 소정 브라우저 이벤트에 응답하여, 웹 브라우저가 목표 웹 페이지의 복귀를 기다리는 동안 브라우저 디스플레이 윈도우상에 뷰어 윈도우를 겹치게하고 간질성 지연 주기 중에 소정 콘텐트를 디스플레이하도록 디스플레이 엔진을 제어한다. 목표 웹 페이지(또는 그 일부)가 수신될 때와 같은 경우, 사용자 윈도우는 선택적으로 숨겨지거나 (소위 "미니 윈도우"로)크기가 재편성되고 재배열되어, 목표 웹 페이지의 사용자 관측을 간섭하지 않고 간질성 콘텐트 디스플레이를 완료하도록 한다.
본 발명의 바람직한 실시예에 따르면, 간질성 콘텐트를 디스플레이하는 방법은 컴퓨터 네트워크를 통하여 다수의 웹 서버로 접속가능한 클라이언트 컴퓨터에서 동작가능하며, 상기 클라이언트 컴퓨터는 디스플레이 윈도우내의 웹 페이지의 디스플레이를 제어하는 웹 브라우저를 지원한다. 웹 브라우저의 발진시, 소정 이벤트 모니터 코드(예를 들어, DLL)는 웹 브라우저가 동작하는 어드레스 공간에 삽입된다. 소정 브라우저 이벤트가 이벤트 모니터링 코드에 의하여 포착될 때, 코드는 브라우저 디스플레이 윈도우의 소정 부분상의 뷰어 윈도우를 겹치는 디스플레이 엔진에 제어 정보를 전달한다. 하나 또는 그이상의 콘텐트는 간질성 디스플레이 주기 중에 뷰어 윈도우 내에 디스플레이된다.
따라서, 예를 들어, 이벤트 모니터링 코드는 목표 웹 서버상의 페이지를 식별하는 URL로의 사용자 링크 활성을 포착한다. 이벤트 모니터링 코드는 디스플레이 엔지에 이벤트를 전달하여 브라우저가 소정 디스플레이 종료 이벤트의 발생을 기다리는 동안 뷰어 윈도우에 하나 이상의 간질성 콘텐트를 디스플레이하도록 한다. 소정 종료 이벤트는 목표 웹 페이지(URL에 의하여 식별됨)를 포함하는 제 1데이터 패킷의 브라우저 및 웹 페이지에 대한 소정 브라우저 활성에 의하여 수신될 수 있다. 따라서, 예를 들어, 소정 브라우저 활성은 목표 웹 페이지 내의 제 1텍스트 부분 또는 제 1이미지의 그림(예를 들어, .gif 또는 .jpeg)과 같은 것일 수 있다. 이러한 종료 이벤트의 발생시, 뷰어 윈도우는 숨겨지거나 작아지고 메인 브라우저 디스플레이 윈도우로부터 이격되어 브라우저에 의하여 수신된 목표 웹 페이지 내용의 사용자 관측을 방해하지 않도록 한다.
본 발명의 방법은 브라우저의 정상 동작을 방해하지 않거나 또는 지연시키지 않는다. 모든 액션은 웹 브라우저 코드에 대한 명확한 방식으로 수행된다. 그러나, 사용자는 간질성 시간 공간이 무의미한 콘텐트의 디스플레이 때문에 개선된 브라우저를 경험한다.
따라서, 본 발명의 목적은 웹 페이지 링킹 활성이 웹 브라우저에 의하여 수행될 때 간질성 시간 공간 내에 또는 그 때에 사용자에게 콘텐트 디스플레이에 대한 제어를 제공하는 것이다.
본 발명의 다른 목적은 브라우징 기간 중에 웹 인터-페이지 접속 중에 사용자 선택가능 콘텐트의 디스플레이를 용이하도록 하는 사용자 인터페이스 뷰어를 제공하는 것이다.
본 발명의 다른 목적은 간질성 지연 주기 중에 디스플레이되는 레이턴시의 타입(예를 들어, 광고, 교육 및 뉴스 목차, "쿨" 콘텐트, 이미지, 벡터 애니메이션, 메시지, 그래픽, 비디오, 대화식 질의/응답 게임등)을 사용자가 결정하도록 함으로써 사용자 웹 브라우징을 향상시키는 것이다.
따라서, 본 발명의 다른 목적은 사용자 대기-브라우저-대기 활성 시퀀스를 감시 브라우저-감시 시퀀스로 변환하여 오락 및 정보로 지연 불만을 대체시키도록 하는 것이다.
전술한 것은 본 발명의 목적과 특징중 일부일 뿐이다. 이들 목적은 본 발명의 특징 및 응용에 의하여 달성된다. 많은 다른 이로운 결과들은 기술되는 바와 같이 본 발명을 변형하거나 또는 상이한 방법으로 개시된 발명을 적용함으로써 얻어질 수 있다. 따라서, 본 발명의 다른 목적 및 보다 더 충분한 이해는 다음의 바람직한 실시예의 상세한 설명을 참조하여 얻어질 것이다.
도 1은 간질성 지연 기간에 기인하여 현재의 웹 브라우징 경험을 설명한다. 이 예에서, 뷰잉될 페이지(즉, 소오스 웹 페이지)에서 링크의 활성화는 웹 브라우저가 새로운 페이지를 풀링(pull)하도록 한다. 그러나, 사용자는 웹 페이지 액세스 사이에 "대기 및 응시" 하여야 한다. 그와는 반대로, 도 2는 사용자 경험이 지금 "브라우징-감시-브라우징"이 되도록 간질성 내용(예를 들면, 광고, 쿨 이미지, 대화형 게임, 비디오 클립등)의 디스플레이를 설명한다.
본 발명의 간질성 콘텐트 디스플레이 시스템은 도 3의 블록도로 설명된다. 그것은 바람직하게는 기존의 인터넷 기반 클라이언트-서버 시스템에서 실시된다. 그러므로 이러한 공지된 시스템의 기본 동작과의 유사성은 다음 설명에서 가정된다.
본 발명은 네트워크에서 사용자의 "클라이언트" 기기(12)상에 지원되거나 다운로드되는 클라이언트 애플리케이션 부분을 포함한다. 클라이언트 애플리케이션은 웹 페이지 링킹 사이의 지연 동안에 하나이상의 큰텐트 "피이스"를 디스플레이한다. 이 디스플레이는 사용자의 브라우저 윈도우를 채우고, 콘텐트 피이스는 애니메이션, 영화, 정적 정보 및 대화형 콘텐트의 디스플레이와 같이 잘 변화될 수 있다. 디스플레이되는 이미지는 다음에 기술되는 바와 같이 ad 콘텐트 서버(14)로부터 시간내내 클라이언트의 하드 디스크상에 콘텐트 피이스를 "스마트-풀"하는 클라이언트 프로그램에 의해 사용자의 컴퓨터상에 사전 저장된다. 그러나, 이 다운로드된 콘텐트는 사용자가 브라우저의 사용을 천천히 하지 못한다.
디스플레이하기 위한 콘텐트 피이스의 특정 리스트 및 페이지 스위칭 동안에 디스플레이되는 특정 피이스에 관한 폴리시는 각 액티브 클라이언트 프로그램과 통신하는 백 오피스(16)에 의해 다이나믹하게 변화될 수 있다. 백 오피스(16)는 컴퓨터 네트워크를 통해 대다수의 클라이언트 기기상에서 실행되는 클라이언트 애플리케이션의 집중화된 제어를 제공한다. 그것은 바람직하게는 어느 콘텐트 피이스가 특정 클라이언트를 다운로드하는 지를 제어하고, 어느 콘텐트 피이스가 디스플레이되는지를 애플리케이션이 어떻게 결정하고 클라이언트의 캐시가 어떻게 관리되는지를 자동적으로 수정하는 것을 제공한다. 백 오피스는 가금 임의의 콘텐트 피이스가 어떻게 뷰되는지에 대한 통계를 모을 수도 있다. 그러므로, 바람직하게는, 각 콘텐트 피이스의 디스플레이는 클라이언트 컴퓨터에서 로깅되고, 사용자 데모그래픽 및 프리퍼런스와 함께 로깅 정보는 주기를 기초로하여 백 오피스에 업로드된다. 도 3은 백 오피스, 콘텐트 ad 콘텐트 서버, 광고업자 및 콘텐트 제공업자와 클라이언트 애플리케이션 사이에 제어 및 데이터의 흐름을 설명한다.
간질성 클라이언트 애플리케이션은 액티브X 제어 또는 넷스케이프 플러그-인, 또는 어떤 다른 편리 수단을 통해 분배될수 있다. 택일적으로, 하기에 기술될 기능성은 전체로 또는 부분적으로 브라우저 자체내에 구축될 수도 있다. 인스톨되면, 웹 브라우저가 동작시에 있을 때마다 클라이언트 플그램이 배경에서 실행된다. 사용자는 다운로드된 콘텐트, 상이한 네비게이션 이미지 구성 등에 사용되는 디스크 공간의 양과 같은 다양한 옵션을 세팅할 수 있다.
도 4는 클라이언트 애플리케이션(10)에 의해 제공된 기본 "브라우징-감시-브라우징" 경험을 설명하는 플로우 차트이다. 사용자가 웹 브라우저 애플리케이션을 이용할 때, 그의 눈은 클라이언트 윈도우 영역상에 집중된다. 사용자가 단계20에서 웹 페이지상의 하이퍼링크를 클릭하거나 새로운 URL 어드레스를 지정할 경우, 웹 브라우저는 공지된 DNS 서버와 콘택함으로써 연관된 URL의 도메인 영역을 IP 어드레스내로 분석하는 시도를 한다. 이어 웹 브라우저는 HTTP 프로토콜을 이용하여 IP 어드레스에 데이터 요구를 전송한다. 단계22에서, 간질성 클라이언트 애플리케이션은 웹 브라우저의 하이퍼링크 이벤트를 트랩하고 웹 브라우저의 메인 영역의 일부 한정된 부분을 덮기 위하여 별도의 윈도우("뷰어 윈도우")를 개방한다. 이어서, 단계24에서, 간질성 애플리케이션은 로컬 이미지 캐시로부터 이미지를 로딩하고 단계26에서 이미지가 뷰어 윈도우에 디스플레이되도록 한다. 이미지 데이터의 종류는 제한없이 정적 비트맵, 애니메이션, 멀티미디어 사운드 및 비디오, 및 자바 애플릿을 포함할 수 있다. 뷰어 윈도우는 버튼, 에디트 박스, 또는 사용자와 대화를 할수 있도록 하기 위한 다른 사용자 인터페이스 제어를 포함할 수 있다.
단계28은 URL에 의해 식별된 웹 서버로부터 패킷의 웹 브라우저의 수신을 나타낸다. 이어서, 단계30(또는 응답 레이턴시가 경과된 후)에서 지시한 바와 같이 소정의 발생(예를 들면, 목표 웹 페이지가 충분히 사용자에게 유용하게 수신된 경우)시에, 루틴은 바람직하게는 스케일링 다운되어 뷰어 윈도우가 웹 브라우저 윈도우 밖으로 이동된다. 이 동작은 도 4에서 단계32이며, 단지 예에 의해서만 도 5에 설명되어 있다. 선택적으로, 애플리케이션은 완전한 레이턴시(응답 레이턴시 + 다운로드된 레이턴시)가 경과된 후에 또는 일부 다른 소정의 기준하에서 뷰어 윈도우를 스케일링 다운하도록 프로그램될 수 있다.
도 5에서 알 수 있는 바와 같이, 이 스케일링 다운 또는 "미니-윈도우" 특징은 웹 브라우저에서 오프되는 더 작은 뷰어 윈도우에서 완료하도록 콘텐트 피이스를 계속 인에이블링한다. 그 다음에, 웹 브라우저는 도 4의 단계 34로 지시된 클라이언트 윈도우 영역에 새로운 웹 페이지를 지시한다. 또한 흐름도에 지시된 바와같이, 간질성 콘텐트를 디스플레이하는동안, 사용자는 단계 36에서 지시된 것처럼 도시된 이미지를 클릭할 수 있다. 사용자가 이미지를 클릭할 때, 애플리케이션은 새로운 웹 브라이저 윈도우를 열어서 이미지와 연관된 URL를 로드한다.
개별 실행 스레드에서, 본 시스템은 "스마트-풀" 스레드를 실행한다. 이 스레드는 사용자 컴퓨터에서의 네트워크 데이터 트래픽을 모니터링한다. 만일 데이터 트래픽이 낮다면, 단계 38에서 테스트 결과로 지시된 바와같이, 스레드는 인터넷상의 특정 FTP 서버로부터 콘텐트 다운로드 리스트에서 지시된 다음 이미지를 다운로드하기 위하여 단계 40에서 계속된다. 단계 42에 의해 지시된 바와같이, 다운로드 이미지는 사용자 컴퓨터의 하드디스크의 로컬 캐시 디렉토리에 저장된다.
클라이언트 애플리케이션(10)을 포함하는 여러 기능성 모듈 및 컴포넌트의 더 상세한 블록도는 도 6에 도시되어 있다. 앞서 주지된 바와같이, 본 발명의 클라이언트 애플리케이션은 브라우저의 간질성 시간동안 사용자에게 이미지를 제공한다. 이러한 기능성을 제공하기 위하여, 애플리케이션은 임의의 시간에 브라우저가 하는 일을 검출할 수 있어야 한다. 이를 달성하기 위하여, 애플리케이션을 포함하는 3개의 주 모듈, 즉 런처 데몬, 디스플레이 엔진 및 주입된 DLL 뿐만아니라, 어느 콘텐트 관리를 디스플레이할 것인지를 결정하는 다수의 보조적인 지원 모듈이 존재한다.
런처 데몬(41)은 3차 파티 브라우저가 실행되지 않을때조차 모든 시간에 실행되는 프로세스이다. 대부분은 눈에 않보인다. 런처 데몬의 주요목적은 3차 파티 브라우저가 런칭되는 시간을 검출하는 것이다. 이러한 검출시, 런처는 오퍼레이팅 시스템이 3차 파티 브라이저(46)를 위해 설정되는 어드레스 공간(44)에 주입된 DLL(42)을 배치 또는 주입한다. 이는 바람직하게 다음과 같이 달성된다. 런처 데몬은 시스템 등록의 "실행" 키에 배치되어, 윈도우(또는 다른) 오퍼레이팅 시스템이 시작된다. 몇초마다, 런처는 몇몇의 윈도우가 적절한 3차 파티 브라우저(46)에 속하는지를 나타내기 위하여 시스템의 전체 윈도우 리스트를 통해 열거한다. 이렇게 하는 경우, 런처는 3차 파티 브라우저의 동일한 어드레스 공간에(전형적으로 이용가능한 제 1위치에) 주입된 DLL(42)를 배치하기 위하여 윈도우 OS 메시지 후킹 메커니즘을 사용한다. 이 주입 기술은 마이크로소프트에 의해 표준화 및 문서화된다. 런처는 또한 새로운 브라우저 윈도우가 나타날 때 마다 디스플레이 엔진(48)을 런칭하는 기능을 한다.
디스플레이 엔진(48)은 사용자에서 이미지 및 다른 간질성 콘텐트를 디스플레이하는 기능을 한다. 도시된 바와같이, 엔진(48)은 임의의 주어진 시간에 브라우저의 상태 및 위치를 학습하기 위하여 주입된 DLL(42)에 크게 좌우된다. 따라서, 주입된 DLL은 임의의 웹 브라우저 이벤트를 "수집"하는 기능을 한다. 디스플레이 엔진(48)은 두 개의 주요 스레드, 즉 보통의 윈도우 이벤트를 처리하는 메인 윈도우 스레드 및 주입된 DLL과의 통신을 조절하는 트래킹 스레드를 포함한다. 이와같은 통신 기술은 이하에 기술되어 있다.
디스플레이 엔진(48)은 이미지가 브라우저상에 나타나도록 이미지를 디스플레이하면서 사용자 윈도우를 발생시켜서 상기 사용자 윈도우를 최상으로 만든다. 그러나, 디스플레이 엔진 사용자 윈도우는 사용자가 브라우저와 계속해서 상호작용할 수 있도록 실행되지 않는다. 만인 브라우저가 비활동 상태에 있다면, 디스플레이 엔진은 더 이상 최상의 윈도우를 만들지 못한다.
전술한 바와같이, 주입된 DLL(22)은 시스템상에서 실행되는 각각의 3차 파티 브라우저(46)의 어드레스 공간(44)에 배치된다. 일단 DLL이 3차 파티 브라우저내에서 실행되면, DLL은 윈도우 메시지를 검출하여 기능 호출을 다시 루팅할 수 있다. DLL는 3차 파티 브라우저의 수동 컴포넌트가 되나, 주입된 DLL은 3차 파티 브라우저의 성능 또는 동작에 영향을 미치지 않는다. 주입된 DLL의 주요 목적은 브라우저내에서 무엇이 발생하는지를 애플리케이션의 나머지에 보고하는 기능을 한다. 바람직하게, 주입된 DLL은 브라우저가 그 자체의 컴포넌트의 로딩을 완료한후에 3차 파티 브라우저의 어드레스 공간내에 배치되지 않는다.
디스플레이 폴리시 엔진(50)은 바람직하게 URL 변수를 취하여 캐시 ad의 식별자(디스플레이 엔진(48)이 특정 콘텐트 피이스를 검색하기 위하여 사용할 수 있는 경로 또는 다른 식별자)를 리턴하는 기능을 제공하는 .dll이다. 따라서, 디스플레이 폴리시 엔진(50)은 임의의 간질성 지연동안 플레이될 콘텐트 피이스가 무엇인지를 결정한다. 많은 다른 폴리시 엔진이 사용될 수 있다. 따라서, 예를들어, 한 폴리시는 단순한 랜덤 캐시 콘텐트 피이스를 리턴한다. 대안적으로, 디스플레이 폴리시 엔진은 URL, 시간/일, 콘텐트 다운로드 리스트에서 검색된 통계 또는 ad 부 로그(52)에서 검색된 통계중 일부 또는 모두에 기초하여 디스플레이를 결정할 수 있다. 이들 데이터는 직접 검색되거나, 제공된 .exe 또는 "코어" dll 함수를 호출함으로써 검색된다. 또 다른 대안은 콘텐트 피이스를 결정하기 위하여 사용자 통계 데이터를 사용할 수 있다.
캐시 폴리시 엔진(54)은 모든 콘텐트 피이스의 전체 데이터 크기가 최대(예를들어, 사용자 선택가능) 캐시 크기를 초과하는 이벤트에서 버려질 콘텐트 피이스를 결정한다. 다수의 다른 캐시 폴리시가 사용될 수 있으며, 특정 캐시 폴리시는 특정 디스플레이 폴리시에 밀접하게 연관될 수 있다. 캐시 관리자(56)는 이를 위해 캐시 폴리시 엔진(54)과 관련하여 동작한다.
스마트-풀 엔진(58)은 사용자의 웹 브라우싱에 심하게 영향을 미치지 않고 사용자에게 콘텐트 다운로드 리스트(60)에 한정된 콘텐트 피이스를 다운로드한다. 이와같은 동작은 도 4의 흐름도와 관련하여 이전에 설명되었다. 바람직하게, 엔진은 모뎀 아이들 시간동안 콘텐트 피이스의 전송을 시작하며, 사용자가 웹 브라우저를 사용하기 시작하는 경우 신속하게 데이터 전송을 중지한다. 콘텐트 피이스 전송은 이전의 특정 전송이 인터럽트되는 곳에서 재시작된다. 콘텐트 피이스가 제 3 파티 제어하에서 서버상에 상주할 수 있기 때문에, 스마트-풀 엔진은 바람직하게 공통적으로 이용가능한 프로토콜을 사용한다. 스마트-풀 엔진은 새로운 디스플레이 폴리시 엔진 및 캐시 폴리시 엔진을 다운로드하기 위하여 사용될 수 있다.
콘텐트 다운로드 리스트(60)는 콘텐트 피이스의 URL 리스트를 다운로드한다. 더욱이, 각각의 URL은 클리스ID 식별자(예를들어, GUID 또는 유사한 것)과 각각의 콘텐트 피이스에 대한 플레이 시간길이를 포함한다. 전체 콘텐트 다운로드 리스트는 바람직하게 버전 번호를 가지며, 이 버전 번호는 애플리케이션이 새로운 콘텐트 다운로드 리스트를 다운로드할 때를 알도록 백 오피스로부터 얻어진 최근 수정 번호에 비교될 수 있다. 콘텐트 다운로드 리스트에 콘텐트 속성을 저장함으로써, 시스템은 각각의 콘텐트 피이스에 필드가 개별적으로 접속되는 것을 방지할 수 있다. ad 뷰 로그(52)는 디스플레이 엔진 로드 ad가 통계를 검사하는 데이터 구조이다. 이것은 ad 리스트 및, 로깅 개시와 정지 데이트와 함께 어떤 ad의 뷰잉의 수로 증분된 넘버 필드일 수 있다. 이것은 백 오피스에 업로드하기 쉬운 매우 작은 ad 뷰 로그를 허용한다. 일실시예에서, ad 뷰 로그는 뷰잉된 ad, 시간 및 날짜, 및 사용자가 클릭한 어떤 URL을 가지는 모든 뷰잉 이벤트의 로그이다. 전체 로그는 효과적인 시작 날짜를 가져야 한다.
백 오피스는 바람직하게 디스플레이 콘텐트를 전송하는 콘텐트 서보로부터 분리된다. ad에 대한 URL은 클라이언트 애플리케이션에 의해 백 오피스로부터 스마트 풀되고, 디스플레이 콘텐트 부분 그 자체를 스마트 풀하는 콘텐트 다운로드 리스트에 저장된다. 콘텐트 부분은 네트워크의 주어진 서버에 저장될 수 있다.
그래서, 본 발명에 따라, 간질성 디스플레이 시스템 및 방법은 외부 프로그램(DLL)을 호스트 애플리케이션 프로세스(즉, 웹 브라우저)에 삽입하고 어떤 미리 결정된 이벤트(예를들어, 사용자의 링크 활성화, 브라우저 윈도우의 크기 변화, 링크 활성화에 응답하여 제 1 패킷 리턴의 수신, 타켓 웹 페이지로부터 텍스트의 디스플레이 등)동안 상기 프로그램을 실행하기 위한 단일의 프로세스를 사용한다. 부산물로서, 정보(광고, 쿨(cool) 콘텐트 등)는 사이트의 컴퓨터 사용자 라인 앞에 직접적으로 디스플레이된다). 뷰어 윈도우의 사용에 의해, 브라우저가 어떤 활성화를 하도록 사용자가 기다릴 때 사용자 눈의 초점 바로 전방에 배경 애플리케이션(웹 브라우저)로부터 정보의 배치가 개선된다.
다음은 도입된 DLL 및 디스플레이 엔진의 도입 및 이벤트 포착 메카니즘을 더 상세히 기술한다. 바람직한 실시예에서, 클라이언트 애플리케이션이 3번째 부분 애플리케이션(웹 브라우저)에 관련하여 관찰할 수 있는 몇몇 "방법"이 있다. 이들은 : 파라미터로서 "HWND"를 취하는 윈도우 기능으로 호출; 간질성 애플리케이션(10)을 3번째 부분 애플리케이션에 대한 메시지 후크 체인에 부가하고, 3번째 부분 윈도우 기능을 상기 애플리케이션에 다시 루팅시키고, 3번째 부분 DLL 기능 호출을 애플리케이션에 다시 루팅하고, V-테이블 기능 호출을 애플리케이션에 다시 루팅하는 방법을 포함한다. 애플리케이션(10)은 바람직하게 이들 방법 모두를 사용한다. 특히, 방법 1은 디스플레이 엔진에 의해 사용될 수 있다; 방법 2-4는 이미 도시된 바와같이 3번째 부분 브라우저에 DLL을 주입하기 위하여 애플리케이션을 요구한다. 각각의 이들 방법은 아래에 기술된다.
방법 1 : 파라미터로서 IWND를 취하는 일반적인 윈도우 API 기능을 호출함으로써 브라우저로부터의 디스플레이 엔진 정보, 예를들어, 디스플레이 엔진은 만약 브라우저가 IsWindow(browserHwnd)를 호출함으로써 진행되면 발견될 수 있다.
방법 2 : 메시지 후크는 시스템의 임의의 윈도우로 보내진 메시지를 관찰하기 위하여 한세트의 코드에 대한 표준 윈도우 방법이다. 메시지 후크는 프로세스시 모든 윈도우에 목표된 모든 메시지를 수신한다. 메시지 후크의 바람직한 부수적인 효과는 관찰한 코드가 관찰된 윈도우의 프로세스 공간에 자동적으로 주입되는 것이다. 예를들어, 주입된 DLL은 브라우저내의 새로운 윈도우의 생성을 검출하기 위한 이런 방법을 사용한다.
방법 3 : 각각의 윈도우는 윈도우 기능에 대한 포인터를 포함한다. 몇몇 경우 간질성 애플리케이션은 그 차제 기능으로 이런 포인터를 대체하여, 애플리케이션에 대한 호출을 다시 루팅한다. 애플리케이션이 그것이 필요한 정보를 수집할 때, 본래의 기능 호출에 대한 메시지를 보낸다. 이런 방법은 브라우저 상태 바가 변화되는지를 어떻게 애플리케이션이 결정하는 가이다.
방법 4 : 다른 모듈에 정적으로 연결된 모든 모듈은 중요한 테이블을 포함한다. 애플리케이션은 이런 테이블을 배치하고, 목표된 기능을 검색하고, 포인터를 사용하여 테이블의 엔트리를 대응하는 간질성 애플리케이션 기능으로 대체한다. 내포된 기능의 애플리케이션 버전은 결국 본래의 내포된 기능을 호출한다. 예를들어, 이것은 3번째 부분 브라우저가 자체 자신의 디스플레이에 텍스트를 기록하는 것을 시작하는 것을 애플리케이션이 어떻게 결정하는 가이다.
방법 5 : 몇몇 프로그램, 특히 C++로 기록된 프로그램은 내부 기능에 대한 기능 포인터의 테이블을 포함한다. 애플리케이션은 표준 기능 호출을 통해 이들 포인터의 위치를 얻고 애플리케이션에 대한 기능을 다시 루팅한다. 그후, 애플리케이션은 본래의 기능을 호출한다. 예를들어, 이것은 새로운 간질성이 시작될 때 어떻게 애플리케이션이 텔링(tell)할 수 있는 가이다.
도입된 DLL은 바람직하게 다음 방식으로 디스플레이 엔진과 통신한다. 일단 브라우저 상태가 변화되는 것을 애플리케이션이 결정하면, 애플리케이션은 디스플레이 엔진을 변화시키는 리포트에 필요하다. 통상적으로 리포팅 메카니즘은 많은 다른 어드레스 공간으로부터 볼 수 있는 메모리 맵핑 파일을 요구한다. 도입된 DLL은 브라우저에서(상기 마우스 클릭) 임의의 적당한 변화를 기록하기 위하여 이런 메모리 맵핑 파일에 기록한다. 그리고나서 도입된 DLL 세트는 이런 메모리 맵핑 파일을 판독하기 위하여 디스플레이 엔진을 트리거하는 뮤텍스(mutex)를 설정한다.
다음 단계는 보다 상세히 상기 프로세스를 기술한다.
1. 3번째 부분 브라우저는 사용자 대화 또는 인터넷 통신을 통한 새로운 상태에 도달한다.
2. 애플리케이션 도입 DLL은 이런 새로운 상태를 검출한다.
3. 애플리케이션 도입 DLL은 뮤텍스를 통한 메모리 맵핑 파일의 소유권을 요구한다.
4. 애플리케이션 도입 DLL은 새로운 브라우저 상태 정보로 메모리 맵핑 파일을 갱신한다.
5. 애플리케이션 도입 DLL은 메모리 맵핑 파일이 시스템 이벤트 대상을 사용하여 갱신된후 디스플레이 엔진을 통지한다.
6. 애플리케이션 도입 DLL은 메모리 맵핑 파일의 소유권을 해제한다.
7. 디스플레이 엔진은 이벤트 통지를 수신한다.
8. 디스플레이 엔진은 메모리 맵핑 파일의 소유권을 얻는다.
9. 디스플레이 엔진은 메모리 맵핑 파일을 판독하고 그것을 작동시킨다.
10. 디스플레이 엔진은 메모리 맵핑 파일의 소유권을 해제한다. 이것은 프로세싱을 완료시킨다.
그래서, 브라우저, 및 디스플레이이 방식의 도입된 DLL은 사용자가 기다리도록 브라우저가 유발할 때 이미지화한다. 이것을 하기 위하여, 도입된 DLL은 많은 이벤트를 고려하고 브라우저를 조절하여야 한다. 다음은 트랙킹되어야 하는 브라우저의 몇몇 조건의 리스트이다: 브라우저 위치, 브라우저 크기, 브라우저가 생성되는 어떤 HWND, 브라우저가 생성되는 어떤 스레드, 및 브라우저 페이지 다운로드 타이머의 상태.
다음은 도입된 DLL에 의해 트랙킹될 수 있는 브라우저 이벤트의 리스트이다: 새로운 윈도우는 브라우저내에 생성되고, 브라우저 상태 바는 갱신되고, 브라우저 다운로드 타이머는 시작되고, 브라우저 다운로드 시간은 종료되고, 브라우저는 새로운 URL로 이동하고, 브라우저는 페이지를 소거하고, 브라우저는 새로운 페이지의 월페이퍼(wallpaper)를 도출하고, 브라우저는 페이지상 그래픽을 도출하고, 브라우저는 새로운 페이지상 텍스트를 도출하고, 브라우저는 활성 또는 비활성화된다. 이어서 이들(또는 다른 브라우저 이벤트)은 하기에 기술되는 바와 같이 뷰어 윈도우에 대하여 일부 동작을 트리거한다.
하기는 상기 디스플레이 엔진에 보고되는 대표적인 이벤트들이다 : 상기 브라우저는 언로딩중이다. 상기 브라우저는 크기나 위치를 변화시킨 상태이다. 상기 브라우저는 새로운 URL의 다운로딩을 시작하였다. 상기 브라우저는 새로운 URL을 인출(draw)하기 시작하였다. 상기 브라우저는 새로운 URL의 인출을 종료하였다. 및 상기 브라우저는 활성화 또는 불활성화되었다.
본 발명에 있어서, 주입된 DLL은 주어진 웹 브라우저 이벤트를 포착한다. 일부 주어진 액션은 간질성 지연 주기동안 콘텐트 피이스를 디스플레이하는데 사용되는 "뷰어 윈도우"에 관하여 발생한다. 상기 뷰어 윈도우는 (목표 웹 페이지에서의) 정보의 제 1 패킷이 되돌아 올 때 사라진다. 볼수 있을 정도로 "충분한" 한 페이지가 다운로드되었을 때 볼수 있을 가능성이 더욱 많아진다. 전술한 바와 같이, 상기 애플리케이션은 사용자가 새로운 URL을 클릭한 시기를 인지한다. 사용자가 새로운 웹 페이지를 시작할수 있는 방법은, 새로운 URL을 타이핑하는 것, 하이퍼텍스트 링크를 클릭하는 것, "즐겨찾기(favorities)"와 같은 메뉴 항목을 선택하는 것, 또는 자동 슬라이드 쇼 html 명령들을 사용하는 것들을 포함하여 여러 가지가 있다. 모든 경우에 있어서, 상기 애플리케이션은 진짜 새로운 URL 이벤트와 (동작시 자바 애플릿이 새로운 배너(banner) 광고물들을 다운로드하고 디스플레이할때와 같은) 혼선을 주는 이벤트를 구분한다. 혼선을 주는 이벤트들은 따라서 무시된다. 또한 상기 애플리케이션은 페이지가 캐쉬되었는지를 살펴본다. 만일 그렇다면 상기 URL 이벤트를 바람직하게 무시한다.
일단 새로운 URL 이벤트가 탐지되면, 상기 디스플레이 엔진은 이미지를 디스플레이하기 시작한다. 상기 주입된 DLL은 상기 브라우저가 새로운 페이지 인출을 시작할 것을 계속해서 기대한다. 일단 상기 애플리케이션이 새로운 페이지가 인출을 시작한 것으로 단정하면, 상기 뷰어 윈도우에 관한 (윈도우를 닫는 것 또는 "미니-윈도우" 동작으로 들어가는 것과 같은) 일부 액션을 취하기 전에 텍스트가 인출되거나 비트맵이 인출될 것이다. 넷스케이프 브라우저의 경우, 배경 인출(wallpaper drawing)은 무시될수 있다. 한 실시예에서, 상기 브라우저 윈도우가 지워지고 배경이 인출되더라도 계속 플레이되는 상기 콘텐트 피이스로 상기 뷰어 윈도우는 계속 제자리에 있다. 주입된 DLL은 상기 스크린으로 어떤 텍스트라도 인출되자마자 충분한 목표 웹 페이지가 로드되었는지를 그후 결정한다. 일부 페이지들은 텍스트를 전혀 포함하지 않으므로, 상기 애플리케이션은 별법으로 어떠한 이미지들(배경 제외)이라도 상기 스크린에 인출되었는지를 살펴볼 것이다. 만일 그렇다면, 상기 이미지가 다운로드되는 동안 현재 이미지를 상영하는 것을 종료시킨다. 상기 애플리케에션이 주입 모드(injected mode)에서 이미지를 여전히 상영중이고 한 페이지가 완전히 다운로드되었으면, 상기 애플리케이션은 바람직하게 도입 모드에서 빠져나온다. 상기 뷰어 윈도우의 조정(예를 들면, 사라짐, 위치 변경 또는 크기 재조정등)은 목표 웹 페이지 다운로드에 따른 특정 웹 브라우저 이벤트에 따라 달라진다.
도 7a에서, 상기 애플리케이션은 바람직하게 사용자가 상기 뷰어 윈도우의 움직임을 제어할수 있도록 하는 선택 대화 상자(preferences dialog box)를 포함한다. 도 7b는 상기 내용 조각들에 대한 다양한 "주제들 및 평가들(themes and ratings)"을 선택하는데 사용될수 있는 대화 상자를 도시한다. 더욱이, 사용자가 상기 콘텐트 피이스들을 직접적으로 보도록 하기 위하여, 상기 뷰어 윈도우는 바람직하게 "후퇴(back)" 및 "전진(forward)" 버튼을 포함한다. 바람직한 실시예에서, "아이콘"은 상기 애플리케이션이 사용자의 데스크톱 상에 디스플레이될수 있음을 나타낸다. 상기 아이콘이 활성일 때, 클라이언트 장치가 오프라인일지라도 사용자가 상기 콘텐트 피이스들을 볼수 있도록, 상기 디스플레이 엔진은 상기 뷰어 윈도우를 "오프-브라우저"모드에서 시작한다.
또다른 제어 기능들이 실행될 것이라는 것을 당업자만이 인식할수 있지만, 후속의 뷰어 윈도우 디스플레이 옵션들은 바람직하게 사용자에게 사용가능상태이다. 각 옵션은 하기에서 설명한다.
전술한 바와 같이, "주입 모드"는, 그래픽적인 사용자 인터페이스상의 웹 브라우저의 활성 디스플레이 영역을 커버하는 뷰어 윈도우를 상기 디스플레이 엔진이 발생시키는 동안의 상태이다. 따라서, 사용자가 소스 웹 페이지내의 링크를 활성화시킬때(또는 목표 웹 페이지를 끌어내는 다른 주어진 액션을 시작할 때) 전형적으로 "주입 모드"가 입력된다. 사용자가 다른 선택으로 세팅하지 않는한, 상기 모드동안의 상기 뷰어 "디폴트(default)" 동작은 바람직하게 상기 브라우저 윈도우의 위치 및 사이즈를 관찰하고 매칭시키는 것이다. 어떤 시점이라도 상기 브라우저가 이동되거나 크기 재조정되면 , 상기 뷰어 엔진은, 웹 브라우저의 클라이언트 디스플레이 윈도우를 계속 처리할 수 있도록 뷰어를 이동시키거나 크기 재조정을 시키는 메시지를 가진다.
주입 모드에 대해, 사용자는 (선택 대화 상자를 이용하여) 전체 클라이언트 윈도를 커버하도록 선택하거나 상기 클라이언트 윈도우의 일부(예를 들면 90%)를 커버하도록 선택된다. 상기 선택 대화 상자는 도 7a에 도시되어 있다. 90% 모드의 장점은 요청된 목표 페이지가 다운로드되었는지를 확인하기 위하여 충분한 브라우저 클라이언트 스크린을 사용자가 볼수 있다는 것이다. 바람직하기로는 90% 모드일때, 상기 뷰어는 상기 브라우저의 디스플레이 윈도우의 중심에 위치되고 따라서 상기 브라우저 윈도우의 일부분은 상하좌우 각방면에서 여전히 볼수 있는 상태이다.
주입 모드동안, 적어도 하나의 디스플레이 대상(예를 들면, 이미지, 애니메이션, 상호작용 형태, 비디오 클립, 사운드 바이트등)은 상기 간격 주기를 채우기 위하여 사용자의 시각 초점에 상기 뷰어 윈도우에 의해 직접적으로 출력된다. 특정 대상은 주어진 시간 존속기간을 가진다. 따라서, 상기 뷰어가 도입 모드에 있는 한, 제 1 디스플레이 대상이 상영이 종료될때(물론, 주어진 시간 지속 및 간격 지연 주기의 길이에 좌우된다.), 상기 디스플레이 엔진은 새로운 대상을 로드하고 상영할 것이다. 따라서, 만일 연장된 간격 지연이 존재하면(예를 들면, 결과를 반환하기 위하여 광범위한 서버 프로세싱을 필요로하는 검색 기능을 사용자가 시작시키면), 상기 뷰어 디스플레이 엔진은 다중 정보 대상들을 출력한다.
충분한 한 페이지가 다운로드될 때, 상기 뷰어는 주입 모드를 빠져 나오거나 떠난다(leave). 도 7a의 선택 대화 상자를 사용하여, 사용자는 바람직하게 상기 뷰어가 도입 모드를 빠져 나오자마자 어떤 것을 할것인지를 선택한다. 한번의 선택은 상기 뷰어가 완전히 사리지도록 한다. 별법으로, 사용자는 현재 이미지가 상영을 마치도록 선택하거나 상영이 끝나기 전이라도 상기 이미지를 갑자기 정지시키도록 선택할 것이다. 후자의 경우에 있어서, 사용자는 전체 이미지를 보지 않을 것이다. 만일 사용자가 (주어진 선택 세팅에 따라) 현재 이미지가 상영이 끝나도록 한다면, 그후 사용자는 상기 디스플레이 엔진 뷰어가 상기 간격 시간이 지나 이미지를 상영하도록 허락을 하는 것이다.
상기 브라우저는 활성 윈도우이지만, 상기 주입 모드 뷰어는 상기 브라우저위에 나타나기 위하여 최상위 윈도우이다. 상기 브라우저가 불활성화될 때, 상기 뷰어 윈도우는 더 이상 최상위 윈도우가 아니라 바람직하게 상기 브라우저 아래에 여전히 존재한다. 브라우저는 사용자가 다른 애플리케이션을 클릭한다면 불활성화될 것이다.
충분한 한 페이지가 다운로드되었을 때, 사용자는 선택 대화 상자를 사용하여 상기 뷰어 디스플레이 엔진이 "미니-윈도우"모드로 전환하도록 선택한다. 전술한 바와 같이, 상기 모드에서, 뷰어 윈도우는 사용자의 직접적인 관심에서 벗어나지만 여전히 현재 이미지를 상영하는 것을 중단시킨다. 특히, 상기 미니-윈도우는 사용자가 상기 브라우저를 볼수 있도록 더욱 작은 사이즈로 축소된다. 미니 윈도우의 크기 및 위치는 기준 윈도우 기반 미우스 클릭 및 드래그 동작을 이용하여 변화될 수 있다. 미니 윈도우는 바람직하게는 이 위치를 "기억"하고 사용자가 그것을 마지막으로 떠날때마다 나타난다.
주입 모드로부터 미니 윈도우 모드로의 변화는 과거 위치에서 새로운 위치로 이동하는 애니메이팅 직사각형을 그리는 표준 윈도우 "줌 효과"를 사용한다. 특히, 주입 모드 윈도우가 우선 숨겨지고, 줌 효과가 시작되며, 다음에 뷰어 윈도우가 그것의 새로운 미니 윈도우 사이즈로 도시된다. 이런 동작은 도 5에 도시되어 있다. 거기에 설명된 바와 같이, 줌 효과는 바람직하게 주입 모드 사이즈와 위치로 시작하고 미니 윈도우 사이즈와 위치로 끝난다.
미니 윈도우가 현재 이미지의 플레잉을 종료할 때, 또한 사용자는 바람직하게 미니 윈도우를 볼 수 있게 남겨두거나 숨기는 옵션을 가진다. 미니 윈도우가 볼 수 있게 남아 있는 경우, 이미지의 최종 프레임은 바람직하게 불명확하게 표시된다. 미니 윈도우 모드에 있는 동안, 사용자는 바람직하게 이전 이미지를 보는 옵션을 가진다. 그러므로, 예를 들어 사용자가 뷰어 윈도우와 관련된 "뒤로" 또는 "앞으로" 버튼을 누른다면, 이미 보여졌던 이미지가 다시 플레잉될 것이다. 이미지가 플레잉을 종료할 때, 최종 프레임은 바람직하게 불명확하게 표시된다.
사용자는 메뉴 종류를 선택함으로써 또는 버튼을 누름으로써 오프 브라우저 모드로 진입할 수 있다. 오프 브라우저 모드에 있을 때, 뷰어 윈도우는 바람직하게 사용자 스크린의 1/2를 채운다. 그러나, 뷰어 윈도우는 바람직하게 브라우저를 따라가지 않고 뷰어는 브라우저가 비활성화되게 된다면 양태를 변경하지않는다. 오프 브라우저 모드에서, 사용자는 뷰어의 "후퇴" 및 "전진" 버튼을 누름으로써 이전의 이미지와 새로운 이미지를 볼 수 있다. 또한 이런 모드는 사용자가 예를 들어 이미지를 프린팅하거나 또는 디스크로 이미지를 저장하는 다른 기능에 접근할 수 있게 한다.
뷰어는 바람직하게 요구 사항은 아니더라도 상태 머신으로서 수행된다. 다음은 각각의 상태와 상기 상태를 변화시킬 수 있는 각각의 이벤트에 대한 간략한 설명이다.
1. s_hiddenStopped-뷰어가 숨겨지고 이미지를 로딩하지않는다;
2. s_alreadyHiddenLoading-뷰어가 숨겨지지만, 디스크로부터 이미지를 로딩한다;
3. s_maxPronVisiblePlaying-뷰어가 주입 모드에 있고, 브라우저가 활성화되며, 이미지가 플레잉된다;
4. s_maxFrontVisibleloading-뷰어가 주입 모드에 있고, 브라우저가 활성화되며, 이미지가 로딩된다. 이전 이미지의 최종 프레임이 여전히 표시된다;
5. s_minFrontVsiblePlaying-뷰어가 미니 윈도우 모드에 있고, 브라우저가 활성화되며, 이미지가 플레잉된다;
6. s_minFrontVisibleStopped-뷰어가 미니 윈도우 모드에 있고, 브라우저가 활성화되고, 이미지가 플레잉을 종료한다;
7. s_minFrontVisibleLoading-뷰어가 미니 윈도우 모드에 있고, 브라우저가 활성화되며, 새로운 이미지가 디스크로부터 로딩된다. 이전 이미지의 최종 프레임은 여전히 표시된다;
8. s_minToMaxFrontHiddenLoading-뷰어는 미니 윈도우 모드에 있지만 이제 주입 모드로 가게 되고, 브라우저가 활성화되며, 이미지가 디스크로부터 로딩된다;
9. s_minToMaxBehindHiddenLoading-뷰어는 미니 윈도우 모드에 있지만 이제 주입 모드로 가게 되고, 브라우저가 비활성화되며, 이미지가 디스크로부터 로딩된다;
10. s_abortToMinFrontHiddenLoading-뷰어가 숨겨지지만 미니 윈도우 모드로 이동하고, 브라우저가 활성화되며, 이미지가 로딩된다;
11. s_abortToMinBehindHiddenLoading-뷰어가 숨겨지지만 미니 윈도우 모드로 이동하고, 브라우저가 비활성화되며, 이미지가 로딩된다;
12. s_maxBehindVisiblePlaying-뷰어가 주입 모드에 있고, 브라우저가 비활성화되며, 이미지가 플레잉된다;
13. s_maxBehindVisibleloading-뷰어가 주입 모드에 있고, 브라우저가 비활성화되며, 이미지가 로딩된다. 이전 이미지의 최종 프레임이 여전히 표시된다;
14. s_minBehindVisiblePlaying-뷰어가 미니 윈도우 모드에 있고, 브라우저가 비활성화되며, 이미지가 플레잉된다;
15. s_minBehindvisibleLoading-뷰어가 미니 윈도우 모드에 있고, 브라우저가 비활성화되며, 새로운 이미지가 로딩된다. 이전 이미지의 최종 프레임이 여전히 표시된다;
16. s_minBehindVisibleStopped-뷰어가 미니 윈도우 모드에 있고, 이전 이미지의 최종 프레임이 여전히 표시된다. 새로운 이미지는 아직 로딩되지않을 것이다;
17. s_showHiddenLoading-뷰어가 숨겨지지만, 오프 브라우저 모드로 갈 것이다. 어떤 이미지가 로딩된다;
18. s_showFrontVisibleLoading-뷰어가 오프 브라우저 모드에 있고 새로운 이미지를 로딩한다. 이전 이미지의 최종 프레임은 여전히 표시된다;
19. s_showFrontVisiblePlaying-뷰어가 오프 브라우저 모드에 있고 이미지가 플레잉된다;
20. s_showFrontVisibleStopped-뷰어가 오프 브라우저 모드에 있고 이전 이미지의 최종 프레임이 여전히 표시된다.
다음은 뷰어의 상태를 변화시킬 수 있는 바람직한 이벤트이다.
1. e_AdLoaded-디스크로부터의 이미지 로딩이 완료되고 플레잉할 준비를 한다;
2. e_AdFinished-이미지가 플레잉을 종료한다;
3. e_NewUrl-사용자가 새로운 URL를 선택했다;
4. e_DispUrl-타겟 웹의 소정 양 또는 일부가 다운로드되었다;
5. e_ActivateToInterStitial-브라우저가 방금 활성화되었고, 여전히 격자간 상태에 있다;
6. e_ActivateToAllLoaded-브라우저가 격자간 상태에 있지않고 방금 활성화되었다;
7. e_Inactivate-브라우저가 방금 비활성화되었다;
8. e_BrowserMin-브라우저가 최소화되었다;
9. e_HideButton-사용자가 브라우저를 숨길 것을 요구한다;
10. e_ShowButton-사용자가 오프 브라우저 모드로 갈 것을 요구한다;
11. e_MaxButton-현재, e_ShowButton과 동일하다;
12. e_MinButton-사용자가 미니 윈도우 모드로 갈 것을 요구한다;
13. e_BackButton-사용자가 이전 이미지를 볼 것을 요구한다;
14. e_FowardButton-사용자가 다음 이미지를 볼 것을 요구한다.
이미 개시된 바와 같이, 스마트-풀 엔진이 콘텐트 피이스를 다운로딩하는데 사용된다. 그러나, 본 발명은 여기에 제한되지않는다. 광고와 같은 콘텐트 피이스를 다운로딩하기 위한 다른 기술은 웹 페이지상에서 격자간 광고를 직사각형 "배너" 광고와 통합함으로써 된다. 웹 페이지 배너 광고는 이미지가 표시되는 웹 페이지상의 미리 정의된 영역이다. HTML 언어는 HTML 페이지상에 그래픽 이미지를 표시하기 위한 〈IMG〉 태그를 제공한다. 이런 이미지는 사용자의 웹 브라우저에 의해 지원되는 표맷이어야 한다. 다음은 IMG 태그를 사용하여 정의된 이미지의 보기이다. 그것은 400 화소의 폭과 80 화소의 높이를 가지는 GIF 이미지를 상술한다.
〈!-- Ad Start --〉
〈IMG SRC="image.gif" ALT="Information message"
WIDTH=400 HEIGHT=80〉
〈〈!-- Ad End --〉
웹 브라우저가 상기 페이지에서 이런 명령에 도달하면, 자동적으로 SRC= 특성으로 상술된 이미지를 다운로딩하고 브라우저의 로컬 캐시에 저장한다. 본 발명은 다음과 같이 격자간 광고와 웹 페이지 광고를 통합하려는 시도를 촉진시킬 수 있다.
1. 사용자는 표준 IMG 태그로 정의된 삽입 이미지를 가지지만 제로의 폭과 높이 특성을 갖는 HTML 페이지를 구비하는 웹 사이트로 간다.
2. 웹 브라우저가 이런 HTML 페이지를 로딩할 때, 그것은 로컬 캐시내로 이미지를 다운로딩하지만 폭과 높이가 제로이기 때문에 아무것도 표시되지않는다. 이런 이미지는 사실상 숨겨진 대상물이다.
3. 사용자가 하이퍼 텍스트 링크(예를 들어, 다음 격자간 시공간에 있는)를 클릭할 때, 새로운 애플리케이션이 웹 브라우저에 의해 방금 다운로딩된 이미지를 로딩하고 그것을 웹 브라우저를 커버하는 뷰어 윈도우에 표시한다.
4. 응답 또는 다운로드 레이턴시가 경과된후, 웹 브라우저는 요구된 웹 페이지를 표시한다. 그 페이지에서, 이제 이미지 영역이 이전 웹 페이지에 다운로딩된 동일한 이미지를 표시하기 위해 (제로보다 더 큰 폭과 높이를 갖는 IMG 태그로) 정의되고 이전 격자간 시공간에 표시된다. 또한 이런 페이지는 다음 격자간 시공간에 표시될 숨겨진 이미지 대상을 포함한다. 사용자의 견지에서, 시스템은 도 8에 도시된 바와 같이 동작할 것이다.
이미 언급된 바와 같이, 본 발명의 바람직한 실시예중 하나는 컴퓨터의 랜덤 액세스 메모리에 상주하는 코드 모듈의 명령 세트(프로그램 코드)에 따른다. 격자간 어플리케이션의 특정 성분(예를 들면, DLL과 디스플레이 엔진)이 웹 브라우저내에 형성될 수 있다. 컴퓨터에 의해 요구될 때까지, 상기 명령 세트는 예를 들어 하드디스크 드라이브와 같은 다른 컴퓨터 메모리에, 또는 광디스크(CD ROM에서의 최종적인 사용을 위한) 또는 플로피 디스크(플로피 디스크 드라이브에서의 최종적인 사용을 위한)에 저장될 수 있고, 또는 인터넷 또는 다른 컴퓨터 네트워크를 통해 다운로딩될 수 있다.
비록 본 발명이 바람직한 실시예를 참조하여 기술되었지만, 당업자는 본 발명의 사상 및 범위를 벗어나지않고 변형이 이루어진다는 것을 인식할 것이다.

Claims (15)

  1. 컴퓨터 네트워크를 통하여 다수의 웹 서버에 연결될 수 있고 디스플레이 윈도우 내의 웹 페이지의 디스플레이를 제어하기 위하여 웹 브라우저를 지원하는 클라이언트 컴퓨터 내에서 동작하는 디스플레이 방법에 있어서,
    웹 브라우저를 발진시킬 때, 웹 브라우저의 어드레스 공간 내에 이벤트 모니터링 코드를 삽입하는 단계;
    소정 웹 브라우저 이벤트가 상기 이벤트 모니터링 코드에 의하여 포착될 때, 웹 브라우저 디스플레이 윈도우의 소정 부분 상에 뷰어 윈도우를 중복시키는 단계; 및
    상기 뷰어 윈도우 내에서 간질성 디스플레이 주기 동안에 하나 이상의 디스플레이 목표 세트를 디스플레이하는 단계를 포함하는 것을 특징으로 하는 디스플레이 방법.
  2. 제 1항에 있어서, 상기 소정 웹 브라우저 이벤트는 소스 웹 페이지내의 사용자 링크 활성인 것을 특징으로 하는 디스플레이 방법.
  3. 제 2항에 있어서, 상기 간질성 지연 주기는 상기 사용자 링크 활성사이의 주기이며 상기 링크에 의하여 식별되는 목표 웹 페이지에 대한 사건인 것을 특징으로 하는 디스플레이 방법.
  4. 제 3항에 있어서, 소정 사건 발생시 뷰어 윈도우의 소정 특성을 조절하는 단계를 더 포함하는 것을 특징으로 하는 디스플레이 방법.
  5. 제 4항에 있어서, 상기 소정 특성은 뷰어 윈도우의 가시도인 것을 특징으로 하는 디스플레이 방법.
  6. 제 4항에 있어서, 상기 소정 특성은 웹 브라우저 디스플레이 윈도우에 관한 뷰어 윈도우의 사이즈 및 그 위치인 것을 특징으로 하는 디스플레이 방법.
  7. 컴퓨터 네트워크를 통하여 다수의 웹 서버에 연결될 수 있고 그래픽 사용자 인터페이스상에서 디스플레이 윈도우 내의 웹 페이지의 디스플레이를 제어하기 위하여 웹 브라우저를 지원하는 클라이언트 컴퓨터 내에서 사용되는 컴퓨터 프로그램 제품에 있어서,
    웹 브라우저에 의하여 사용되도록 형성된 소정 어드레스 공간에서 동작하는 제 1프로세스;
    뷰어 윈도우 내에서 간질성 지연 주기 동안에 하나 이상의 디스플레이 목표 세트를 사용자에게 디스플레이하도록 웹 브라우저 디스플레이 윈도우의 소정 부분 상에 뷰어 윈도우를 중첩시키기 위하여 제 1웹 브라우저 이벤트의 제 1프로세스에 의하여 포착되는 것에 응답하여 제 1프로세스에 의하여 제어가능한 제 2프로세스를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  8. 제 7항에 있어서, 상기 제 1프로세스는 실행가능한 코드 스터브인 것을 특징으로 하는 컴퓨터 프로그램 제품.
  9. 제 7항에 있어서, 상기 제 2프로세스는 하나 이상의 디스플레이 목표를 디스플레이하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  10. 제 7항에 있어서, 상기 제 1프로세스는 뷰어 윈도우의 소정 특성을 조정하기 위하여 제 2웹 브라우저 이벤트의 포착을 응답하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  11. 제 7항에 있어서, 상기 웹 브라우저 어드레스 공간으로 제 1프로세스를 삽입하기 위하여 웹 브라우저를 발진시키는 제 3프로세스를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  12. 제 11항에 있어서, 상기 제 3프로세스는 클라이언트 컴퓨터의 초기화시에 발진되는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  13. 제 7항에 있어서, 상기 뷰어 윈도우는 하나 이상의 디스플레이 목표의 디스플레이 시퀀스를 조절하도록 제어 수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  14. 제 7항에 있어서, 소정 영역을 기초로 상기 뷰어 윈도우에 디스플레이하기 위하여 특정 디스플레이 목표를 선택하는 디스플레이 폴리시 엔진을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  15. 제 7항에 있어서, 소정 영역을 기초로 캐시로부터 제거되도록 특정 디스플레이 목표를 선택하는 캐쉬 폴리시 엔진을 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1019990705057A 1996-12-06 1997-12-06 웹 브라우저 어드레스 공간에 있는 이벤트 포착 코드를 사용한 간질성 콘텐트 디스플레이 KR20000057440A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3198796P 1996-12-06 1996-12-06
US60/031,987 1996-12-06

Publications (1)

Publication Number Publication Date
KR20000057440A true KR20000057440A (ko) 2000-09-15

Family

ID=21862503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990705057A KR20000057440A (ko) 1996-12-06 1997-12-06 웹 브라우저 어드레스 공간에 있는 이벤트 포착 코드를 사용한 간질성 콘텐트 디스플레이

Country Status (5)

Country Link
EP (1) EP1021755A4 (ko)
KR (1) KR20000057440A (ko)
AU (1) AU6011998A (ko)
CA (1) CA2309634A1 (ko)
WO (1) WO1998025198A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2309658C (en) 1997-11-12 2007-10-30 Benjamin Slotznick Automatically switching a user's interface from a program to another program while the first is processing
US6769019B2 (en) 1997-12-10 2004-07-27 Xavier Ferguson Method of background downloading of information from a computer network
WO2000014617A2 (en) * 1998-08-24 2000-03-16 Preview Systems, Inc. System and method for exchanging information relating to a target client application
AU1239400A (en) * 1998-10-28 2000-05-15 Yahoo! Inc. A method of controlling an internet browser interface and a controllable browserinterface
US8291340B1 (en) * 1999-10-14 2012-10-16 Hoshiko Llc Method and apparatus for providing content to users
EP1242922A1 (en) * 1999-12-16 2002-09-25 Supermedia Networks Inc. Method of background downloading of information from a computer network
US20070073934A1 (en) * 2003-10-06 2007-03-29 Rogers Susan L Method, system and computer program for displaying information
US8365082B2 (en) 2008-10-23 2013-01-29 Savnor Technologies Llc Universal content referencing, packaging, distribution system, and a tool for customizing web content
FI20095175A (fi) * 2009-02-23 2010-08-24 Anygraaf Oy Menetelmä rasterimuotoisen kuvan segmentoinnin hyödyntämiseksi kuvan pakkaamisessa
US10296968B2 (en) 2012-12-07 2019-05-21 United Parcel Service Of America, Inc. Website augmentation including conversion of regional content
US9965466B2 (en) 2014-07-16 2018-05-08 United Parcel Service Of America, Inc. Language content translation
CN113254102B (zh) * 2021-05-27 2024-04-09 深信服科技股份有限公司 数据处理方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06176081A (ja) * 1992-12-02 1994-06-24 Hitachi Ltd 階層構造ブラウジング方法およびその装置
DE69418908T2 (de) * 1993-01-26 2000-01-20 Sun Microsystems Inc Verfahren und Gerät zum Informationsanschauen in einer Rechnerdatenbank
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking

Also Published As

Publication number Publication date
WO1998025198A3 (en) 1998-10-08
WO1998025198A2 (en) 1998-06-11
EP1021755A2 (en) 2000-07-26
AU6011998A (en) 1998-06-29
EP1021755A4 (en) 2000-08-09
CA2309634A1 (en) 1998-06-11

Similar Documents

Publication Publication Date Title
US7152203B2 (en) Independent update and assembly of web page elements
US6216141B1 (en) System and method for integrating a document into a desktop window on a client computer
US9866638B2 (en) Session-return enabling stateful web applications
JP4064060B2 (ja) 参照ウェブページに埋め込まれた広告タグをもちいて、ブラウザにより開始される、ユーザには見えないネットワーク分散隙間ウェブ公告を実施するための技術
US6366947B1 (en) System and method for accelerating network interaction
KR101651524B1 (ko) 브라우저의 새로운 탭 페이지 및 북마크 툴바
US7219139B2 (en) System and method for using continuous messaging units in a network architecture
US7076495B2 (en) Browser rewind and replay feature for transient messages by periodically capturing screen images
EP0888604B1 (en) Attention manager for occupying the peripheral attention of a person in the vicinity of a display device
US8219849B2 (en) Method and apparatus for controlling a computer over a wide area network
KR101614395B1 (ko) 웹-기반 클라이언트-서버 애플리케이션의 오프라인 사용을 가능하게 하는 방법 및 장치
JP2002304345A (ja) 情報配信システム、広告配信システム、情報配信プログラム、サーバ、情報配信サーバ、広告情報配信方法、およびセーバページ表示方法
KR19990029312A (ko) 웹 브라우저에서 데이터의 디스플레이를 필터링하고 제어하기위한 http 캐싱 프록시
KR19990029313A (ko) 텔레비전급 디스플레이를 위한 인터넷 웹 페이지의 콘텐트 수정방법 및 그 시스템
JP2001523853A (ja) 略リアルタイムで複数のデータソースのデータを表示するシステムおよび方法
JP2004513434A (ja) 表示方法および装置
KR20000057440A (ko) 웹 브라우저 어드레스 공간에 있는 이벤트 포착 코드를 사용한 간질성 콘텐트 디스플레이
US20110016000A1 (en) Creating content experience with video widgets
WO1998025198A9 (en) Interstitial content display using event-capture code running in web browser address space
JP4256621B2 (ja) ネットワークを介して受信した一時メッセージを表示する方法、プログラム製品、およびシステム
US8433613B2 (en) Web site audio/video presentation system
US20030076351A1 (en) Method for display of contents
Hutchings et al. mudibo: Multiple dialog boxes for multiple monitors
KR20020000985A (ko) 인터넷 서비스 서버, 컴퓨터 시스템 및 그 광고방법
US20060047777A1 (en) Enhancing portlet run-time display with dynamically applied portlet skins

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid