KR101251688B1 - 브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의제공 - Google Patents

브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의제공 Download PDF

Info

Publication number
KR101251688B1
KR101251688B1 KR1020077022950A KR20077022950A KR101251688B1 KR 101251688 B1 KR101251688 B1 KR 101251688B1 KR 1020077022950 A KR1020077022950 A KR 1020077022950A KR 20077022950 A KR20077022950 A KR 20077022950A KR 101251688 B1 KR101251688 B1 KR 101251688B1
Authority
KR
South Korea
Prior art keywords
browser
document object
travel
entry
hosted
Prior art date
Application number
KR1020077022950A
Other languages
English (en)
Other versions
KR20080007320A (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 KR20080007320A publication Critical patent/KR20080007320A/ko
Application granted granted Critical
Publication of KR101251688B1 publication Critical patent/KR101251688B1/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
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

브라우저에 의해 호스팅된 다큐먼트 서버/애플리케이션(다큐먼트 오브젝트)이 그 브라우저의 트래블 로그로 통합될 수 있게 하는 방법 및 시스템을 설명한다. 그 결과, 사용자는, 엔트리들의 드랍다운 리스트 뿐만 아니라 브라우저 네비게이션 커맨드, 특히, 포워드 커맨드와 백 커맨드를 이용하여 호스팅된 다큐먼트의 페이지들에 대하여 네비게이션할 수 있다. 또한, 통합은, 다큐먼트 오브젝트가 트래블 엔트리들을 추가하고 관련 상태를 지속하며 트래블 엔트리들을 삭제하고 기존의 트래블 엔트리들을 새로운 상태로 갱신할 수 있게 한다. 브라우저 및 다큐먼트 오브젝트는, 브라우저의 어드레스 바를 갱신하도록 통신할 수 있고, 서로를 동기화 상태로 유지하도록 다양한 네비게이션 이벤트들을 통신할 수 있다. 일 구현예에서, 브라우저는, 현재 호스팅된 다큐먼트 오브젝트에 대응하지 않는 서브 네비게이션 엔트리들을 필터링 아웃함으로써, 이 현재 호스팅된 다큐먼트 오브젝트의 서브 네비게이션 엔트리들 및 탑 레벨 트래블 엔트리들에 대한 네비게이션을 제한한다. 더 이상 유효하지 않은 프레임들도 네비게이션용으로 이용가능한 이러한 엔트리들로부터 필터링된다.
컴퓨팅 환경, 트래블 로그 통합, 네비게이션 이벤트, 브라우저, 다큐먼트 오 브젝트

Description

브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의 제공{PROVIDING TRAVEL LOG INTEGRATION FOR OBJECTS HOSTED IN A BROWSER}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로서, 특히 브라우저에 호스팅된 다큐먼트들에 대한 네비게이션에 관한 것이다.
현존하는 웹 브라우저는 사용자가 서로 다른 웹사이트들 및 하나의 웹사이트나 웹 애플리케이션 내의 서로 다른 페이지들을 방문할 수 있게 한다. 사용자는, 포워드 버튼 및 백 버튼을 이용하거나 특정한 마우스 버튼을 포함할 수 있는 유사한 사용자 인터페이스를 이용하여 페이지들을 방문하는 순서로 페이지들 간에 앞뒤로 네비게이션할 수 있다. 마이크로소프트 사의 인터넷 익스플로러는 서로 다른 웹 페이지들 간의 앞뒤 네비게이션을 허용하는 그러한 브라우저이며, 이를 위해, 인터넷 익스플로러는, 최근에 방문한 사이트들의 리스트를 유지하는 네비게이션 스택을 포함하는 트래블 로그(TravelLog)를 유지한다.
HTML 기반 웹 페이지들을 보는 것에 더하여, 인터넷 익스플로러는, 콘텐츠 인라인(inline)의 서로 다른 유형들, 예를 들어, Microsoft Office? 다큐먼트, .pdf 다큐먼트 등을 호스팅하는 기능도 갖는다. 일반적으로, 다른 다큐먼트를 호스팅하려면, 다큐먼트 오브젝트, 즉, DocObj를, 콘텐츠를 포함하는 컨테이너로서 이용하고, 오브젝트는 정의된 인터페이스들을 통해 브라우저와 통신한다. 인터넷 익스플로러에 대해서는, COM(컴포넌트 오브젝트 모델) 기술을 이용하며, 컨테이너 명세를 제공한다.
그러나, 호스팅된 동일한 다큐먼트에서의 페이지들 간의 네비게이션에 대해서는, 사용자 경험이 제한되어 있으며 HTML 페이지 네비게이션과 일관되지 않는다. 예를 들어, 프리젠테이션(예를 들어, Microsoft? PowerPoint) 다큐먼트의 다큐먼트 북마크를 통해 또는 페이지들(슬라이드)에서 네비게이션할 때, 사용자가 브라우저의 백 버튼을 동작하게 되면, 사용자는 다큐먼트의 이전 페이지로 되돌아가는 것으로 기대한다. 그러나, 브라우저는, 동일 다큐먼트에서 이전 페이지로 네비게이션하는 것이 아니라, 이전 웹 페이지로 되돌아가게 된다. 그 결과, 다큐먼트 서버는 흔히 다큐먼트의 페이지들 간에 앞뒤로 가기 위해 자신의 고유한 인터페이스를 제공한다.
내부 툴바 해결책이 어느 정도 도움이 되지만, 이 해결책은 브라우저가 다큐먼트 오브젝트를 호스팅하고 있는 동안 사용자가 브라우저 네비게이션 커맨드를 (흔히 습관처럼) 이용할 때 발생하는 일관되지 못하며 예기치 않은 결과를 극복하지 못한다. 사용자의 기대에 맞도록 그리고 사용자에게 일관된 네비게이션 경험을 제공하도록, 브라우저의 백 커맨트 및 포워드 커맨드를 이용하는 것을 비롯하여 호스팅된 다큐먼트 오브젝트 내의 페이지들에 대하여 끊김없이 네비게이션하는 방식이 필요하다.
간략하게 설명하면, 본 발명은 브라우저-호스팅된 다큐먼트 오브젝트가 브라우저의 트래블 로그(네비게이션 스택)로 통합될 수 있게 하여 사용자가 다큐먼트들의 다양한 유형들 내에서 그리고 웹 페이지들 간에 일관된 네비게이션 경험을 얻게 되는 방법 및 시스템에 관한 것이다. 이를 위해, 다큐먼트 오브젝트가 서브 네비게이션 트래블 엔트리들을 브라우저의 트래블 로그에 추가할 수 있게 하는 인터페이스를 제공한다. 브라우저는 현재 호스팅된 다큐먼트 오브젝트의 서브 네비게이션 엔트리들 및 탑 레벨 엔트리들로의 네비게이션을 제한한다. 그 결과, 사용자는, 호스팅된 다큐먼트의 페이지들에서 네비게이션하도록 엔트리들의 드랍다운 리스트 뿐만 아니라 브라우저 네비게이션 커맨드인 포워드 커맨드와 백 커맨드를 특히 이용할 수 있다.
일 구현예에서, 브라우저 및 다큐먼트 제어는 트래블 로그 통합을 위해 사용되는 인터페이스를 구현하는 COM 오브젝트를 포함한다. 통합은, 다큐먼트 오브젝트가 트래블 엔트리들을 추가할 수 있고 URI, 타이틀(애칭), 데이터 구조에서 제공되는 이진 스트림 등과 같은 관련 상태를 유지할 수 있는 것을 포함한다. 다큐먼트 오브젝트는, 서로 다른 엔트리들을 구별하기 위해 각 윈도우/프레임에 대한 서브 네비게이션 엔트리와 같은 엔트리를 추가할 때 고유 식별자를 특정한다. 또한, 인터페이스는 다큐먼트 서버가 트래블 엔트리들을 삭제하고 현존하는 트래블 엔트리들을 히스토리 네비게이션 상의 새로운 상태로 갱신할 수 있게 한다. 다큐먼트 오브젝트는, 애플리케이션의 현재 컨텍스트에 기초하여 사용자가 네비게이션할 수 있고 예를 들어 애플리케이션 상태 변경에 기초하여 요구시 트래블 로그를 갱신할 수 있는 트래블 엔트리들을 제어할 수 있다.
일관된 사용자 경험을 위해, 엔트리를 추가하거나 엔트리로 네비게이션할 때, 다큐먼트 오브젝트는 브라우저의 어드레스 바를 갱신할 수 있다. 브라우저 및 호스팅된 다큐먼트 오브젝트도 서로 동기화 상태를 유지하도록 다양한 네비게이션 이벤트들을 통신할 수 있다.
일 구현예에서, 브라우저는, 현재 호스팅된 다큐먼트 오브젝트에 대응하지 않는 서브 네비게이션 엔트리들을 필터링 아웃함으로써, 이 현재 호스팅된 다큐먼트 오브젝트의 서브 네비게이션 엔트리들 및 탑 레벨 트래블 엔트리들로의 네비게이션을 제한한다. 이것은, 엔트리들의 드랍다운 리스트를 렌더링할 때, 백 커맨드나 포워드 커맨드에 응답하여 트래블 로그 네비게이션 스택을 위 또는 아래로 움직일 때 행해진다. 이를 위해, 고유 다큐먼트 식별자(예를 들어, 이 다큐먼트의 CLSID)가 각 엔트리 내에서 유지되고, 현재의 다큐먼트 오브젝트 식별자는 각 엔트리에 대하여 매칭된다. 탑 레벨 트래블 엔트리들은, 다큐먼트 오브젝트와 매칭되는 이러한 서브 네비게이션 트래블 엔트리들과 함께 허용된다. 브라우저로부터 다큐먼트 오브젝트로 문의함으로써 주어진 윈도우 식별자를 이차 체크할 수 있으며, 이에 따라 (예를 들어, 사용자 액션에 의해 제거된) 더 이상 유효하지 않은 프레임들도 네비게이션용으로 이용가능한 엔트리들로부터 필터링된다.
윈도우를 리플레이할 때, 브라우저는 지속 상태 정보를 그 윈도우에 대한 다큐먼트 오브젝트에게 리턴한다. 다큐먼트 오브젝트는 상태를 갱신하기 위해 브라우저를 동기 상태로 호출할 수 있다.
따라서, 본 발명은, 중심 사용자 인터페이스를 이용하는 각 다큐먼트/애플리케이션 내에서의 네비게이션, 및 다양하게 호스팅된 다큐먼트 유형들/애플리케이션들 간의 네비게이션을 제공한다. 이것은 사용자가 애플리케이션/다큐먼트 내에서 끊김없이 앞뒤로 갈 수 있게 하여 일관되며 기대되는 브라우징 경험을 제공하게 된다.
다른 이점들은 첨부 도면과 함께 다음에 따르는 상세한 설명으로부터 명백해질 것이다.
도 1은 일반적으로 본 발명이 통합될 수 있는 컴퓨팅 환경을 나타내는 블록도이다.
도 2는 본 발명의 다양한 양태들에 따라 브라우저 및 이 브라우저에 의해 호스팅된 다큐먼트 오브젝트를 도시한다.
도 3은 본 발명의 다양한 양태들에 따라 브라우저 트래블 로그로 통합하기 위한, 다큐먼트 오브젝트 및 브라우저에 의해 구현되는 인터페이스를 예시하는 블록도이다.
도 4는, 본 발명의 다양한 양태들에 따라 다큐먼트 오브젝트가 엔트리를 브라우저 트래블 로그에 추가하게 하는, 브라우저와 호스팅된 다큐먼트 오브젝트 간의 통신을 구현하는 시퀀스도이다.
도 5는 본 발명의 다양한 양태들에 따라 네비게이션 이벤트들을 생성(fire)하고 브라우저 어드레스 바를 갱신하기 위한, 브라우저와 호스팅된 다큐먼트 오브 젝트 간의 통신을 나타내는 시퀀스도이다.
도 6은 본 발명의 다양한 양태들에 따라 윈도우를 리플레이할 것인지 또는 렌더링할 것인지 여부를 결정하기 위한, 브라우저와 호스팅된 다큐먼트 오브젝트 간의 통신을 나타내는 시퀀스도이다.
도 7은 본 발명의 다양한 양태들에 따라 윈도우를 리플레이할 것인지 또는 렌더링할 것인지 여부를 결정할 때 사용되는 로직을 예시하는 흐름도이다.
도 8은 본 발명의 다양한 양태들에 따라 네비게이션 커맨드의 수신시 윈도우를 리플레이할 때 브라우저와 호스팅된 다큐먼트 오브젝트 간의 통신을 나타내는 시퀀스도이다.
도 1은 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명에서 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로 그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
본 발명은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시되도록 설계된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 1과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 분리식 및 비분리식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리식 및 비분리식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매 체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 분리식/비분리식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 1은 비분리식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 분리식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 분리식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 분리식/비분리식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라 이브(141)는 통상적으로 인터페이스(140)와 같은 비분리식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 분리식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 마이크(163) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수 도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있 지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
트래블 로그 통합
본 발명은 일반적으로 엔트리들을 네비게이션 스택 내에 또는 트래블 로그 내에 추가하도록 다큐먼트 오브젝트가 자신을 호스팅하고 있는 브라우저와 통신할 수 있게 하는 방법 및 시스템에 관한 것이다. 그 결과, 사용자는, 엔트리들의 드랍다운 리스트 뿐만 아니라 브라우저 네비게이션 커맨드, 특히 포워드 커맨드와 백 커맨드를 이용하여 다큐먼트의 페이지들에 대하여 네비게이션할 수 있다. 이해할 수 있듯이, 본 발명을 구현하는 수많은 방식들이 가능하며, 본 명세서에서는 그 중 일부만을 설명한다. 예를 들어, 본 발명은 인터넷 익스플로러 기반의 예를 주로 설명하지만, 네비게이션을 위한 네비게이션 스택 등을 갖는 임의의 프로그램 및/또는 컴포넌트 내에 본 발명을 구현할 수도 있다. 이처럼, 본 발명은 본 명세서에서 이용되는 특정 예로 한정되는 것이 아니라, 일반적으로 컴퓨팅의 이점들 및 장점들을 제공하는 다양한 방식으로 이용될 수 있다.
도 2를 참조하면, 다큐먼트 오브젝트(DocObj; 204)를 호스팅하는 브라우저(202)의 표현이 도시되어 있으며, 이에 따라 오브젝트가 렌더링될 때, 다큐먼트 오브젝트(204)가 브라우저 윈도우 내에서 본래 콘텐츠로서 보이게 된다. "다큐먼트 오브젝트"라는 용어는 본 명세서에서 브라우저(202)에서 호스팅되는 엔티티로서 사용되며 실행가능 파일(exe)이거나 동적 링크 라이브러리(dll)일 수 있다는 점에 주목하길 바란다. 게다가, 도 2에 도시되어 있진 않지만, 브라우저(202) 자체가 다른 프로그램에 호스팅되고 있는 제어부일 수 있다는 점에 주목하길 바란다. 브라우저에 다큐먼트 오브젝트를 호스팅하는 것은 잘 알려져 있는 기술이며, 이에 따라 본 명세서에서 이 기술을 설명하지는 않겠으나, 인터넷 익스플로러 기반의 브라우저에서 다큐먼트 오브젝트가 소정의 인터페이스들의 세트를 통해 브라우저 제어부(202)와 통신한다는 점은 주목하길 바란다. 이 구현예에서, 컴포넌트들은 COM 기술에 의해 서로의 인터페이스들을 탐색한다.
본 발명의 다양한 양태에 따라, 브라우저(202) 및 다큐먼트 오브젝트(204)는 트래블 로그 통합을 위해 사용되는 인터페이스들을 구현한다. 이 인터페이스들은 도 3에 더욱 상세히 도시되어 있으며, 아래와 같이 브라우저(202)에 IWebBrowserEventsService를 포함한다.
Figure 112007072038258-pct00001
다큐먼트 서버(204)의 ITravelLogClient는 아래와 같다.
Figure 112007072038258-pct00002
일반적으로, 후술하는 바와 같이, 인터페이스들은 호스팅된 다큐먼트 오브젝트(204)에게 브라우저의 트래블 로그(408)로 통합하는 기능을 제공한다. 이것은, 다큐먼트 오브젝트(204)가 트래블 엔트리들을 추가하고 URI, 타이틀(애칭), 이진 스트림 등과 같은 관련 상태를 세이브할 수 있는 것을 포함할 수 있다. 다큐먼트 오브젝트(204)는 서로 다른 엔트리들을 구별하기 위해 엔트리를 추가할 때 고유 식별자를 특정한다.
또한, 인터페이스는 다큐먼트 서버가 트래블 엔트리들을 삭제하고 현존하는 트래블 엔트리들을 히스토리 네비게이션 상의 새로운 상태로 갱신할 수 있게 한다. 다큐먼트 오브젝트(204)는 사용자가 애플리케이션의 현재의 컨텍스트에 기초하여 네비게이션할 수 있는 트래블 엔트리들을 필터링할 수도 있다. 게다가, 다큐먼트 오브젝트(204)는 예를 들어 애플리케이션 상태 변경에 기초하여 요구시 백/포워드 리스트를 갱신할 수 있다.
트래블 로그 엔트리들을 추가 및 갱신하는 커맨드들은 아래와 같다.
Figure 112007072038258-pct00003
또한, 다큐먼트 오브젝트(204)는, 애플리케이션을 엔트리에 표현된 상태로 복원하기 위해 충분한 정보가 그 엔트리에 저장되어 있다면, 탑 레벨 엔트리들을 추가할 수 있다. 이것은, 다큐먼트 오브젝트(204)가 현재 호스팅되어 있지 않더라도 애플리케이션에서의 임의의 탑 레벨 네비게이션이 보일 수 있게 한다.
도 4는 호스팅된 다큐먼트 오브젝트(204) 및 브라우저(202)가 엔트리를 브라우저의 트래블 로그(408)에 추가하기 위해 인터페이스들을 통해 통신하는 호출들의 시퀀스의 일례를 도시한다. 도 4 내지 도 5에서 호출을 동반하는 점선들은 호출자에게 되돌아가는 일부 선택사항인 통신이거나 필요한 통신을 나타낸다.
트래블 로그 엔트리를 추가하는 예로서, 사용자가 브라우저(202)에 호스팅된 "CarSelect" 애플리케이션으로 네비게이션하는 것을 고려한다. 이 예에서, 사용자는 "Choose a Car" 선택을 클릭하여 모델, 예를 들어, 브랜드 XX를 고를 수 있다. 이후, 사용자는 모델 X1, 컬러 등과 같은 서로 다른 선택 사항들을 선택할 수 있으며, 또한 애플리케이션의 버튼을 클릭하여 현재 선택을 세이브할 수 있다. 다른 예로는, 프리젠테이션 애플리케이션이 슬라이드에 대한 참조를 트래블 로그에 미리 배치하는 것이 있으며, 이에 따라 사용자는 브라우저(202)(및/또는 마우스)의 앞뒤 버튼들(210, 212)을 각각 이용하여 슬라이드 쇼를 볼 수 있다(도 2).
세이브 선택시와 같이 어느 때라도, 다큐먼트 서버는 API를 호출하여 엔트리를 브라우저의 트래블 로그(408) 내에 추가할 수 있다. 이 예에서, 다큐먼트 오브젝트(204)는 브라우저의 IOleCommandTarget::ExecCommand (OLECMDID_ADDTRAVELENTRY) 인터페이스를 통해 엔트리 추가 커맨드를 호출한다. 이것은 트래블 로그의 현재의 오프셋에서 엔트리를 프리펜드(prepend)한다.
이후, 이 예에서, 브라우저(202)는 현재 호스팅된 다큐먼트 오브젝트(204) 상의 Querylnterface를 호출하여 (미리 알고 있지 않는 경우라면) 다큐먼트 오브젝트의 ITravelLogClient 인터페이스에 대한 포인터를 얻는다. 이 인터페이스를 이용하여, 브라우저(202)가 ITravelLogClient.GetWindowData를 호출한다. 보다 상세하게는, 다큐먼트 오브젝트(204)는, URL, 타이틀, 고유 식별자를 비롯한 일부 상태 정보를 그 호출로 패스인(pass-in)된 WINDOWDATA 구조에 저장하여 이 정보를 애플리케이션에 표현한다.
WINDOWDATA 구조의 일례는 아래와 같다.
Figure 112007072038258-pct00004
이 윈도우 데이터는 트래블 엔트리를 식별하도록 (적어도 다큐먼트 오브젝트마다) 고유한 윈도우 식별자를 포함한다. 페이지가 프레임들을 가질 수 있고, 사용자가 트래블 로그에 추가되는 트래블 엔트리들을 이용하여 한 프레임 내에서 네 비게이션할 수 있다는 점에 주목하길 바란다. 윈도우 식별자는 어느 프레임 네비게이션이 적용되는지를 브라우저(202)가 추적할 수 있게 한다. URL, URL 위치, 타이틀(트래블 엔트리를 표시하기 위한 애칭)도 그 윈도우 구조를 통해 브라우저(202)에게 제공된다. 다른 정보로는, 다큐먼트 오브젝트(204)가 제공하고 엔트리로 지속하길 원할 수 있는 로케일-특정 정보의 코드 페이지, 리소스를 나타내기 위한 경로이름이나 아이템 ID 리스트(PIDL)가 있다. 본래, 윈도우 구조의 예에 특정하게 도시되어 있진 않지만, 본 발명은, 다큐먼트 오브젝트의 클래스 식별자(CLSID; 후술함) 및 WindowID를 통해 식별되는, 다큐먼트 오브젝트(204)가 원하는 어떠한 정보도 브라우저(202)가 지속하고 리턴할 수 있게 한다. 이러한 추가 정보의 일례는, 스크롤링/포지션 데이터를 포함할 수 있고, 이 데이터에 의해 윈도우 또는 프레임이 사용자에 의해 네비게이션될 때 다큐먼트 오브젝트(204)가 스크롤을 행하여 정확한 포지션을 복원할 수 있다.
또한, 브라우저(202)는, 다큐먼트 오브젝트의 IPersist 인터페이스를 얻기 위해 Querylnterface를 호출하고, 이를 수신하면, GetPersistID 메소드를 호출하여 다큐먼트 오브젝트(204)의 클래스 식별자(CLSID)를 TravelEntry 위치에 세이브한다. 후술하는 바와 같이, 다큐먼트 오브젝트로 네비게이션할 때마다, CLSID를 이용하여 다큐먼트 오브젝트를 트래블 로그에서의 이 다큐먼트 오브젝트의 고유 엔트리들(서브 네비게이션)과 매칭함으로써, 탑 레벨 위치 및 현재 페이지의 서브 네비게이션만이 네비게이션용으로 사용자에게 이용가능하다. 이 구현예에서, CLSID는 필터링 메카니즘으로서 이용된다. 각 클래스 식별자에 대하여 별도의 리스트의 서브 네비게이션을 추적하고 이후 현재 호스팅된 다큐먼트 오브젝트에 대한 리스트를 임의의 탑 레벨 엔트리들과 합쳐 그 리스트를 사용자에게 제공할 수도 있다는 점에 주목하길 바란다.
일관된 사용자 경험을 위해, 엔트리를 추가하거나 엔트리로 네비게이션할 때, 다큐먼트 오브젝트(204)는 브라우저의 어드레스 바(214)를 자동 갱신하는 것을 선택할 수 있다(도 2). 또한, 브라우저(202) 및 호스팅된 다큐먼트 오브젝트는 서로 동기화 상태로 유지되도록 다양한 네비게이션 이벤트들을 통해 통신하며, 다큐먼트 오브젝트(204)가 네비게이션을 가능하게 하는 자신의 고유한 내부 툴바를 가질 수 있으며 이에 따라 통신 없이는 브라우저(202)가 이러한 네비게이션 이벤트를 모를 수 있다는 점에 주목하길 바란다.
도 5는 어드레스 바를 갱신하고 네비게이션 이벤트들을 생성하도록 통신이 작동하는 방식을 일반적으로 표현한다. 일반적으로, 다큐먼트 오브젝트(204)는 WebBrowserEventsService 인터페이스 포인터에 대하여 브라우저(202)에게 문의하고, 이 포인터를 이용하여 NavigateComplete, DocumentComplete, DownloadComplete, 및 다른 이벤트들을 생성하는 메소드를 호출한다. 예를 들어, 다큐먼트 오브젝트(204)는 다수의 서로 다른 이벤트들을 송신하여 새로운 위치의 URL이나 경로 및 다른 임의의 데이터를 특정하는 BeforeNavigate 이벤트와 같은 사용자 발생 동작(activity)을 브라우저(202)에게 통지할 수 있다. 다큐먼트 오브젝트(204)는, 새로운 위치로 네비게이션한 후, NavigateComplete 이벤트를 송신할 수 있다. 데이터를 다운로드할 때, DownloadBegin 이벤트도 송신되며, 매칭되는 DownloadComplete event는 완료시에 송신된다(도 4에는 비록 하나의 다운로드가 도시되어 있지만, 각각이 자신의 고유한 시작 및 완료 이벤트를 갖는 여러 다운로드가 존재할 수 있다는 점에 주목하길 바란다). 모든 네비게이션 및 다운로드가 종료되면 DocumentComplete 이벤트도 송신된다.
또한, 브라우저(202)는, STDMETHODIMP GetUrlForEvents([out] BSTR* pUrl)라는 메소드를 이용하여, 이벤트들을 다큐먼트 오브젝트에게 송신하기 위한 인터페이스 포인터들에 관하여 현재 호스팅된 다큐먼트 오브젝트(204)에게 문의한다.
또한, 브라우저(202)는 보안 완화를 위해 어드레스 바에 표시하는 URL에 대하여 다큐먼트 오브젝트(204)에게 문의한다. 이러한 방식으로, 현재 호스팅된 다큐먼트 서버로부터만 URL을 얻게 되어 어드레스 바 스푸핑(spoofing)을 방지하게 된다.
사용자가 네비게이션하는 한 방식은 백 버튼 및 포워드 버튼에 인접하는 아래 화살표 버튼을 클릭하는 것이며, 이렇게 함으로써 엔트리들의 드랍다운 리스트가 발생한다. 그러나, 본 발명에서는, 이 리스트는 탑 레벨 엔트리들 및 현재 페이지에 관련된 엔트리들에 대해서만 필터링된다. 이를 위해, 드랍다운 리스트에서 사용자에게 렌더링되는 트래블 로그의 엔트리들은, 현재 다큐먼트 오브젝트의 CLSID에 기초하여 필터링되는 서브 네비게이션 엔트리들에 더한 본래 탑 레벨 엔트리들이다.
도 6 및 도 7은 렌더링 작업을 필터링하는 방식을 설명하는 일례를 도시한다. 일반적으로, 드랍다운 리스트가 채워지고 렌더링될 필요가 있을 때, 브라우 저(202)는, 적절한 인터페이스 포인터를 위해 다큐먼트 오브젝트(204)를 호출하고, 이를 이용하여 도 6에 일반적으로 나타낸 바와 같이 다큐먼트 오브젝트(204)의 CLSID를 얻는다. 이후, CLSID는 매칭에 대하여 평가받고, 매칭이 없다면, 이 호스팅된 오브젝트를 위해 탑 레벨 엔트리만이 렌더링된다. 매칭이 존재하면, CLSID와 관련된 각 윈도우에 대하여, 브라우저(202)가 해당 윈도우가 여전히 유효한지 여부를 다큐먼트 오브젝트(204)에게 문의한다. 예를 들어, 이전에 유효했던 프레임은 사용자 액션에 의해 제거되었을 수 있다.
도 7은 엔트리가 렌더링되어야 하는지 여부를 결정하는 일반적인 렌더링 로직(620)(도 6)을 도시한다. 상술한 바와 같이, 소정의 엔트리에 대하여, 이 엔트리가 단계(702)에서 평가된 바와 같이 (예를 들어, 특별한 윈도우 ID를 갖는) 탑 레벨 엔트리라면, 엔트리(이 엔트리의 타이틀)는 단계(710)로 나타낸 바와 같이 리스트에서 렌더링된다. 탑 레벨 엔트리가 아니라면, 단계(704)는 CLSID에 대한 매칭이 존재하는지 유무, 즉, 평가받는 엔트리가 현재 다큐먼트 오브젝트(204)에 속하는지 여부를 평가하는 것을 나타낸다. 속하지 않는다면, 이 엔트리는 다른 다큐먼트 오브젝트의 서브 네비게이션이기 때문에 렌더링되지 않는다.
현재 다큐먼트 오브젝트(204)의 CLSID와 매칭이 존재하면, 윈도우 ID를 다큐먼트 오브젝트(204)에게 패스하고(단계(706)) 단계(708)에서 리턴된 성공 또는 실패를 평가함으로써, 윈도우를 평가하여 윈도우가 여전히 유효한지 여부를 결정한다. 단계(710)는 렌더링을 나타낸다. 쉽게 알 수 있듯이, 트래블 로그는 이 로직을 이용하여 횡단되어 다른 다큐먼트 오브젝트들의 서브 네비게이션 엔트리들을 필터링 아웃하고 현재 다큐먼트 오브젝트(204)의 서브 네비게이션 엔트리들을 포함하게 된다.
백 버튼 및 포워드 버튼을 클릭하는 것에 대하여, 본래 브라우저(202)는 트래블 로그 스택에서 앞뒤로 움직여 엔트리를 선택한다. 본래, 로직은 도 7에 도시한 바와 동일하며, 로직이 탑 레벨 트래블 엔트리가 아니라면, 브라우저(202)는, 적절한 방향으로 대응하는 트래블 엔트리의 CLSID가 현재 다큐먼트 오브젝트(204)의 CLSID에 매칭되는지 여부를 체크한다. CLSID가 매칭되면, 브라우저(202)는 다큐먼트 오브젝트의 ITravelLogClient.FindWindowBylndex 메소드를 호출하여, 다큐먼트 오브젝트(204)에 의해 저장된 고유 ID를 패스인한다. 이 고유 ID를 갖는 엔트리가 인보크될 수 있다면, 즉, 윈도우가 여전히 유효하면, 다큐먼트 오브젝트(204)는 성공(예를 들어, 자신의 IUnknown 인터페이스)을 리턴한다.
도 8은, 백 커맨드 또는 포워드 커맨드에 의해 또는 드랍다운 리스트를 통한 엔트리의 선택시 리플레이용으로 취해지는 추가 단계들을 나타낸다. 브라우저(202)는 다큐먼트 오브젝트의 IPersistHistory::LoadHistory를 WINDOWDATA 구조에 저장된 스트림을 이용하여 호출한다. 이후, 다큐먼트 오브젝트(204)는 스트림 데이터를 이용하여 히스토리 네비게이션을 처리하여 예를 들어 윈도우를 자신의 유지 상태로 복원한다. 위치 데이터가 다큐먼트 오브젝트(204)에 의해 이전에 제공되었다면, 브라우저(202)는 이 위치 데이터(LoadHistoryPosition)를 다큐먼트 오브젝트에게 리턴하여 예를 들어 윈도우를 윈도우의 이전 위치로 스크롤할 수도 있다는 점에 주목하길 바란다.
다큐먼트 오브젝트(204)는 브라우저의 IOleCommandTarget::ExecCommand (OLECMDID_ UPDATETRAVELENTRY)를 비동기식으로 호출하여 이전 엔트리의 상태를 갱신할 수 있다. 브라우저(202)는 현재 호스팅된 다큐먼트 오브젝트(204)에게 ITravelLogClient에 대하여 문의한다. 브라우저(202)는 ITravelLogClient.GetWindowData를 호출하고 또한 IPersist interface에 대하여 문의한다. 이후, 브라우저(202)는 GetClassID를 호출하고 다큐먼트 오브젝트의 CLSID를 트래블 엔트리에 세이브한다.
상태를 다큐먼트 오브젝트(204)에게 다시 제공함으로써 사용자가 액션을 취소할 수 있다는 점에 주목하길 바란다. 예를 들어, 상술한 차 선택의 시나리오에서, 차를 선택할 때, 사용자는 브랜드 XX로부터 다른 모델 X2를 추가한 후 백 버튼을 눌러 이전 선택으로 되돌아간다.
보다 상세하게는, 동일한 다큐먼트에서 페이지들 간에 네비게이션하는 것에 더하여, 애플리케이션은 트래블 로그로 통합하여 이 애플리케이션의 서로 다른 상태들을 반영하는 트래블 엔트리들을 추가할 수도 있다. 계속해서 차 선택의 예에서, 애플리케이션이 사용자가 서로 다른 차 모델들 및 이에 따라 컬러를 비롯한 차의 특징들을 선택하게 하면, 이 정보가 트래블 엔트리에 스냅샷으로서 본래 세이브될 수 있다. 사용자는 이러한 여러 엔트리들의 세이브를 선택할 수 있고, 서로 다른 선택 사항들을 비교하기 위해 이 엔트리들 간에 앞뒤로 갈 수 있다. 이것은 애플리케이션과 브라우저 둘 다에 의해 제공되는 사용자 경험을 향상시킨다.
엔트리들의 삭제에 대해서는, 다큐먼트 오브젝트(204)가 공중 ITravelLogStg 인터페이스에 대하여 브라우저(202)에게 문의하고, 현존하는 RemoveEntry API를 이용할 수 있다. 게다가, API의 삭제 메카니즘은, API에게 전달된 CLSID에 기초하여 다큐먼트 오브젝트에 관련된 트래블 엔트리들 중 하나의 엔트리 또는 전부를 삭제할 수 있다. 다른 방안으로, 다큐먼트 오브젝트(204)는 트래블 엔트리 필터링 동안 문의받을 때 폴스(false)를 리턴할 수 있다.
상술한 상세한 설명으로부터 알 수 있듯이, 호스팅된 다큐먼트 오브젝트 내의 페이지들의 끊김없는 네비게이션을 위한 방법 및 시스템을 제공한다. 트래블 로그를 이용한 다큐먼트 오브젝트 통합 및 선택적 필터링을 허용함으로써, 본 발명은, 사용자의 경험에 맞도록 그리고 사용자에게 일관된 네비게이션 경험을 제공하도록 사용자가 백 커맨드와 포워드 커맨드 및 엔트리들의 드랍다운 리스트를 비롯하여 브라우저의 사용자 인터페이스 메카니즘을 이용하여 호스팅된 다큐먼트들 내에서 네비게이션할 수 있게 한다.
본 발명은 다양한 수정 및 대체 구성을 허용하지만, 소정의 실시예들을 도면에 도시하였으며 상세히 설명하였다. 그러나, 이것은, 본 발명을 상술한 특정 형태로 제한하려는 의도가 아니며, 본 발명의 사상 및 범위 내에 속하는 모든 수정, 대체 구성, 및 등가를 포함하려는 의도임을 이해하기 바란다.

Claims (24)

  1. 컴퓨팅 환경에서, 브라우저에 의해 호스팅된 다큐먼트 오브젝트(document object)가 상기 브라우저의 트래블 로그(travel log)와 통합될 수 있는 방법으로서,
    상기 다큐먼트 오브젝트가 상기 브라우저로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로부터의 질의(query)를 브라우저에 의해 수신하는 단계;
    상기 브라우저가 상기 다큐먼트 오브젝트로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로의 질의를 상기 브라우저가 송신하는 단계;
    상기 다큐먼트 오브젝트로부터의 트래블 엔트리(travel entry)를 포함하는 이벤트를 상기 브라우저에 의해 수신하는 단계;
    상기 트래블 엔트리를 상기 트래블 로그에 추가하는 단계;
    브라우저 커맨드를 통해 상기 트래블 엔트리로 네비게이션하는 단계;
    상기 다큐먼트 오브젝트에 대응하는 서브 네비게이션 엔트리(sub-navigation entry)를 리플레이하고 다른 다큐먼트 오브젝트에 대응하는 서브 네비게이션 엔트리는 리플레이하지 않도록 상기 다큐먼트 오브젝트에 기초하여 서브 네비게이션 엔트리들을 필터링하는 단계; 및
    상기 다큐먼트 오브젝트에게 질의하여 서브 네비게이션 윈도우가 리플레이되는 데 여전히 유효한지 여부를 결정하는 단계
    를 포함하고,
    상기 트래블 엔트리를 수신하는 단계는, 상기 다큐먼트 오브젝트가 상기 브라우저에 의해 호스팅되지 않은 경우를 포함하여 선택적으로 표시가능한 탑 레벨 엔트리를 수신하는 단계를 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  2. 제1항에 있어서,
    상기 서브 네비게이션 엔트리에 대응하는 상태 정보를 상기 다큐먼트 오브젝트에게 리턴하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  3. 제1항에 있어서,
    상기 트래블 로그의 복수의 엔트리 중 적어도 일부를 표시하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 다큐먼트 오브젝트에게 질의하여 서브 네비게이션 윈도우가 자신에 대한 엔트리를 표시하는 데 여전히 유효한지 여부를 결정하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  6. 제1항에 있어서,
    추가되는 트래블 엔트리에 기초하여 어드레스 바(address bar)를 갱신하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  7. 제6항에 있어서,
    상기 어드레스 바를 갱신하는 단계는,
    상기 다큐먼트 오브젝트에게 질의하여 상기 브라우저의 어드레스 바에 대한 어드레스를 얻는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  8. 제1항에 있어서,
    상기 다큐먼트 오브젝트의 식별자에 기초하여 상기 트래블 로그에서 상기 다큐먼트 오브젝트에 관련된 적어도 하나의 엔트리를 삭제하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  9. 제1항에 있어서,
    트래블 엔트리를 포함하는 상기 이벤트는 고유 식별자를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  10. 제1항에 있어서,
    상기 트래블 엔트리는 상기 엔트리에 표현된 상태로 애플리케이션을 복원하기 위한 정보를 포함하는 탑 레벨 엔트리를 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  11. 제1항에 있어서,
    상기 트래블 엔트리를 추가하는 단계는 상기 트래블 로그의 현재 오프셋에서 상기 엔트리를 프리펜드(prepend)하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  12. 제1항에 있어서,
    상기 트래블 엔트리를 추가할 때, 상기 브라우저의 어드레스 바를 자동적으로 갱신하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  13. 제1항에 있어서,
    상기 다큐먼트 오브젝트와 브라우저가 서로 동기화 상태로 유지되도록 네비게이션 이벤트를 통해 통신하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  14. 제1항에 있어서,
    트래블 엔트리를 포함하는 상기 이벤트는 사용자에 의해 발생된 동작(activity)의 통지를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  15. 제1항에 있어서,
    상기 브라우저가 어드레스 바에 표시하는 URL에 대하여 상기 다큐먼트 오브젝트에게 질의하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  16. 제1항에 있어서,
    상기 트래블 엔트리는 상태를 더 포함하고,
    상기 방법은, 상기 트래블 엔트리의 상태를 갱신하기 위해 상기 다큐먼트 오브젝트로부터 비동기식 호출(asynchronous call)을 수신하는 단계를 더 포함하는, 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합될 수 있는 방법.
  17. 컴퓨터 실행가능 명령어들이 기록된 적어도 하나의 컴퓨터 판독가능 기록 매체로서,
    상기 컴퓨터 실행가능 명령어들은 실행될 때,
    다큐먼트 오브젝트가 브라우저로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로부터의 질의를 브라우저에 의해 수신하는 단계;
    상기 브라우저가 상기 다큐먼트 오브젝트로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로의 질의를 상기 브라우저가 송신하는 단계;
    상기 다큐먼트 오브젝트로부터의 트래블 엔트리를 포함하는 이벤트를 상기 브라우저에 의해 수신하는 단계;
    상기 트래블 엔트리를 상기 트래블 로그에 추가하는 단계;
    브라우저 커맨드를 통해 상기 트래블 엔트리로 네비게이션하는 단계;
    상기 다큐먼트 오브젝트에 대응하는 서브 네비게이션 엔트리를 리플레이하고 다른 다큐먼트 오브젝트에 대응하는 서브 네비게이션 엔트리는 리플레이하지 않도록 상기 다큐먼트 오브젝트에 기초하여 서브 네비게이션 엔트리들을 필터링하는 단계; 및
    상기 다큐먼트 오브젝트에게 질의하여 서브 네비게이션 윈도우가 리플레이되는 데 여전히 유효한지 여부를 결정하는 단계
    를 포함하는 방법을 수행하고,
    상기 트래블 엔트리를 수신하는 단계는, 상기 다큐먼트 오브젝트가 상기 브라우저에 의해 호스팅되지 않은 경우를 포함하여 선택적으로 표시가능한 탑 레벨 엔트리를 수신하는 단계를 포함하는, 적어도 하나의 컴퓨터 판독가능 기록 매체.
  18. 컴퓨팅 환경에서, 컴퓨터 프로세서 및 컴퓨터 판독가능 메모리를 포함하는 시스템으로서.
    트래블 로그를 갖는 브라우저;
    상기 브라우저에서 다큐먼트 오브젝트를 호스팅하기 위한 수단;
    상기 트래블 로그에 상기 다큐먼트 오브젝트에 의해 제공되는 적어도 하나의 네비게이션 엔트리의 세트를 추가하기 위한 수단 - 상기 세트는 서브 네비게이션 엔트리를 포함함 -;
    상기 다큐먼트 오브젝트에 대응하지 않는 서브 네비게이션으로의 트래블 로그 엔트리를 통한 네비게이션을 방지하도록, 상기 세트를 현재 호스팅되고 있는 다큐먼트 오브젝트와 연관시키기 위한 수단; 및
    상기 다큐먼트 오브젝트가 상기 브라우저에 의해 호스팅되지 않은 경우를 포함하여 선택적으로 표시가능한 탑 레벨 엔트리를 수신하기 위한 수단
    을 포함하고,
    상기 추가하기 위한 수단은,
    상기 다큐먼트 오브젝트가 상기 브라우저로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로부터의 질의를 상기 브라우저에 의해 수신하는 수단;
    상기 브라우저가 상기 다큐먼트 오브젝트로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로의 질의를 상기 브라우저가 송신하는 수단; 및
    상기 브라우저가 상기 다큐먼트 오브젝트로부터 하나 이상의 이벤트를 수신하는 수단
    을 포함하는 시스템.
  19. 제18항에 있어서,
    상기 세트를 추가하기 위한 수단은 정의된 인터페이스들의 세트를 포함하는 시스템.
  20. 제19항에 있어서,
    상기 브라우저, 다큐먼트 오브젝트 및 인터페이스들은 컴포넌트 오브젝트 모델(COM) 기술에 기초하는 시스템.
  21. 브라우저에 의해 호스팅된 다큐먼트 오브젝트가 상기 브라우저의 트래블 로그와 통합하기 위한, 컴퓨터 실행가능 명령어들이 기록된 적어도 하나의 컴퓨터 판독가능 기록 매체로서,
    상기 컴퓨터 실행가능 명령어들은 실행될 때,
    상기 다큐먼트 오브젝트가 상기 브라우저로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로부터의 질의를 브라우저에 의해 수신하는 단계;
    상기 브라우저가 상기 다큐먼트 오브젝트로 이벤트를 전송하기 위한 인터페이스 포인터에 대한 상기 다큐먼트 오브젝트로의 질의를 상기 브라우저가 송신하는 단계;
    상기 다큐먼트 오브젝트로부터 트래블 엔트리를 수신하는 단계 - 상기 트래블 엔트리는 복수의 서브 네비게이션 엔트리 중 상기 다큐먼트 오브젝트에 대응하는 하나의 서브 네비게이션 엔트리를 포함함 -;
    브라우저 커맨드를 통해 상기 트래블 엔트리로 네비게이션하는 단계; 및
    상기 다큐먼트 오브젝트에게 질의하여 서브 네비게이션을 현재 유효한 윈도우들로만 제한하는 단계
    를 수행하고,
    상기 트래블 엔트리를 수신하는 단계는, 상기 다큐먼트 오브젝트가 상기 브라우저에 의해 호스팅되지 않은 경우를 포함하여 선택적으로 표시가능한 탑 레벨 엔트리를 수신하는 단계를 포함하는, 적어도 하나의 컴퓨터 판독가능 기록 매체.
  22. 제21항에 있어서,
    상기 트래블 엔트리는, 복수의 서브 네비게이션 엔트리 중 상기 다큐먼트 오브젝트에 대응하는 하나의 서브 네비게이션 엔트리를 포함하고,
    상이한 다큐먼트 오브젝트에 대응하는 서브 네비게이션 엔트리로의 브라우저 네비게이션을 방지하는 단계를 수행하는 컴퓨터 실행가능 명령어를 더 포함하는 적어도 하나의 컴퓨터 판독가능 기록 매체.
  23. 제21항에 있어서,
    상기 다큐먼트 오브젝트에게 질의하여 상기 브라우저의 어드레스 바를 위한 어드레스를 얻는 단계를 수행하는 컴퓨터 실행가능 명령어를 더 포함하는 적어도 하나의 컴퓨터 판독가능 기록 매체.
  24. 제21항에 있어서,
    상기 브라우저와 상기 다큐먼트 오브젝트 간에 네비게이션 이벤트들을 통신하는 단계를 수행하는 컴퓨터 실행가능 명령어를 더 포함하는 적어도 하나의 컴퓨터 판독가능 기록 매체.
KR1020077022950A 2005-04-27 2006-03-22 브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의제공 KR101251688B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/117,766 2005-04-27
US11/117,766 US7430739B2 (en) 2005-04-27 2005-04-27 Providing travel log integration for objects hosted in a browser
PCT/US2006/010661 WO2006137950A2 (en) 2005-04-27 2006-03-22 Providing travel log integration for objects hosted in a browser

Publications (2)

Publication Number Publication Date
KR20080007320A KR20080007320A (ko) 2008-01-18
KR101251688B1 true KR101251688B1 (ko) 2013-04-05

Family

ID=37235880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022950A KR101251688B1 (ko) 2005-04-27 2006-03-22 브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의제공

Country Status (6)

Country Link
US (1) US7430739B2 (ko)
EP (1) EP1875379A4 (ko)
JP (1) JP4870752B2 (ko)
KR (1) KR101251688B1 (ko)
CN (1) CN101558403B (ko)
WO (1) WO2006137950A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402068B2 (en) 2000-12-07 2013-03-19 Half.Com, Inc. System and method for collecting, associating, normalizing and presenting product and vendor information on a distributed network
US7882447B2 (en) 2005-03-30 2011-02-01 Ebay Inc. Method and system to determine area on a user interface
US8856083B2 (en) * 2006-06-09 2014-10-07 Oracle International Corporation Framework to optimize delete all row operations on database objects to improve throughput, query ability and flashback
US9262071B2 (en) * 2009-03-16 2016-02-16 Microsoft Technology Licensing, Llc Direct manipulation of content
US9268367B2 (en) 2010-10-13 2016-02-23 Microsoft Technology Licensing, Llc Use of low-power display on device
US20120124487A1 (en) * 2010-11-11 2012-05-17 Microsoft Corporation Issuing behavioral and contextual notifications
CN102185875A (zh) * 2011-01-30 2011-09-14 北京开心人信息技术有限公司 一种信息同步更新的方法与系统
US8504907B2 (en) * 2011-03-07 2013-08-06 Ricoh Co., Ltd. Generating page and document logs for electronic documents
US9009587B2 (en) 2012-02-20 2015-04-14 International Business Machines Corporation Browser locking tool to control navigation away from a current webpage to a target webpage
CN103309892A (zh) * 2012-03-15 2013-09-18 佳能株式会社 用于信息处理和Web浏览历史导航的方法和设备及电子装置
US20140236768A1 (en) * 2012-10-05 2014-08-21 Redfin Corporation Physical references for providing supplemental real estate information
US9679076B2 (en) * 2014-03-24 2017-06-13 Xiaomi Inc. Method and device for controlling page rollback
US10404765B2 (en) * 2016-11-01 2019-09-03 Microsoft Technology Licensing, Llc Re-homing embedded web content via cross-iframe signaling
US10296176B2 (en) * 2017-01-30 2019-05-21 Microsoft Technology Licensing, Llc Navigational aid for a hinged device via semantic abstraction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103824A1 (en) * 1996-12-06 2002-08-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US20030066031A1 (en) * 2001-09-28 2003-04-03 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266058B1 (en) * 1998-09-08 2001-07-24 Hewlett Packard Company Apparatus and method for linking browser bars with active documents for a browser
US7032025B2 (en) * 2001-01-12 2006-04-18 Soundstarts, Inc. Method and apparatus for monitoring and transferring a client from a low priority access number to a higher priority access number during active internet and other WAN connection-sessions
US20020138486A1 (en) * 2001-03-09 2002-09-26 Rishel Michael L. System and method for providing web browser trail markers
US7614004B2 (en) * 2003-12-15 2009-11-03 Microsoft Corporation Intelligent forward resource navigation
US7810035B2 (en) * 2004-10-15 2010-10-05 Microsoft Corporation Browsing web content using predictive navigation links

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103824A1 (en) * 1996-12-06 2002-08-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US20030066031A1 (en) * 2001-09-28 2003-04-03 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment

Also Published As

Publication number Publication date
WO2006137950A3 (en) 2009-05-07
CN101558403B (zh) 2011-12-14
JP4870752B2 (ja) 2012-02-08
EP1875379A4 (en) 2011-01-26
JP2008539507A (ja) 2008-11-13
CN101558403A (zh) 2009-10-14
US7430739B2 (en) 2008-09-30
EP1875379A2 (en) 2008-01-09
WO2006137950A2 (en) 2006-12-28
KR20080007320A (ko) 2008-01-18
US20060248444A1 (en) 2006-11-02

Similar Documents

Publication Publication Date Title
KR101251688B1 (ko) 브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의제공
US11252252B2 (en) Installable web applications
US7805670B2 (en) Partial rendering of web pages
US8335837B2 (en) Transferring data between applications
US7406659B2 (en) Smart links
US8281285B2 (en) Management of user interaction history with software applications
US8887085B1 (en) Dynamic content navigation
US7761781B2 (en) Web browsing method and system, and recording medium thereof
US8935620B1 (en) Dynamic content management
US20100313252A1 (en) System, method and apparatus for creating and using a virtual layer within a web browsing environment
US20030066031A1 (en) Method and system for supporting user navigation in a browser environment
US20040133601A1 (en) Method and system for organizing document information in a non-directed arrangement of documents
US20090204900A1 (en) Method And System For Navigation Of Web Sites And Applications
US8117553B2 (en) Method and system to maintain a user interface context
KR20110099225A (ko) 제안된 미세 조정 용어 및 버티컬 검색의 검색 결과 미리보기
CN107182209B (zh) 检测数字内容可见性
US9424364B2 (en) Integrated context-driven information search and interaction
JP5197351B2 (ja) 情報処理装置及び情報処理方法及びプログラム
CN107391534B (zh) 页面显示、页面文件返回方法及装置、计算机存储介质
US7877691B2 (en) Adaptive dynamic navigational control for navigating within an application
US9524076B2 (en) Web page management method and apparatus and storage medium thereof
US20080168087A1 (en) System and Method for Managing Location-Independent Objects
US8458146B2 (en) Accessing data remotely
US8082487B2 (en) Method to prevent access of web applications from bookmarked links
US20030046259A1 (en) Method and system for performing in-line text expansion

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 5