KR20120010248A - 디스플레이를 위해 정보 콘텐츠를 제공하는 방법, 컴퓨터 판독가능 매체 및 서버 - Google Patents

디스플레이를 위해 정보 콘텐츠를 제공하는 방법, 컴퓨터 판독가능 매체 및 서버 Download PDF

Info

Publication number
KR20120010248A
KR20120010248A KR1020117025718A KR20117025718A KR20120010248A KR 20120010248 A KR20120010248 A KR 20120010248A KR 1020117025718 A KR1020117025718 A KR 1020117025718A KR 20117025718 A KR20117025718 A KR 20117025718A KR 20120010248 A KR20120010248 A KR 20120010248A
Authority
KR
South Korea
Prior art keywords
dom
node
content
switch node
branch
Prior art date
Application number
KR1020117025718A
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 KR20120010248A publication Critical patent/KR20120010248A/ko

Links

Images

Classifications

    • 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

Abstract

문서 객체 모델(DOM)을 처리하고 비디오 콘텐츠를 처리하기 위한 방법 및 시스템이 제안된다. DOM에 의해 표현되는 정보 콘텐츠로서 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 정보 콘텐츠가 수신되며, 스크립트 언어의 실행 후 DOM의 오리지널 콘텐츠가 보존된다. 또, 비디오 콘텐츠가 클라이언트 장치에 맞춰 적응된다. 정보 콘텐츠와 관련된 스크립트 언어가 수정된 DOM 및 프로세싱된 비디오 콘텐츠와 함께 클라이언트 장치로 보내질 수 있다. 비디오와 관련된 노드들을 식별하고 이를테면 다른 모든 오리지널 노드를 유지하기 위해 스크립트 언어의 전치 처리가 일어난다.

Description

디스플레이를 위해 정보 콘텐츠를 제공하는 방법, 컴퓨터 판독가능 매체 및 서버{METHODS AND SYSTEMS FOR PROCESSING DOCUMENT OBJECT MODELS (DOM) TO PROCESS VIDEO CONTENT}
관련 출원에 대한 상호 참조
본 특허 출원은 2009년 3월 30일자에 출원된 미국 가특허출원 제61/164,625호에 대한 우선권을 주장하며, 그 전체적인 내용은 본 기재에 완전히 설명된 것과 같이 참조로서 본 명세서에 통합된다.
본 출원은 일반적으로 웹 브라우징 및 네트워크 통신 분야에 관한 것이다. 특히, 본 출원은 클라이언트 장치 상에서의 디스플레이를 위해 웹 페이지로부터 정보를 수정해서 제공하는 시스템 및 방법에 관한 것이다.
오늘날, 다양한 텍스트 및 비텍스트 콘텐츠 타입을 제공하는 많은 월드와이드 웹 페이지들(하이퍼텍스트 마크업 언어(HTML) 문서들)이 입수될 수 있다. 알려진 바와 같이, 웹 페이지는 HTML과 같이 통상적으로 텍스트를 포함하며 그래픽, 사운드, 애니메이션 및 비디오 데이터를 참조할 수 있는 표준 페이지 서술 언어를 통해 관행적으로 포맷된다. HTML은 기본적인 문서 포맷팅을 제공하며, 웹 콘텐츠 제공자가 다른 웹 서버 및 파일로의 하이퍼텍스트 링크나 앵커를 특정할 수 있게 한다. 사용자가 특정 하이퍼텍스트 링크를 선택할 때, 웹 브라우저는 그 링크와 관련된 URL(Uniform Resource Locator)이라 칭하는 어드레스를 읽어 해석하고, 그 어드레스에 있는 웹 서버와 접속하며, 그 링크에서 식별된 파일에 대한 HTTP(hypertext transfer protocol) 요청을 발생시킨다. 그런 다음, 웹 서버는 요청된 파일을 웹 브라우저로 전송하여 웹 브라우저가 그 파일을 해석해 사용자에게 디스플레이하도록 한다.
큰 스크린을 가지고 표준 웹 브라우저를 실행하는 전통적인 데스크탑 또는 랩탑 퍼스널 컴퓨터에서, HTML 콘텐츠 타입은 보여지기 위해 용이하게 준비되어 디스플레이된다. 예를 들어, 중개업자의 부동산 리스트를 서치하는 웹 사이트는 보통 보는 이(viewer)가 관심 있는 부동산을 빠르게 검색하도록 복수의 이미지 및 텍스트를 전달한다. 사용자가 관심 있는 부동산을 식별할 때, 사용자는 이제 그 특정 부동산의 이미지와 연관된 세부 사항을 읽고 그 부동산에 대한 추가 세부사항을 위해 그 이미지를 선택할 수 있다.
그와 동시에 통신 분야, 특히 무선 통신 분야가 현재 팽창중에 있다. 이러한 기술상의 팽창은 전통적 퍼스널 컴퓨터(PC) 및 PC 기반 브라우저를 사용해 그럴 수 있는 것처럼, 모바일 PDA(personal digital assistant), 셀룰라 폰, 페이저, 모바일 컴퓨터 같은 전자 기기 및 다른 전자 기기가 웹 서버나 데이터베이스 같은 동일한 정보 소스에 연결될 수 있게 한다. 웹에서 핸드 헬드 장치로 콘텐츠를 전달하는 몇몇 소형 장치의 클라이언트 브라우저가 사용될 수 있다.
그러나, 그러한 소형 장치는 데스크탑이나 랩탑 컴퓨터 상에 디스플레이하도록 의도된 웹 콘텐츠를 디스플레이 하기에는 통상적으로 스크린 공간 또는 탐색 사양이 모자란다. 예를 들어, 핸드 헬드 장치는 데스크탑 컴퓨터 디스플레이와 비교할 때 사이즈 면에서 작은 디스플레이를 가질 것이고, 데스크탑 컴퓨터와 비교할 때 보다 적은 프로세싱 파워를 가질 것이다. 그에 따라, 다른 경우 데스크탑 컴퓨터 디스플레이 상에 디스플레이될 수 있는 이미지 및 텍스트 같은 웹 콘텐츠의 일부는 그 이미지나 텍스트에 약간의 수정이 이뤄지지 않는다면 핸드 헬드 컴퓨팅 장치 상에서 디스플레이되지 못할 수 있다. 또, 핸드 헬드 장치는 프로세싱 파워의 부족으로 인해, 플래쉬 콘텐츠 및 비디오 같이 보다 많은 프로세싱을 요할 수 있는 콘텐츠를 디스플레이할 수 없을지 모른다.
전형적 양태에 있어서, 디스플레이를 위한 정보 콘텐츠의 제공 방법이 제안된다. 그 방법은 문서 객체 모델(DOM(document object model))에 의해 표현되는 정보 콘텐츠로서 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 정보 콘텐츠를 수신하는 단계, 및 DOM에 스크립트 언어를 실행하여 그 결과 DOM에 수정이 이루어지게 하는 단계를 포함한다. 그 방법은 또한 스크립트 언어가 DOM을 수정했던 위치에서 DOM에 스위치 노드를 삽입하는 단계를 포함하고, 스위치 노드는 DOM의 오리지널 콘텐츠를 가리키는 제1브랜치 및 스크립트 언어에 의해 이루어진 수정을 가리키는 제2브랜치를 가진다. 그 방법은 또, 스위치 노드가 제1데이터 콘텐츠를 가리키는 브랜치를 가지는 경우, 그 스위치 노드를 마킹하는 단계, 마킹된 스위치 노드들에 대해 수정된 브랜치들을 지나고 마킹되지 않은 스위치 노드들에 대해서는 오리지널 브랜치들을 지나도록 스위치 노드들의 브랜치들을 따라감으로써 DOM을 프로세싱하는 단계, 및 프로세싱된 DOM을 출력하는 단계를 더 포함한다.
또 다른 전형적 양태에 있어서, 컴퓨팅 장치에 의해 실행되어, 컴퓨팅 장치가 문서 객체 모델(DOM(document object model))에 의해 표현되는 정보 콘텐츠로서 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 정보 콘텐츠를 수신하는 기능, 및 DOM에 스크립트 언어를 실행하여 그 결과 DOM에 수정이 이루어지게 하는 기능을 수행하도록 하는 명령어들을 저장한 컴퓨터 판독가능 매체가 제안된다. 상기 기능은 또한 스크립트 언어가 DOM을 수정한 위치에서 DOM에 스위치 노드를 삽입하는 기능을 포함하고, 스위치 노드는 DOM의 오리지널 콘텐츠를 가리키는 제1브랜치 및 스크립트 언어에 의해 이루어진 수정을 가리키는 제2브랜치를 가진다. 그 기능은 또, 스위치 노드가 제1데이터 콘텐츠를 가리키는 브랜치를 가지는 경우, 그 스위치 노드를 마킹하는 기능, 마킹된 스위치 노드들에 대해 변경된 브랜치들을 지나고(traverse) 마킹되지 않은 스위치 노드들에 대해서는 오리지널 브랜치들을 지나도록 스위치 노드들의 브랜치들을 따라 DOM을 프로세싱하는 기능, 및 프로세싱된 DOM을 출력하는 기능을 더 포함한다.
또 다른 전형적 양태에 있어서, 프로세서 및, 프로세서에 의해 실행될 때 문서 객체 모델(DOM(document object model))에 의해 표현되는 정보 콘텐츠로서 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 정보 콘텐츠를 수신하는 기능, 및 DOM에 스크립트 언어를 실행하여 그 결과 DOM에 수정이 이루어지게 하는 기능을 수행하도록 하는 기계어 명령어들을 포함하는 메모리를 포함한 서버가 제안된다. 상기 기능은 또한, 스크립트 언어가 DOM을 수정한 위치에서 DOM에 스위치 노드를 삽입하되, 스위치 노드는 DOM의 오리지널 콘텐츠를 가리키는 제1브랜치 및 스크립트 언어에 의해 이루어진 변경을 가리키는 제2브랜치를 가지는 기능, 및 스위치 노드가 제1데이터 콘텐츠를 가리키는 브랜치를 가지는 경우 그 스위치 노드를 마킹하는 기능을 포함한다. 서버는 또한, 마킹된 스위치 노드들에 대해 변경된 브랜치들을 지나고 마킹되지 않은 스위치 노드들에 대해서는 오리지널 브랜치들을 지나도록 스위치 노드들의 브랜치들을 따라 DOM을 프로세싱하고 프로세싱된 DOM을 출력하는 노멀라이저(normalizer)를 포함한다.
상기 요약은 단지 예시적인 것으로 어떤 식으로든 한정적인 것이 아니다. 도면 및 이하의 상세한 설명을 참조할 때 상술한 예시적 양태, 실시예 및 특징 외에, 또 다른 양태, 실시예, 및 특징이 자명하게 드러날 것이다.
도 1은 정보 콘텐츠를 액세스하고 적응시켜 전자 기기로 제공하는 전형적 시스템을 예시한다.
도 2는 전형적 컴퓨팅 장치의 블록도를 예시한다.
도 3은 트리 구조로 표현된 전형적 개념의 문서 객체 모델(DOM)이다.
도 4는 정보 콘텐츠를 제공하는 방법의 전형적 단계들을 묘사한 흐름도이다.
도 5는 트리 구조로 표현된 또 다른 전형적 개념의 DOM이다.
도 6은 트리 구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어가 스크립트 노드를 수정하는 경우를 예시한다.
도 7은 트리 구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어가 일반 노드를 수정하는 경우를 예시한다.
도 8은 트리 구조로 표현된 전형적 개념의 DOM 및, 자식(children)을 제거함으로써 스크립트 언어가 일반 노드를 수정하는 경우를 예시한다.
도 9는 트리 구조로 표현된 전형적 개념의 DOM 및, 노드가 수정되기 전에 새 노드를 삽입함으로써 스크립트 언어가 DOM을 수정하는 경우를 예시한다.
도 10은 트리 구조로 표현된 전형적 개념의 DOM 및, 노드가 수정된 후에 새 노드를 삽입함으로써 스크립트 언어가 DOM을 수정하는 경우를 예시한다.
도 11은 트리 구조로 표현된 전형적 개념의 DOM 및, 속성 값을 변경함으로써 스크립트 언어가 노드를 수정하는 경우를 예시한다.
도 12는 트리구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어가 소정 노드의 자식을 어느 HTML 스트링으로서 특정된 콘텐츠로 대체하는(가령, 자바스크립트 함수 'setInnerHtml'을 수행함) 경우를 예시한다.
이하의 상세한 설명에서는 그 일부를 이루는 첨부된 도면이 참조된다. 문맥상 다르게 적시되지 않는다면 도면의 유사한 부호는 전형적으로 유사한 구성요소를 나타낸다. 상세한 설명에서 기술되는 예시적 실시예들과 청구범위는 한정을 의미하지 않는다. 여기 제시된 주제의 개념이나 범위에서 벗어나지 않고 다른 실시예들이 사용될 수 있으며 기타 변경이 이뤄질 수 있다. 여기에 일반적으로 기술되고 도면에 예시되는 바와 같이 본 개시의 양태는 명시적으로 고찰되어 이 개시물의 일부를 이루는 광범위한 각종 구성을 통해 구성되고, 대체되고, 결합되며 설계될 수 있다는 것을 쉽게 이해할 수 있을 것이다.
전형적 실시예에서, 정보 콘텐츠는 문서 객체 모델(DOM)에 의해 표현되며, 정보 콘텐츠와 관련된 스크립트 언어를 포함한다. 스크립트 언어를 실행하고 DOM의 오리지널 콘텐츠를 보존하며 클라이언트 장치에 비디오 콘텐츠를 적응시키기 위해 방법들이 실시된다. 또, 서버가 스크립트 언어를 실행하고 DOM을 완전히 수정한 다음 그것을 스크립트 언어 없이 클라이언트 장치로 보내기 보다, 정보 콘텐츠와 관련된 스크립트 언어가 여전히 클라이언트 장치로 보내져서 클라이언트 장치에 의해 실행될 수 있다. 스크립트 언어를 클라이언트 장치로 보냄으로써, 클라이언트 장치가 웹 사이트의 더 많은 기능을 수행할 수 있다. 또, 클라이언트의 사용자가 디스플레이 할 비디오를 요청하기 위해 선택할 수 있는 미리보기 이미지 및 링크를 클라이언트 장치로 제공하기 위해, 정보 콘텐츠의 비디오 콘텐츠가 프로세싱될 수 있다. 서버는 그 요청을 수신하고, 클라이언트 장치 상에 보이기 위한 비디오를 적응시키며, 적응되거나 트랜스코딩된 비디오를 클라이언트 장치로 전송할 수 있다.
전형적 실시예에 따르면, 프로세싱 중에 스위치 노드들이 DOM에 더해질 수 있으며, 비디오 콘텐츠와 관련된 스위치 노드들이 마킹될 수 있다. 이러한 노드들이 DOM에 더해지고 마킹되었으면, 정지 이미지 및 실시간 스트리밍 프로토콜(RTSP) 링크를 메인 문서 DOM에 추가하도록 서버(가령, 적응적 콘텐츠 액셀러레이터(ACA(adaptive content accelerator))가 동작될 수 있다. 이를테면, 비디오와 관련된 노드들을 식별하고, 다른 모든 오리지널 노드들을 유지하기 위해 스크립트 언어의 전치 프로세싱이 일어난다.
이제 도 1을 참조하면, 정보 콘텐츠를 액세스하고, 적응시키며 전자 기기로 제공하기 위한 전형적 시스템(100)을 예시한 하이레벨 도면이 도시된다. 시스템(100)은 정보 소스(102), 서버(104), 및 클라이언트 장치(106)를 포함한다.
정보 소스(102)는 웹 서버, 애플리케이션 서버, 데이터베이스 또는 다른 백엔드(backend) 시스템, 또는 정보 제공자에 대한 어떤 인터페이스 같은 모든 유형의 장치를 포함한다. 정보 소스(102)는 정보 콘텐츠로의 연결을 가능하게 하는 여러 장치들이나 인터페이스들을 더 포함할 수 있다. 정보 소스(102)는 예를 들어 하이퍼텍스트 마크업 언어(HTML(Hypertext Markup Language)), 확장형 스타일 시트(XSL(Extensible Style Sheets))를 포함하거나 포함하지 않는 확장형 마크업 언어(XML(Extensible Markup Language)), VoiceXML, 확장형 하이퍼텍스트 마크업 언어(XHTML(Extensible Hypertext Markup Language), 무선 마크업 언어(WML(Wireless Markup Language)), 또는 클라이언트 장치(106)에 의해 프로세싱될 수 있는 다른 유형의 언어로 표현되는 정보 콘텐츠를 제공한다. 또, 정보 콘텐츠는 정보 소스(102)에 의해 제공될 텍스트, 이미지, 비디오, 또는 오디오 정보를 참조할 수 있다. 정보 콘텐츠는 이를테면 웹사이트나 웹 페이지, 또는 다중 웹 페이지일 수 있다.
정보 소스(102)는 서버(104)에 의해 서버 브라우저(108)를 통해 어떤 유형의 네트워크를 거쳐 액세스될 수 있다. 서버 브라우저(108)는 클라이언트 브라우저(110)를 통해 어떤 타입의 네트워크를 거쳐 클라이언트 장치(106)와 통신할 수 있다. 서버 브라우저(108)는 보일 웹 페이지 콘텐츠에 대해 클라이언트 브라우저(110) 및 정보 소스(102) 사이의 프록시로서 기능할 수 있다. 서버 브라우저(108)는 정보 콘텐츠를 검색하기 위해 정보 소스(102)의 클라이언트로서 동작할 수 있다. 예를 들어, 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP(Transmission Control Protocol/Internet Protocol))로서 알려진 통신 프로토콜 모음을 이용해, 서버 브라우저(108)는 정보 소스(102)로 하이퍼텍스트 전송 프로토콜(HTTP) 요청을 발부할 수 있다. HTTP 요청을 활용함으로써, 서버 브라우저(108)는 정보 소스(102)에서 애플리케이션, 고정 및 동적 콘텐츠를 포함하는 정보 콘텐츠를 액세스할 수 있다.
서버 브라우저(108) 및 클라이언트 브라우저(110)는 동일한 플랫폼 상에 있거나, 서로 떨어져 있을 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 서버 브라우저(108)는 백엔드 서버 상에서 주재될 수 있고, 클라이언트 브라우저(110)는 핸드 헬드 전자 장치 상에서 주재될 수 있다. 다른 대안으로서, 클라이언트 장치(106) 및 서버(104)가 동일한 장치 상에 공존할 수 있고, 그에 따라 어느 한 쪽의 기능이 다른 하나에 의해 대체될 수 있다. 예를 들어, 서버 브라우저(108)와 클라이언트 브라우저(110)는 플랫폼이나 전자 장치가 적절한 하드웨어 및 네트워크 사양을 가진 경우 그 전자 장치 상에서와 같은 동일한 플랫폼 상에 주재될 수 있다. 따라서, 여기서의 여러 실시예들 안에서 기능은 클라이언트 브라우저(110)의 일부나 서버 브라우저(108)의 일부로서 기술될 수 있다. 클라이언트 브라우저(110)는 서버 브라우저(108)에 의해 수행되는 것으로서 설명되는 기능들을 수행할 수 있고, 서버 브라우저(108)는 클라이언트 브라우저(110)에 의해 수행되는 것으로서 설명되는 기능들을 수행할 수 있다. 상기 서버 및 클라이언트 브라우저를 사용함으로써, 제한된 하드웨어 사양을 가진 전자 장치들이 풍부한 정보나 데이터를 액세스할 수 있다.
일반적으로, 서버(104) 및 클라이언트 장치(106)는 중앙 프로세싱 유닛, 메모리(일차 및/또는 이차 메모리 유닛), 데이터 수신을 위한 입력 인터페이스, 하나 이상의 입력 장치(예를 들어, 키보드, 마우스 등)로부터 입력 신호를 수신하기 위한 입력 인터페이스, 및 출력 장치(가령, 모니터)와 통신할 출력 인터페이스를 포함한다. 일반적으로, 서버(104) 및 클라이언트 장치(106)가 집적 회로 개발 기술을 이용하거나 어떤 다른 방법을 통해 개발된 하드웨어 오브젝트나, 여기 기술된 다른 기능들을 구현하기 위해 소프트웨어 환경 하에서 정렬되고, 매개변수화되고, 연결될 수 있는 하드웨어 및 소프트웨어 오브젝트들의 결합을 포함할 수도 있다는 것을 알아야 한다. 또한, 하드웨어 오브젝트는 전기 신호를 이용해 상이한 데이터를 나타내는 신호들의 상태와 통신할 수도 있다. 서버(104) 및 클라이언트 장치(106)는 일반적으로 운영 시스템의 제어 하에서 서버(104) 및 클라이언트 장치(106)에 상주하는 애플리케이션 프로그램을 실행할 수 있다. 서버 브라우저(108) 및 클라이언트 브라우저(110) 같은 애플리케이션 프로그램은 서버(104) 및 클라이언트 장치(106) 안에 있는 메모리 상에 저장될 수 있고, 기계어 명령어들이나, 자바 프로그래밍 언어 같은 객체 지향적 명령어들을 이용한 소프트웨어를 이용해 제공될 수 있다. 그러나, 다른 프로그램 언어(예를 들어 C++ 프로그램 언어 같은 것) 역시 사용될 수 있을 것이다.
예로서, 클라이언트 브라우저(110)는 퍼스널 컴퓨터(PC), 무선 전화기, PDA(personal digital assistant), 핸드 헬드 컴퓨터, 네트워크 장치, 및 탐색 기능(가령, 키보드, 터치 스크린, 마우스 등) 및 다운로드 정보 콘텐츠를 보기 위한 선택사항인 디스플레이를 가질 수 있는 광범위한 다른 유형의 전자 장치들 중 어느 하나를 포함하는 전자 장치일 수 있다. 또, 클라이언트 장치(106)는 월드 와이드웹 콘소시움(World Wide Web Consortium:W3C) 음성 확장형 마크업 언어(Voice Extensible Markup Language:VoiceXML) 같은 음성 합성 마크업을 활용하는 사양을 가진 모든 유형의 장치를 포함할 수 있다. 컴퓨터 시스템 분야의 숙련자라면 이 전형적 실시예들이 클라이언트 장치(106)를 위해 사용된 어떤 특정 등급 또는 모델의 컴퓨터로 한정되지 않는다는 것을 알 수 있을 것이고 적절한 시스템을 선택할 수 있을 것이다.
그러한 예 안에서, 클라이언트 브라우저(110)는 클라이언트 장치(106) 상에 상주하고 또한 PC가 서버 브라우저(108)를 주재하며, 클라이언트 장치(106) 및 PC 둘 모두 이더넷 네트워크에 연결된다. 그러면, 클라이언트 브라우저(110) 및 서버 브라우저(108)는 이더넷 네트워크를 통해 정보 트랜잭션(transaction)을 수행할 수 있을 것이다. 그러한 트랜잭션은 이더넷이나 그와 유사하게 IEEE 802.3 프로토콜을 활용할 수 있을 것이다. 그럼에도 불구하고, 이 예에서 클라이언트 및 서버 브라우저들은 유선 네트워크를 통해 통신한다. 통신은 또한 로컬 영역 무선 네트워크(LAWN, local area wireless network ), 무선 로컬 영역 네트워크(WLAN), 또는 셀룰라 무선 네트워크 같은 무선 네트워크를 포함한다. 또, 통신은 블루투스, 무선 애플리케이션 프로토콜(WAP), 시분할 다중화 액세스(TDMA), 또는 코드 분할 다중화 액세스(CDMA) 같은 알려진 다른 프로코콜 및 기술을 활용하는 무선 네트워크를 포함할 수도 있다.
다시 도 1을 참조하면, 클라이언트 브라우저(110)가 서버 브라우저(108)로 정보에 대한 요청을 보낼 수 있다. 클라이언트 브라우저(110)는 이벤트 변환기(112)를 포함하여 클라이언트 브라우저(110)로부터의 HTTP 요청 같은 요청/응답 프로토콜(가령, WML, XHTML, cHTML 등)을 서버 브라우저(108)가 인식하는 이벤트로 변환할 수 있다. 변환 프로세스는 클라이언트 브라우저(110) 및 정보 소스(102) 사이의 트랜잭션(가령, HTML 형식의 제안물)이 보존되도록 이벤트 정보, 콘텐츠 정보, 및 이벤트의 상황을 포함할 수 있다.
서버 브라우저(108)에 의해 정보 소스(102)로부터 정보 콘텐츠가 검색되고 클라이언트 브라우저(110) 상에 사용될 수 있게 고쳐질 수 있다. 다른 대안으로서, 서버 브라우저(108)가 정보를 검색하고 그 정보를 클라이언트 브라우저(110)로 전송하면, 클라이언트 브라우저 자체적으로 그 정보를 보이기 적합하게 고칠 수 있다. 요청된 콘텐츠(가령, 웹 페이지)는 핸드 헬드 장치의 한정된 스크린 사이즈가 아닌 PC의 큰 스크린 상에 보이도록 초기에 설계되었을 수 있으므로 콘텐츠 변환이 필요할 수 있다. 그 결과, 서버 브라우저(108) 및/또는 클라이언트 브라우저(110)가 정보 콘텐츠 렌더링 변환을 수행하거나 프레젠테이션(가령, 디스플레이나 음성) 및 탐색(가령, 키보드, 터치 스크린, 또는 스크롤링)을 돕기 위해 장치 고유의 스타일 시트(style sheets)를 제공하고, 제한된 양을 수용하는 전자 장치들을 위해 콘텐츠 그룹화를 수행할 수 있다.
이러한 사양을 전달하기 위해, 서버 브라우저(108)나 클라이언트 브라우저(110)는 예를 들어, 사용자 에이전트, 쿠키(cookie) 핸들러, 문서 객체 모델(DOM), 스크립트 실행자, 노멀라이저, 및 시리얼라이저(serializer)를 포함하는 모듈(미도시)을 포함할 수 있다. 정보 콘텐츠 변환이나 맞춤화에 부합하는 추가적 정보가 "다수의 전자 장치를 위해 브라우저를 이용해서 인터넷을 통해 맞춤형 정보에 접속하기 위한 시스템 및 방법(System and method for accessing customized information over the internet using a browser for a plurality of electronic devices)"이라는 명칭의 미국 특허 제7,072,984호, "선택적 수평 스크롤링을 사용해서 정보 컨텐츠를 디스플레이하기 위한 시스템 및 방법(System and Method for Displaying Information Content with Selective Horizontal Scrolling)"이라는 명칭의 미국 특허 출원 공개 제2004/0049737호, "전자 장치를 위해 정보를 수정하기 위한 시스템 및 방법(System and Method for Adapting Information Content for an Electronic Device)"이라는 제목의 미국 특허 제7,500,188호, "이미지를 이용한 웹 네비게이션 시스템 및 방법(System and Method for Web Navigation Using Images)"이라는 명칭의 미국 특허 출원 공개 제2007/0073777호, "모바일 장치 상에 디스플레이하기 위해 대화형 에니메이션 정보 컨텐츠를 변환하기 위한 방법 및 시스템(Method and System for Converting Interactive Animated Information Content for Display on Mobile Devices)"이라는 명칭의 미국 특허 출원 공개 제2008/0195692호에 포함되어 있으며, 이들 각각의 내용은 본 설명에 전체가 개시되는 것처럼 참조를 통해 여기에 통합된다.
시스템(100)은 웹 콘텐츠를 클라이언트 장치(106) 상에 디스플레이 할 포맷으로 수정하기 위한 소프트웨어(클라이언트 장치(106)나 서버(104) 안에 있음)를 포함한다. 여기 사용되는 바와 같이, 웹 콘텐츠는 정보 소스(102)로부터 수신되는 웹 페이지나 정보 소스(102)로부터 다운로드되는 파일을 의미할 수 있다. 예로서 웹 콘텐츠는 텍스트, 사진, 오디오, 또는 비디오 파일의 블록들을 포함할 수 있다. 한 특징을 가진 웹 콘텐츠를 수정하여 다른 특징을 가진 웹 콘텐츠를 형성하도록 하는 것을 웹 콘텐츠 렌더링, 보다 일반적으로는 렌더링이라 칭한다. 웹 콘텐츠의 전형적 특징에는 폰트 메트릭, 이미지 사이즈, 비디오 비트 레이트 등이 포함될 수 있다(그러나, 여기에 국한되는 것은 아니다).
도 2는 전형적 컴퓨팅 장치(200)의 블록도를 예시한다. 일례에서, 컴퓨팅 장치(200)는 도 1에 도시된 것과 같은 클라이언트 장치로서 동작할 수 있다. 또 다른 일례에서, 컴퓨팅 장치(200)는 도 1에 도시된 것과 같은 서버 장치로서 동작할 수 있다. 컴퓨팅 장치(200)는 입력 인터페이스(202)에서 정보 콘텐츠를 수신한다. 정보 콘텐츠는 가령, 정보 소스나 중간의 프록시 서버로부터 수신될 수 있다. 정보 콘텐츠는 웹 사이트 데이터의 형식으로 되어 있을 수 있고, 클라이언트 장치 상에서 보이기 위해 트랜스코딩될 수 있으며, 다른 대안으로서, 네이티브(native) 형식으로 수신되어 (필요한 경우) 컴퓨팅 장치(200)에 의해 트랜스코딩될 수 있다.
입력 인터페이스(202)는 프로세서(204) 및 브라우저(206)에 연결한다. 프로세서(204)는 데이터를 프로세싱하고 컴퓨팅 장치(200) 내 구성요소들의 기능을 제어할 수 있다. 프로세서(204)는 메모리(208)를 액세스하여 그 안에 저장된 소프트웨어 기능을 실행하는 프로세서로서 구현될 수 있다. 컴퓨터 시스템 디자인 분야의 숙련자라면, 이 전형적 실시예가 어떤 특정 클래스나 모델의 프로세서에 국한되는 것이 아니라는 것을 알 수 있을 것이다. 프로세서(204)는 어떤 적절한 상용의 내장형 혹은 디스크 기반 운영 시스템이거나 어떤 독점적 운영 시스템일 수 있는 운영 시스템에 따라 동작할 수 있다. 또한, 프로세서(204)는 예를 들어 프로그래머블 디지털 신호 프로세싱 엔진을 포함하는 하나 이상의 보다 작은 중앙 프로세싱 유닛을 포함하거나, 속도를 개선하고 공간을 절약하기 위해 하나의 ASIC(application specific integrated circuit)으로서 구현될 수도 있다. 일반적으로, 프로세서(204)가 집적 회로 개발 기술을 이용하거나 어떤 다른 방법을 통해 개발된 하드웨어 오브젝트, 또는 여기 기술된 여러 기능을 구현하도록 소프트웨어 환경하에서 정렬되고, 매개변수화되고 연결될 수 있는 하드웨어 및 소프트웨어 오브젝트의 조합을 포함할 수도 있다는 것을 알아야 한다. 또한, 하드웨어 오브젝트는 전기 신호를 이용해 상이한 데이터를 나타내는 신호들의 상태와 통신할 수도 있다.
메모리(208)는 예를 들어 앞서 전송되거나 수신된 신호 같은 정보를 저장할 수 있다. 메모리(208)는 예를 들어, RAM(random access memory), 플래시 메모리 또는 ROM(read only memory)나 마그네틱 디스크 같은 장기 저장부를 포함할 수 있다. 메모리(208)는 프로세서(204)에 의해 실행되어 여기 기술된 기능들(가령, 도 4에 도시된 방법 같은 것)을 실행하는 기계어 명령어를 저장할 수 있다.
브라우저(206)는 TCP/IP 엔진(210) 및 비디오 재생기(212)를 포함할 수 있다. 브라우저(206)는 정보 콘텐츠를 수신하고 그 정보 콘텐츠를 디스플레이하도록 준비할 수 있다. 그렇게 하기 위해, 브라우저(206)는 필요시, 핸드 헬드 장치 상에서 디스플레이할 콘텐츠를 트랜스코딩함으로써 정보 콘텐츠를 포맷시킬 수 있다. 이와 관련해, 브라우저(206)는 서버 브라우저로서 동작하여 클라이언트 장치로 전송될 정보 콘텐츠를 트랜스코딩할 수 있다. 다른 대안으로서, 브라우저(206)는 가령 서버로부터의 콘텐츠 수신 시, 정보 콘텐츠를 트랜스코딩하기 위한 완전한 기능을 가진 클라이언트 브라우저로서 동작할 수 있다. 아니면, 브라우저(206)는 클라이언트 브라우저로서 한정된 기능을 가질 수 있고, 정보 콘텐츠를 수신하여 그 콘텐츠를 가령 수신된 형식으로 디스플레이할 수 있다.
TCP/IP 엔진(210)은 정보 콘텐츠에 대한 요청을 수신하고 송신하도록 동작한다. 컴퓨팅 장치(200)는 요청한 클라이언트 장치에 의해 액세스될 수 있는 형식으로 정보 콘텐츠를 변환하도록 프로세서(204)에 의해 작동될 수 있다. 예를 들어, 클라이언트 장치는 통상적 웹 페이지를 요청할 수 있고, 그에 따라 컴퓨팅 장치(200)가 인터넷을 액세스하여 요청된 웹 페이지를 검색할 것이고, 그런 다음 브라우저(206)가 그 웹 페이지를 클라이언트 장치에 의해 액세스 가능한 형식으로 변환할 수 있다. 어떤 경우, 웹 페이지는 비디오, 무비, 또는 플래시 플레이어 콘텐츠를 포함할 것이고, 그에 따라 컴퓨팅 장치(200)는 웹 페이지를 검색하고 비디오 재생기(212)를 이용해 그 웹 페이지를 브라우저(206) 상에 로드할 것이다. 그러면 브라우저(206)는 필요시 웹 페이지나 비디오 콘텐츠를 수정할 수 있고, 수정된 콘텐츠를 클라이언트 장치로 보낼 수 있다. 다른 대안으로서, 컴퓨팅 장치는 클라이언트 장치로서 동작할 수 있고, 클라이언트 장치에서 수정 및 트랜스코딩을 수행하도록 동작될 수 있다.
컴퓨팅 장치(200)는 별개의 엘리먼트(214)로서, 혹은 프로세서(204)나 브라우저(206)의 구성요소로서 노멀라이저(normalizer)를 더 포함할 수 있다. 노멀라이저(214)는 정보 콘텐츠를 가령 클라이언트 장치 상에서 디스플레이될 포맷으로 변환 또는 트랜스코딩하도록 동작될 수 있다.
클라이언트나 핸드 헬드 브라우저가 사용자의 웹 페이지 탐색을 돕도록 활용할 여러 기법들이 사용될 수 있다. 예를 들어, 클라이언트 브라우저는 웹 콘텐츠의 레이아웃을 변경하거나, 이미지의 위치나 텍스트의 문자 사이즈를 바꾸거나, 클라이언트 상에서의 디스플레이를 위해 동작되도록 웹 페이지를 변경할 수 있다.
웹 페이지는 일반적으로 일련의 중첩된 객체들(nested objects)을 포함한다. 그 객체들이 웹 페이지의 문서 객체 모델(DOM)을 형성한다. DOM은 프로그램과 스크립트가 가령 객체의 스타일, 콘텐츠, 및 구조를 동적으로 액세스하고 업데이트할 수 있게 하는 플랫폼 중립적이고 언어 중립적인 인터페이스이다. DOM은 추가 처리될 수 있고 그 프로세싱 결과가 가령 다시 웹 페이지 안에 병합될 수 있다. DOM은 HTML 언어의 형식으로 표현될 수 있으며 HTML 문서를 액세스 및 조작하기 위한 표준적인 방법을 정의할 수 있다. 일례로서, DOM은 HTML 문서일 수 있고 트리 구조로서 표현될 수 있다.
도 3은 트리 구조로 표현된 전형적 개념의 DOM이다. DOM은 HTML 문서를 포함한다. HTML 문서는 HTML 엘리먼트를 포함하고, HTML 엘리먼트는 일반적인 형식으로서 세 성분들을 가진다: 시작 태그 및 종료 태그를 가진 엘리먼트 태그들의 쌍, 태그들 안에 있는 엘리먼트에 주어지는 엘리먼트 속성, 및 디스플레이 상에 렌더링될 텍스트 및 그래픽 정보 컨텐트. 태그들은 웹 페이지 콘텐츠 안에서 꺽쇠 괄호로 둘러 싸인다. HTML 문서는 또한 도 3에 도시된 예에서 웹 브라우저 같은 HTML 프로세서의 동향에 영향을 미치는 자바스크립트 같은 언어의 스크립트, 및 텍스트 및 기타 자료의 외양과 레이아웃을 규정하기 위한 CSS(Cascading Style Sheets)를 포함하거나 로드할 수도 있다.
Figure pct00001
HTML 문서를 트리 구조로 나타내기 위해, '<html>'의 루트(root) 엘리먼트가 트리를 시작하고, HTML 문서의 헤드(head) 및 바디(body) 엘리먼트 같은 다음 하부 레벨의 엘리먼트까지 브랜치를 제공한다. 헤드 브랜치는 타이틀(title) 엘리먼트를 포함하며, '타이틀'의 텍스트로 끝난다. 바디 브랜치는 그 안에 앵커 엘리먼트 "<a>"와 헤더 엘리먼트 "<h1>"를 포함하는 두 브랜치를 가진다. 브랜치들 각각은 텍스트를 포함하고, 앵커 엘리먼트 브랜치는 하이퍼링크의 속성을 또한 포함한다.
HTML 문서나 웹 페이지는 웹 페이지와 관련되거나 그 안에 포함되는 스크립트 언어나 프로토콜을 포함할 수도 있다. 스크립트 언어의 한 예가 자바스크립트로서, 이것은 클라이언트 애플리케이션 및 다른 애플리케이션들 내 오브젝트들에 대한 프로그램적 액세스를 수행하는데 사용되는 객체 지향적 스크립트 언어이다. 자바스크립트 엔진은 웹 브라우저의 구성요소로서 구현될 수 있고, 웹 페이지 안에서 자바스크립트를 만날 때, 자바스크립트 엔진이 그 자바스크립트를 실행해 가령 강화된 사용자 인터페이스 및 동적 웹사이트를 제공할 수 있다.
스크립트 언어가 실행될 때, 그 스크립트 언어는 웹 페이지 상에 디스플레이될 보다 많은 기능을 제공하기 위해 DOM을 수정할 수 있다. 예를 들어, 스크립트 언어가 실행될 수 있고, 웹 페이지 상에서 비디오 콘텐츠를 만날 때 스크립트 언어는 비디오 콘텐츠를 디스플레이하도록 비디오 플레이어를 로드할 것을 지시할 수 있다. 스크립트 언어는 다른 애플리케이션을 로드하거나 가령 웹 페이지 상에 기능적인 방식으로 항목들을 디스플레이할 것을 지시할 수 있다.
본 출원은 클라이언트 장치들 상에서 비디오 지원을 수행하는 시스템 및 방법을 기술한다. 클라이언트 장치가 웹 페이지 같은 정보 콘텐츠를 요청할 때, 서버는 그 요청을 수신해 웹 페이지를 검색할 수 있다. 그런 다음 서버는 그 웹 사이트와 관련된 어떤 스크립트 언어를 실행하고, 실행된 스크립트 언어에 의해 지시된 바 대로, 웹 사이트의 오리지널 DOM을 수정하거나, 가령 비디오 콘텐츠와 관련되거나 비디오 콘텐츠를 포함하는 DOM의 양태들에 대한 웹 사이트의 오리지널 DOM만을 수정할 수 있다. 예를 들어, 서버는 요청된 웹 사이트 내 비디오 콘텐츠를 프로세싱하기 위해 스크립트 언어를 실행하고 DOM을 수정하며, 수정된 DOM을 클라이언트 장치로 보낼 수 있다. 그러면 클라이언트 장치는 그 프로세싱된 비디오 콘텐츠를 디스플레이하게 될 수 있다.
클라이언트 장치의 유형 및 스타일에 좌우되어 방법이 수행될 수 있다. 예를들어, 데스크탑 컴퓨터와 유사한 브라우저 사양 같은 소정 브라우저 사양을 이용해 분류된 클라이언트 장치들(가령, 무선 전화기들) 상에서, 비디오는 스트리밍 비디오 프로세스 하에서 클라이언트 브라우저를 통해 클라이언트 장치로 제공될 수 있다. 브라우저 사양은 클라이언트 장치마다 달라질 수 있고, 브라우저 요건 역시 클라이언트 장치로 전달되고 디스플레이될 비디오 타입 및 양에 좌우되어 달라질 수 있다.
도 4는 정보 콘텐츠를 제공하는 방법(400)의 전형적 단계들을 묘사한 흐름도이다. 일례에서, 이 방법(400)은 도 1에 도시된 것과 같이 서버나 프록시 서버에 의해 수행될 수 있다. 일례에서, 이 방법(400)은 도 1에 도시된 것과 같이 클라이언트 장치에 의해 수행될 수 있다.
도 4의 흐름도는 본 실시예의 한 가능한 구성의 기능 및 동작을 보인다. 이와 관련해, 각각의 블록은 프로세스 시 특정 로직 함수나 단계를 구현하기 위해 프로세서에 의해 실행될 수 있는 하나 이상의 명령어를 포함한 모듈, 세그먼트, 또는 프로그램 코드의 일부를 나타낼 수 있다. 프로그램 코드는 가령, 디스크나 하드 드라이브를 포함하는 저장 장치 같은 어떤 유형의 컴퓨터 판독가능 매체 상에 저장될 수 있다. 또, 각각의 블록은 프로세스 시 특정 로직 함수를 수행하기 위해 유선 연결된 회로를 포함할 수 있다. 당업자라면 합당하게 이해할 수 있다시피, 본 출원의 전형적 실시예들의 범위 안에, 수반되는 기능에 따라 기능들이 실질적 동시 발생 순서 또는 역순서를 포함해, 도시되거나 논의된 것과는 다른 순서로 실행될 수 있는 대안적 구성들이 포함된다.
서버에 의해 이 방법(400)이 수행되는 일례에서, 서버는 이를테면 클라이언트 장치로부터 정보 콘텐츠에 대한 요청을 수신할 수 있으며, 서버는 블록(402)에 보인 바와 같이 정보 소스로부터 정보 콘텐츠를 수신할 것이다.
이어서, 블록(404)에 도시된 바와 같이, 서버는 정보 콘텐츠가 선택된 데이터(가령, 비디오 데이터 같은 것)를 포함하는지를 판단할 수 있다. 예를 들어, 서버는 비디오 데이터를 가진 웹사이트를 포함하는 리스트를 참조할 수 있고, 정보 콘텐츠가 리스트 상에 있는 경우 서버는 정보 콘텐츠가 비디오 데이터를 포함한다고 판단할 수 있다. 전형적 리스트는 하이엔드 전화기(HEP(high-end phone)) 비디오 웹사이트들의 동작, 관리, 유지, 및 프로비저닝(OAMP(operations, administration, maintenance, and provisioning)) 리스트를 포함할 수 있다. 다른 대안으로서, 서버가 정보 콘텐츠에서, 그 정보 콘텐츠가 비디오 데이터를 포함한다는 것을 가리키는 임베드(embed) 혹은 오브젝트 태그 같은 HTML 식별자를 서치할 수 있다. 서치되는 데이터의 유형에 따라, 서버는 정보 콘텐츠가 그러한 데이터를 포함하는지 여부를 확인 및 식별할 수 있다.
또 다른 대안으로서, 블록(404)이 제거될 수 있고, 이 방법(400)이 모든 정보 콘텐츠에 대해 수행될 수 있다. 그러나, 블록(404)을 수행하는 것이 정보 콘텐츠가 비디오 데이터를 포함하지 않는 경우에 정보 콘텐츠의 프로세싱을 줄일 수 있을 것이다. 또한 블록(402)은 정보 콘텐츠가 가령 적어도 잠정적으로 비디오 데이터를 포함하는 경우 그 정보 콘텐츠에 대해 수행될 수 있다.
또 다른 대안으로서, 블록(404)이 제거될 수 있고, 방법(400)은 가령 비디오를 지원하지 않는 장치들을 요청하기 위해서만 수행될 수 있다.
비디오 데이터는 아도브 플래시, 마이크로소프트 실버라이트, 선 자바FX, W3C SYG, 윈도즈 미디어, 리얼미디어, 퀵타임, MPEG 등과 같이 애니메이션을 포함하는 어떤 유형의 데이터를 포함할 수 있다. 그러한 데이터는 예를 들어 (swf) 파일 확장자, (flv) 파일 확장자, 소스 자료용 (fla) 파일 확장자, 및 MPEG 파일 확장자 같은 다양한 형식을 가진 데이터 파일들로 제공될 수 있다. 데이터는 또한 정보 콘텐츠 안에 있는 데이터의 식별자에 따라 비디오 데이터로 간주될 수도 있다. 예를 들어, 데이터가 HTML 임베드 또는 오브젝트 태그에 의해 참조되거나 포함되는 경우, 데이터는 비디오 데이터의 한 유형이라고 생각될 수 있다.
정보 콘텐츠가 비디오 데이터를 포함하지 않으면, 서버는 필요시 블록(406)에 보인 바와 같이 정보 콘텐츠의 트랜스코딩을 수행할 수 있다. 많은 다양한 콘텐츠 변환 또는 트랜스코딩은 가령 요청된 웹 페이지 안에 존재하는 정보에 기반해 일어날 수 있다. 특히 상호 동작형 애니메이션 콘텐츠 정보는 적절한 변환을 요한다. 애니메이션 및 특수 효과가 프레임 기반(frame driven) 가변형 벡터 그래픽(scalable vecotr graphics) 파일들을 사용해 웹 페이지 콘텐츠 안에 포함될 수 있고, 그러한 콘텐츠는 클라이언트 장치 상에서 보여지기 위해 변환될 것이다. 예를 들어, 시작과 종료 프레임을 포함하는 애니메이션과 그 사이의 프레임들에 대한 애니메이션이 제공될 수 있다. 이동하는 외양을 만들기 위해 오브젝트의 사이즈, 회전, 컬러, 또는 다른 속성들이 시작 및 종료하는 키 프레임들 사이에서 가변될 수 있다. 다른 대안으로서, 애니메이션은 연속되는 프레임들의 콘텐츠를 변경함으로써 제공될 수도 있다. 상호 동작형 애니메이션 콘텐츠 파일의 프레임들 중 어느 하나나 전부는 서버에 의해 수정될 수 있고 그런 다음 요청한 클라이언트 장치로 보내질 수 있다.
정보 콘텐츠 변환이나 맞춤화에 부합하는 추가적 정보가 "다수의 전자 장치를 위해 브라우저를 이용해서 인터넷을 통해 맞춤형 정보에 접속하기 위한 시스템 및 방법(System and method for accessing customized information over the internet using a browser for a plurality of electronic devices)"이라는 명칭의 미국 특허 제7,072,984호, "선택적 수평 스크롤링을 사용해서 정보 컨텐츠를 디스플레이하기 위한 시스템 및 방법(System and Method for Displaying Information Content with Selective Horizontal Scrolling)"이라는 명칭의 미국 특허 출원 공개 제2004/0049737호, "전자 장치를 위해 정보를 수정하기 위한 시스템 및 방법(System and Method for Adapting Information Content for an Electronic Device)"이라는 제목의 미국 특허 제7,500,188호, "이미지를 이용한 웹 네비게이션 시스템 및 방법(System and Method for Web Navigation Using Images)"이라는 명칭의 미국 특허 출원 공개 제2007/0073777호, "모바일 장치 상에 디스플레이하기 위해 대화형 에니메이션 정보 컨텐츠를 변환하기 위한 방법 및 시스템(Method and System for Converting Interactive Animated Information Content for Display on Mobile Devices)"이라는 명칭의 미국 특허 출원 공개 제2008/0195692호에 포함되어 있으며, 이들 각각의 내용은 본 설명에 전체가 개시되는 것처럼 참조를 통해 여기에 통합된다.
이어서 서버는 블록(408)에서 보여지는 바와 같이 트랜스코딩된 콘텐츠를 클라이언트 장치로 전송할 수 있다.
정보 콘텐츠가 비디오 데이터를 포함하면, 서버는 블록(410)에서 보인 바와 같이 그 정보 콘텐츠와 관련될 수 있는 스트립트 언어를 실행할 것이다. 예를 들어, 자바스크립트 같은 스트립트 언어가 정보 콘텐츠와 연관되거나 그 안에 포함될 수 있다. 서버는 실행될 때 정보 콘텐츠의 DOM에 대한 수정을 수행하는 스크립트 언어를 실행할 수 있는 서버 브라우저와 연관되거나 그 안에 포함되는 스크립트 언어 엔진을 포함할 수 있다. 예를 들어, 정보 콘텐츠를 검색한 후, 서버는 서버 브라우저로 그 정보 콘텐츠를 로드할 수 있고, 그렇게 할 때 서버 브라우저는 인라인(inline) 스크립트 엘리먼트를 실행할 것이다. 스크립트 언어의 실행은 DOM에 대해 수정이 이루어지게 할 것이다. 예를 들어, 비디오 데이터의 경우, 그 비디오 데이터에 대한 스크립트 언어의 실행이 비디오 데이터 노드에, 비디오 소스 데이터를 포함하는 임베드 혹은 오브젝트 태그인 새로운 자식 노드를 추가할 것이다. 다른 대안으로서, 비디오 데이터에 대한 스크립트 언어의 실행은 비디오 데이터 노드에 "이 브라우저 상에서 지원되지 않는 비디오" 메시지의 텍스트를 포함하는 자식 노드를 추가할 것이다. 또 하나의 예로서, 비(non) 비디오 데이터의 경우, 스크립트 언어의 실행은 오리지널 DOM의 비 비디오 데이터에 자식 노드들을 추가하거나 교체할 수 있다. 또 다른 예로서, 오리지널 DOM의 소정 노드에 있어서, 스크립트 언어의 실행은 웹 페이지를 가리키는 앵커 태그를 제거하고 그 앵커 태그를 다른 웹 페이지를 가리키는 앵커 테그로 교체할 수 있다.
스크립트 언어의 실행으로 인해 수정이 이뤄지는 DOM의 각 위치에서 블록(412)에서 보인 것처럼 스위치 노드가 삽입된다. 예를 들어, 스크립트 언어를 실행할 때, DOM에 대해 수정이 이뤄져야 하는 경우 특정 노드를 수정할 때 스위치 노드가 삽입된다. 스위치 노드는 오리지널 노드를 교체하고 두 개의 브랜치를 포함한다. 스위치 노드의 제1브랜치는 오리지널 노드로 연결되고, 스위치 노드의 제2브랜치는 스크립트 언어의 실행으로 인해 DOM에 이루어진 수정으로 이어진다. 이런 식으로, 스위치 노드는 DOM의 오리지널 포맷을 유지하고, 또한 DOM의 수정된 포맷을 포함하도록 작용한다.
블록(414)에 도시된 바와 같이, 스위치 노드가 제1데이터 콘텐츠(가령, 비디오 콘텐츠)를 포함하는 경우, 그 스위치 노드는 마킹된다. 스위치 노드는 DOM의 노드이고, 그에 따라 스위치 노드에 HTML 속성을 포함함으로써 마킹될 수 있다. 스위치 노드가 비디오 콘텐츠를 포함하는지 식별하기 위해, 스크립트 언어에 의해 수정된 것 같은 DOM이 임베드 또는 오브젝트 태그, 또는 비디오 데이터의 다른 식별자를 찾기 위해 서치될 수 있다. 임베트나 오브젝트 태그, 또는 프리셋(preset)되거나 특정된 다른 태그는 DOM의 노드가 가령 비디오 데이터를 포함하거나 참조하는지를 나타낼 수 있다.
이 예에서, 제1데이터 콘텐츠는 비디오 콘텐츠이다. 그러나, 제1데이터 콘텐츠는 노멀라이저에 의해 특정 프로세싱을 요하는 어떤 유형의 선택된 데이터 콘텐츠일 수 있다. 예를 들어, 제1데이터 콘텐츠는 특정 방식으로 프로세싱될 수 있는 JPEG 콘텐츠일 수 있다. 다른 대안으로서, 제1데이터 콘텐츠는 오디오 콘텐츠나 텍스트 콘텐츠일 수 있다. 가령, 정규화(normalization) 중에, 마킹된 스위치 노드가 마킹되지 않은 스위치 노드와는 다른 방식으로 프로세싱될 수 있도록 스위치 노드를 마킹함으로써, 어느 타입의 콘텐츠라도 선택되고 식별될 수 있다.
이어서, 블록(416)에서 보인 바와 같이, 수정된 DOM이 노멀라이저로 보내지고 그에 따라 프로세싱된다. 예를 들어, 마킹된 스위치 노드에 대해서는 수정된 브랜치를 지나고 마킹되지 않은 스위치 노드에 대해서는 오리지널 브랜치를 지나도록 스위치 노드들의 브랜치를 따라감으로써 DOM이 프로세싱된다. 따라서, 일례에서, 일단 문서 파싱(parsing)이 완료되었고 스크립트 언어가 실행되었으면, DOM의 정규화 중에 삽입된 스위치 노드들 중 어느 브랜치를 사용할지, 즉 오리지널만을 사용할지, 수정된 것만을 사용할지, 또는 스위치 노드에 "우선한다(override)"는 속성이 검출된 것을 사용할지를 판단하기 위한 로직이 실행될 수 있다. 그런 다음 서버가 DOM의 지시된 브랜치들을 따라 정보 콘텐츠를 정규화하고 정규화된 정보 콘텐츠를 클라이언트 장치로 보낼 것이다. 정보 콘텐츠를 정규화하기 위해, 정보 콘텐츠는 필요할 때 트랜스코딩될 수 있다.
노멀라이저는 가령 마킹되지 않은 스위치 노드들이 기본적으로 수정된 DOM으로부터 제거되도록, 마킹되지 않은 노드들에 대해서는 오리지널 데이터 브랜치를 따라갈 것이다. 이러한 방식으로, 선택된 데이터 유형(가령, 비디오 데이터)을 포함하거나 참조하지 않는 스크립트 언어의 실행 결과로서 DOM의 변화로 인해 오리지널 노드를 교체하도록 삽입되었던 어떤 스위치 노드라도, DOM의 오리지널 데이터 콘텐츠를 따라감으로써 실질적으로 무시될 것이다. 일례에서, 비디오 데이터를 포함하지 않는 노드들에 대해서는 DOM의 오리지널 콘텐츠가 유지된다. 예를 들어, 오리지널 DOM을 가진 브랜치가 그대로 유지되고 그 브랜치를 지나기 위해, 관련된 수정 브랜치를 포함하는 마킹되지 않은 스위치 노드는 지나지 않기 때문에, 그 마킹되지 않은 스위치 노드를 만날 때 스크립트 언어에 의한 변경이 무시되도록 DOM의 수정된 버전이 해석되고 프로세싱된다. DOM 탐색 동작은 가령 스위치 노드의 속성에 기반해 스위치 노드들을 어떻게 지날지를 결정한다.
이런 식으로, 비디오 콘텐츠의 포함으로 인해 스위치 노드들이 마킹되었을 경우, 그 마킹된 스위치 노드들의 비디오 콘텐츠가 프로세싱된다. 비디오 콘텐츠는 그 비디오 콘텐츠로부터 정지 영상을 식별하고 비디오 콘텐츠를 그 정지 영상(비디오 콘텐츠의 미리보기를 나타낼 수 있음) 및 링크로 대체함으로써 프로세싱될 수 있다. 이미지 및 링크는 가령 비디오 데이터의 플레이스홀더(placeholder)일 수 있다. 예를 들어, 서버는 비디오의 최초 프레임의 정지 영상 같은 비디오의 스냅샷을 검색하거나 생성하여, 클라이언트 장치로 제공될 정보 콘텐츠 안에 포함시키거나 정보 콘텐츠 안에서 참조할 것이다. 서버는 또, 서버에 명령하여 비디오 파일을 클라이언트 장치에서 디스플레이될 수 있는 포맷으로 트랜스코딩하도록, 클라이언트 장치의 사용자에 의해 선택될 수 있는 링크를 포함할 수 있다. 그에 따라, 클라이언트 장치로 제공될 때, 링크는 비디오 콘텐츠가 클라이언트 장치 상에서 보여지도록 트랜스코딩될 것을 요청하기 위해 선택될 수 있다.
다른 대안으로서, 비디오 콘텐츠를 트랜스코딩하고, 가령 DOM 내 그 트랜스코딩된 비디오 콘텐츠에 대한 참조를 삽입함으로써 비디오 콘텐츠가 프로세싱될 수 있다. 한 특징을 가진 디지털 비디오 스트림에서 다른 특징을 가진 비디오 스트림으로 디지털 비디오를 수정하는 것을 일반적으로, 비디오 트랜스코딩이라 칭하며, 비디오 파일은 많은 다양한 기법을 이용해 클라이언트 장치 상에서 디스플레이되기 위한 포맷으로 트랜스코딩될 수 있다. 다양한 특성의 예들은 다양한 양자화 값들에 의해 영향을 받는 것처럼, 인코딩 포맷(가령, MPEG 1 및 MPEG 2)과 데이터 레이트를 포함한다. 한 비디오 스트림의 모든 비디오 정보가 트랜스코딩 중에 유지될 때, 비디오 스트림 무손실 트랜스코딩이 일어난 것으로 봐야 한다. 무손실 트랜스코딩이 일어나려면, 제2비디오 스트림이 이용가능한 대역폭이 오리지널 비디오 스트림에 존재하는 데이터를 지원하기 충분한 것이어야 한다. 일례에서, 비디오 인코딩 포맷들 사이의 무손실 비디오 트랜스코딩은 렌더링 데이터(이미지 데이터)를 생성하기 위해 제1비디오 인코딩 포맷을 가진 제1비디오 스트림을 디코딩하고, 뒤이어 제2비디오 인코딩 포맷을 가진 제2비디오 데이터 스트림을 생성하도록 그 렌더링 데이터를 인코딩함으로써 수행될 수 있다.
트랜스코딩의 다른 예는 MPEG2 포맷으로 된 통상적 비디오 파일이 비디오의 해상도를 낮추거나 초당 프레임의 디스플레이 레이트를 낮추고 프레임들의 일부를 제거함으로써 클라이언트 장치 상에서 보여지도록 변환되는 것을 포함한다. 구체적으로, 텔레비전 수신기로 방송되었던 MPEG2 스트림이 이를테면 MPEG4 스트림 같은 저해상도의 스트림으로 변환될 수 있다. 트랜스코더는 MPEG2 스트림을 수신하고 MPEG2 스트림에 포함된 압축 비디오 데이터를 압축해제할 수 있다. 트랜스코더는 그 다음 수신된 비디오 데이터를 가령 모바일 클라이언트 장치를 위해, 이를테면, 360 픽셀 x 240 라인의 해상도 및 초당 10 프레임으로 변환할 수 있다.
또한, 트랜스코딩은 한 사이즈에서 다른 사이즈로 비디오 사이즈를 변경하는 일(스케일링(scaling)이라고도 칭함)을 포함할 수 있다. 이것은 보다 큰 비디오를 취하여, 그 비디오를 클라이언트로 보내는데 요구되는 대역폭의 크기를 줄이도록 그 비디오를 보다 작은 크기로 스케일 다운하고, 클라이언트 장치가 그 결과에 따른 비디오를 디스플레이할 수 있게 보장하도록 하는 일을 수반할 수 있다. 너무 큰 비디오 사이즈를 수신할 때 많은 클라이언트가 실패를 하기 때문에, 너무 큰 비디오를 보내는 일은 전적인 대역폭 낭비로 이어질 수 있다. 따라서, 각 모바일 장치에 대한 정확한 스케일링 팩터를 정하는 것이 유용할 수 있다.
다른 트랜스코딩 기법은 비디오 파일의 압축을 수반한다. 비디오 파일들은 사이즈 감축을 위해 압축을 이용한다. 미가공(raw) 포맷으로된 풀 사이즈의 비디오는 여러 장치들에 있어서 너무 큰 것일 수 있다. 따라서, 비디오의 사이즈를 나중에 디코딩될 수 있는 파일 포맷으로 감축하기 위해 "코덱"이나 압축 알고리즘 타입들이 사용된다. 그러나, 그러한 프로세스가 수행될 때, 품질이 저하될 수 있고 일부 코덱들은 심지어 비디오를 디스플레이하는데 필요로되는 데이터 양을 줄이는데 "손실이 많다". 이것은 보통, 비디오의 제1프레임을 I 프레임으로 알려진 데이터로 디지털화하고 그런 다음 그 제1프레임을 다음 프레임과 비교함으로써 수행된다. 그 두 프레임들 간 차이만은 P 프레임으로 리코딩될 수 있다. 이런 식으로, 모든 프레임들 다가 아닌 프레임들 간 차이만 디지털화하면 되므로, 비디오를 저장하는데 보다 적은 데이터가 사용되는 결과를 가져온다. 전송 중에 일어났을 수 있는 어떤 데이터 훼손으로부터의 복구를 가능하게 하도록 다른 I 프레임들 역시 일정 인터벌로 전송될 수 있다.
비디오에 대해(비디오 파일의 시각 및 청각적 성분 둘 모두에 대해) 많은 다양한 코덱들이나 압축 타입들이 존재하므로, 어떤 클라이언트들이 어떤 코덱을 지원하는지를 아는 것이 도움이 될 수 있다. 어떤 클라이언트가 어떤 포맷을 지원하는지를 인식하는 것은 특정 클라이언트로 보내질 비디오 품질의 선택을 고려한다. 예를 들어, AMR-NB(협대역)는 적은 사이즈에 최적화되고 사람 음성에 효과가 좋은 오디오 코덱의 일종이나, 이 코덱은 음악에 맞는 좋은 품질을 갖지 못할 수 있다. 그러나 MP4 오디오는 보다 큰 포맷으로 소수의 클라이언트 상에서 지원되지만, 음악과 멀티미디어에 대해 허용될 수 있다고 알려져 있다
클라이언트 장치로 제공될 때, 트랜스코딩된 비디오는 클라이언트로 스트리밍될 수 있다. 스트리밍은 전체 비디오 파일이 다운로드되는 것을 요하지 않고도 비디오가 재생을 시작할 수 있게 한다. 스트리밍은 또한 클라이언트가 이미 본 비디오 부분만큼 사용된 메모리에 공간을 확보할 수 있게 한다. 스트리밍은 비디오 파일을 클라이언트로 하나씩 전송될 수 있는 작은 패킷들로 분리할 것을 요한다. 비디오 파일을 패킷으로 분리하는 프로세스를 "힌팅(hinting)"이라 부르는데, 이것은 분리될 패킷들을 준비하고 스트리밍 서버에 그 분리된 패킷들을 클라이언트로 어떻게 전송할지를 알리는 일을 포함한다. 많은 스트리밍 서버들이 비디오를 클라이언트로 스트리밍하기 전에 비디오 파일이 힌팅되는 것을 필요로 한다. 힌팅되지 않는 비디오 파일은 스트리밍 실패를 할 수 있고 그에 따라 클라이언트는 에러를 수신할 것이다.
비디오 데이터를 트랜스코딩하는 것에 관한 더 많은 정보는, "모바일 장치들을 위해 비디오 파일 컨텐츠를 변환하며 전달하기 위한 방법 및 시스템(Method and System for Transforming and Delivering Video File Content for Mobile Devices)"라는 명칭의 미국 특허 출원 공개 제2008/0195698호 및 "모바일 장치 상에 디스플레이하기 위해 대화형 에니메이션 정보 컨텐츠를 변환하기 위한 방법 및 시스템(Method and System for Converting Interactive Animated Information Content for Display on Mobile Devices)"라는 제목의 미국 특허 출원 공개 제2008/0195692호를 참조할 수 있으며, 이들 각각의 전체 내용은 본 설명에 전체가 개시되는 것처럼 참조를 통해 여기에 통합된다.
도 4로 돌아가서, 다음으로, 블록 418에 도시된 것과 같이 프로세싱된 DOM이 출력된다. 예를 들어, 프로세싱된 비디오 콘텐츠를 포함하는 프로세싱된 DOM이 클라이언트 장치로 제공될 수 있다. 또한, 정보 콘텐츠와 관련된 스크립트 언어 역시 클라이언트 장치로 제공될 수 있다. 이런 식으로 클라이언트 장치는 정보 콘텐츠를 디스플레이할 수 있고, 그렇게 할 때 스크립트 언어를 실행할 수 있다. 스크립트 언어는 DOM의 오리지널 콘텐츠에 대해, 가령 드롭다운(dropdown) 메뉴를 삽입하는 것 같이 통상의 할 일을 수행할 수 있다. 프로세싱된 비디오 콘텐츠는 스크립트 언어가 실행될 때 그 스크립트 언어가 프로세싱된 비디오 콘텐츠를 수정하지 않도록 재명명된 식별자를 더 포함할 수 있다. 이와 관련하여, 프로세싱된 비디오 콘텐츠는 스크립트 언어로부터 은닉됨으로써, 클라이언트 장치가 프로세싱된 비디오 콘텐츠를 수정하는 일을 제외하고 의도된 대로 모든 동작을 수행하기 위해 스크립트 언어를 실행할 수 있다.
스크립트 언어가 프로세싱된 비디오 콘텐츠를 그러한 유형의 비디오 콘텐츠를 지원하지 않는 클라이언트 장치 상에서 실행하고 수정하도록 되어 있다면, 스크립트 언어는 프로세싱된 비디오 콘텐츠를 가령 "비디오를 지원할 수 없다"고 읽혀지는 텍스트 및 이미지로 대체할 것이다. 그러나, 스크립트 언어로부터 프로세싱된 비디오 콘텐츠를 은닉함으로써, 비디오 콘텐츠를 지원하지 않는 클라이언트 장치는 그 스크립트 언어를 실행하여 가령 정지 영상과 링크만을 포함할 수 있는 프로세싱된 비디오 콘텐츠를 디스플레이할 수 있다.
이 방법(400)은 DOM의 오리지널 콘텐츠를 보존하고 클라이언트 장치에 비디오 콘텐츠를 적응시키도록 동작된다. 또, 서버가 스크립트 언어를 실행하고 DOM을 완전히 수정한 다음 그것을 스크립트 언어 없이 클라이언트 장치로 보내기 보다, 정보 콘텐츠와 관련된 스크립트 언어가 여전히 클라이언트 장치로 보내져서 클라이언트 장치에 의해 실행될 수 있다. 스크립트 언어를 클라이언트 장치로 보냄으로써, 클라이언트 장치가 웹 사이트의 더 많은 기능을 수행할 수 있다.
또, 프로세싱된 비디오 데이터를 미리보기 이미지 및 링크 포맷으로 클라이언트에 전송함으로써, 클라이언트 장치의 사용자가 링크를 선택하여 디스플레이할 비디오를 요청하도록 할 수 있다. 서버는 그 요청을 수신하고, 클라이언트 장치 상에 보이기 위한 비디오를 적응시키며, 적응되거나 트랜스코딩된 비디오를 클라이언트 장치로 전송할 수 있다. 비디오는 클라이언트 장치의 사양이나 클라이언트 브라우저의 사양에 기반해 변환될 수 있다.
다른 대안으로서, 사용자의 링크 선택을 수신한 후, 서버가 비디오 데이터를 트랜스코딩하고, 비디오 변환이 완료될 때 사용자에게 통지를 할 수 있다. 서버는 가령, 사용자가 비디오를 시청할 수 있게 하는 링크를 포함한 단문 메시지 서비스(SMS) 또는 푸쉬(Push) 메시징을 이용하는 것 같은 여러 방법을 통해 사용자에게 통지를 할 수 있다. 통지 메시지는 관련된 트랜스코딩된 비디오 파일에 링크하는 식별자를 포함할 수 있다. 서버는 클라이언트 장치로 통지 메시지를 보내기 전에 비디오 파일 식별자를 통지서 안에 놓을 수 있다. 그러면 클라이언트 장치는 그 식별자를 서버로 보내 관련된 트랜스코딩된 비디오 파일을 검색하도록 할 수 있다.
그에 따라, 전형적 실시예에 따르면, 서버는 DOM에 스위치 노드들을 추가하고 비디오 콘텐츠에 관한 스위치 노드를 마킹할 수 있다. 노드들이 DOM에 더해지고 마킹되었으면, 이미지 및 실시간 스트리밍 프로토콜(RTSP) 링크를 DOM에 추가하도록 서버(가령, 적응적 콘텐츠 액셀러레이터(ACA(adaptive content accelerator))가 동작될 수 있다. 비디오와 관련된 노드들을 식별하고, 다른 오리지널 노드들을 유지하기 위해 스크립트 언어의 전치 프로세싱이 일어난다.
도 5는 트리 구조로 표현된 또 다른 전형적 개념의 DOM이다. 이 예에서, 오리지널 DOM은 분할(division) 태그(가령, "div") 및 스트립트 태그로의 브랜치를 가진 바디(body) 엘리먼트를 포함한다. DOM과 관련된 스크립트 언어를 실행할 때, div와 스크립트(script) 노드들이 수정될 수 있고, 그에 따라 스위치 노드들이 DOM 내 오리지널 div 및 스크립트 노드들의 위치에 삽입된다. 스위치 노드들은 "div" 및 "스크립트(script)" 노드의 두 버전을 저장한다. 예를 들어, 제1버전은 DOM의 오리지널 콘텐츠를 포함하고 제2버전은 수정된 데이터를 포함한다. 스크립트 노드를 나타내는 스위치 노드에 있어서, 오리지널 노드(가령, 스크립트 노드) 및 수정된 노드를 나타내는 두 개의 브랜치들이 포함된다. "스크립트" 노드의 수정된 브랜치는 이 노드가 실행되었을 것이기 때문에 무효이다(null).
이 예에서 div 태그가 비디오 데이터를 포함한다. div 노드를 나타내는 스위치 노드에 있어서, 오리지널 div 노드 및 수정된 노드를 나타내는 두 개의 브랜치들이 포함된다. 수정된 노드는 div 태그 및 임베드 태그를 포함한다. 임베드/오브젝트 태그는 위에서 논의된 것과 같이, 비디오 콘텐츠의 정지 영상 및 링크를 포함할 수 있다.
이 예로부터 임베드/오브젝트 태그를 검출하는 서버의 로직이 오리지널 DOM에서 이 태그들을 서치하기 위해 강화될 수 있다. 하나가 발견되면, 다음 단계는 그 브랜치에서 모든 조상(ancestor) 스위치 노드를 찾고 그 노드들에 "우선한다"고 칭하는 속성을 세팅하는 것일 수 있다. 이것은 그 노드들 상의 어떤 추가 DOM 동작들이 수정된 브랜치를 사용하게 하는 효과를 가질 수 있다. 서버의 노멀라이저는 이제 비디오 트랜스코더를 통해 임베드/오브젝트 태그들을 실행하고 그 결과에 따른 콘텐츠를 가지고 정규화된 DOM을 업데이트할 수 있다.
마킹된 스위치 노드에 속하는 div 태그의 비디오 데이터를 프로세싱한 후, 이를테면 마킹되지 않은 스위치 노드가 제거되고, 그 결과에 따른 수정된 DOM이 클라이언트 장치로 제공될 수 있다. 또, 그 수정된 DOM을 클라이언트 장치로 전송하기 전에 마킹된 스위치 노드 자체가 제거될 수 있다. 도 5의 예는 스크립트 언어에 영향을 받은 모든 노드들에 대한 지식 전후에 오리지널 DOM이 보유될 수 있게 한다. 또, 클라이언트 장치 상에서 실행한 스크립트 언어가 서버에 의해 생성된 비디오 콘텐츠를 덮어 쓰고자 시도할 경우에, 이를테면 비디오 데이터를 캡슐화한 "div" 태그의 "id" 속성이 바뀌어져서, 스크립트 언어가 그 콘텐츠를 덮어쓰지 못하게 될 수 있다.
도 6-12는 트리 구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어의 실행으로 인해 DOM이 수정되는 경우들을 도시한다.
도 6은 트리 구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어가 스크립트 노드를 수정하는 경우를 예시한다. 문서 파서(parser)가 스크립트 언어를 실행하고 스크립트 노드를 만날 때, 모든 DOM 변경들이 스위치 노드를 삽입해야 한다는 지시를 삽입하도록 QuickDom 스위치 상태가 세팅된다. 도 5에서 알 수 있는 바와 같이, 오리지널 스크립트 노드는 두 개의 브랜치를 가진 스위치 노드로 교체될 것이다. 그 스위치 노드의 상태 속성은 "오리지널"로 세팅된다. 오리지널 스크립트 태그 노드 및 그 스크립트 태그 노드의 모든 자식들이 스위치 노드의 첫 번째 자식(오리지널 브랜치)이 되고, 스위치 노드의 마지막 또는 두 번째 자식으로서 세팅되는 스위치 노드의 수정된 브랜치로서 "널(null)"이 유지될 것이다.
도 7은 트리 구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어가 일반 노드를 수정하는 경우를 예시한다. 노드 A의 부모가 이미 어떤 스위치 노드인 경우, 노드 A의 자식은 단순히 노드 A의 사본에 추가될 수 있다. 그러나, 노드 A의 부모가 스위치 노드가 아닌 경우, 어떤 스위치 노드가 생성되어 노드 A 대신 십입된다. 오리지널 노드 A는 스위치 노드의 첫째 자식이 되고, 노드 A의 사본은 둘째 자식(변형된 브랜치)이 된다. 모든 자식들이 노드 A의 사본에 추가될 수 있다.
도 8은 트리 구조로 표현된 전형적 개념의 DOM 및, 자식(children)을 제거함으로써 스크립트 언어가 일반 노드를 수정하는 경우를 예시한다. 노드 A의 부모가 이미 스위치 노드인 경우, 노드 A의 자식들은 간단히 제거될 수 있다. 그러나, 노드 A의 부모가 스위치 노드가 아닌 경우, 스위치 노드가 생성되어 노드 A 대신 십입된다. 오리지널 노드 A와 자식들이 그 스위치 노드의 첫째 자식이 되고, 노드 A의 사본이 둘째 자식(가령, 수정된 브랜치)이 된다. 모든 자식들이 노드 A의 사본(가령, 수정된 브랜치)으로부터 제거된다.
도 9는 트리 구조로 표현된 전형적 개념의 DOM 및, 노드가 수정되기 전에 새 노드를 삽입함으로써 스크립트 언어가 DOM을 수정하는 경우를 예시한다. 노드 A의 부모가 이미 어떤 스위치 노드인 경우, 노드 A 앞에 새 노드가 삽입된다. 그러나, 노드 A의 부모가 스위치 노드가 아닌 경우, 어떤 스위치 노드가 생성되어 노드 A 대신 십입된다. 오리지널 부모 노드는 스위치 노드의 첫째 자식이 되고, 부모 노드의 사본 및 그 자식들이 둘째 자식(변형된 브랜치)이 된다. 부모 노드의 사본을 이용해, 새 노드가 노드 A 앞에 삽입된다.
도 10은 트리 구조로 표현된 전형적 개념의 DOM 및, 노드가 수정된 후에 새 노드를 삽입함으로써 스크립트 언어가 DOM을 수정하는 경우를 예시한다. 노드 A의 부모가 이미 어떤 스위치 노드인 경우, 노드 A 뒤에 새 노드가 삽입된다. 그러나, 노드 A의 부모가 스위치 노드가 아닌 경우, 어떤 스위치 노드가 생성되어 노드 A 대신 십입된다. 오리지널 부모 노드는 스위치 노드의 첫째 자식이 되고, 부모 노드의 사본 및 그 자식들이 둘째 자식(변형된 브랜치)이 된다. 부모 노드의 사본을 이용해, 새 노드가 노드 A 뒤에 삽입된다.
도 11은 트리 구조로 표현된 전형적 개념의 DOM 및, 속성 값을 변경함으로써 스크립트 언어가 노드를 수정하는 경우를 예시한다. 노드 A의 부모가 이미 스위치 노드인 경우, 노드 A의 새로운 속성이 세팅될 수 있다. 그러나, 노드 A의 부모가 스위치 노드가 아닌 경우, 스위치 노드가 생성되어 노드 A 대신 십입된다. 오리지널 노드 A가 그 스위치 노드의 첫째 자식이 되고, 노드 A의 사본이 둘째 자식(가령, 수정된 브랜치)이 된다. 노드 A의 사본을 이용해, 새 속성 A가 세팅될 수 있다.
도 12는 트리구조로 표현된 전형적 개념의 DOM 및, 스크립트 언어가 소정 노드의 자식을 어느 HTML 스트링으로서 특정된 콘텐츠로 대체하는(가령, 자바스크립트 함수 'setInnerHtml'을 수행함) 경우를 예시한다. 노드 A의 부모가 이미 스위치 노드인 경우, 노드 A의 모든 자식들은 제거될 수 있고 새로운 자식들이 추가될 수 있다. 그러나, 노드 A의 부모가 스위치 노드가 아닌 경우, 스위치 노드가 생성되어 노드 A 대신 십입된다. 오리지널 노드 A와 자식들이 그 스위치 노드의 첫째 자식이 되고, 노드 A의 사본이 둘째 자식(가령, 수정된 브랜치)이 된다. 이어서, 자식 노드들이 노드 A의 사본으로부터 제거될 수 있고, 입력된 HTML 텍스트에 의해 생성된 새로운 자식들이 노드 A의 사본에 추가될 수 있다(가령, 노드 D 및 B로서 도시됨).
또 다른 예에서, 상술한 바와 같이 어떤 노드의 부모나 조상이 스위치 노드인 경우, 그 노드는 다른 스위치 노드로 교체되지 않을 것이다. 또, 스위치 노드의 속성은 어떤 브랜치가 따라올지를 지시할 것이다.
임베드나 오브젝트 태그와 만나게 되는 예에 있어서, 임베드나 오브젝트 태그의 부모 스위치 노드는 수정된 브랜치가 미래의 모든 트래버설(지나감, traversal) 동작에 사용되어야 한다는 것을 지시하기 위해 "우선한다"고 세팅된 속성을 가질 것이다. 또, 스위치 노드의 모든 부모들 역시 "우선한다"고 세팅되는 속성들을 가질 수 있다.
스위치 노드들이 삽입된 뒤, 수정된 DOM은 비디오 데이터를 처리하도록 프로세싱할 노멀라이저로 보내진다. 노멀라이저는 스위치 노드를 정규화하도록 시도할 수 있지만, "우선한다"는 속성이 그 스위치 노드에 세팅되어 있는 경우, 수정된 브랜치가 뒤따르고, 수정된 브랜치의 첫째 자식 노드가 복사되고 리턴된다. 정규화는 수정된 브랜치 아래에서 계속되고, 오리지널 브랜치는 무시된다. 임베드 또는 오브젝트 태그가 검출되면, 그 태그는 비디오 프로세싱 해법을 통해 노드를 운영하는 전형적 로직 안으로 보내지고 그 결과에 따른 비디오 콘텐츠가 정규화된 DOM에 추가된다. 만나는 다른 모든 스위치 노드들은 스위치 상태 마다 오리지널 브랜치로부터 자식들을 정규화할 것이다. 궁극적으로, 정규화된 DOM은 가령 스위치 상태에 의해 특정된 브랜치들에 속하는 노드들 외에 어떤 스위치 노드도 포함하지 않을 것이다.
기술된 전형적 방법들은 오리지널 DOM에 대한 기능을 수행하기 위해 QuickDom 노멀라이저를 사용할 수 있다. QuickDom 노멀라이저는 소정 스위치 노드에 대해 어떤 브랜치가 뒤따를지를 기술한 SwitchState(스위치 상태) 같은 클래스를 가질 수 있다(가령, 오리지널로 디폴트됨). SwitchState의 값들은 오리지널(오리지널 브랜치를 따름), 삽입(현재 콘텐츠 삽입), 수정됨(수정된 브랜치를 따름), 및 우선함(전체 DOM 스위치 상태 세팅에 우선함)을 포함한다.
QuickDom 노멀라이저는 이하의 표 2에 도시된 것과 같은 것을 포함하여 실행될 수 있는 메소드들을 더 포함할 수 있다. 기술된 것과 같이 다른 클래스와 메소드들 역시 QuickDom 노멀라이저에 포함될 수 있다.
Figure pct00002
다양한 양태들 및 실시예들이 여기에 개시되었지만, 당업자에게는 다른 양태들 및 실시예들도 자명해 보일 것이다. 여기 개시된 다양한 양태들과 실시예들은 예시의 목적일 뿐 한정할 의도로 주어진 것이 아니며, 진정한 범위와 개념은 이하의 청구범위에 의해 지시될 것이다.
본 개시사항이 이 출원에서 다양한 양태들을 예시할 의도로 기술된 특정 실시예들과 관련해 한정되어서는 안될 것이다. 이 분야의 숙련자라면 자명히 알 수 있듯이, 발명의 개념과 범위에서 벗어나지 않고 여러 수정 및 변형이 가해질 수 있다. 당업자라면 상술한 내용으로부터 여기 나열된 것들 외에, 개시된 범위 안에서 기능적으로 균등한 방법과 장치들이 있을 수 있음을 명백히 알 수 있을 것이다. 그러한 수정 및 변경사항은 첨부된 청구범위 안에 포함되도록 의도되었다. 본 개시사항은 첨부된 청구범위에 권리 부여되는 균등물의 모든 범위와 함께 이 청구범위와 관련해서만 제한되어진다. 본 개시사항이 물론 가변될 수 있는 특정 방법, 반응물, 복합물 합성이나 생물학적 시스템에 국한되지 않음을 알아야 한다. 또한 여기 사용된 용어는 특정 실시예를 기술할 목적일 뿐 한정의 의도를 가지지 않는다는 것도 알아야 한다.
다양한 양태들 및 실시예들이 여기 개시되었지만, 당업자에게는 다른 양태들 및 실시예들도 자명해 보일 것이다. 여기 개시된 다양한 양태들과 실시예들은 예시의 목적일 뿐 한정할 의도로 주어진 것이 아니며, 진정한 범위와 개념은 이하의 청구범위에 의해 지시될 것이다.

Claims (23)

  1. 디스플레이를 위해 정보 콘텐츠를 제공하는 방법에 있어서,
    문서 객체 모델(DOM)에 의해 표현되며 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 상기 정보 콘텐츠를 수신하는 단계,
    상기 DOM에 대한 수정(modifications)이 수행되도록 상기 DOM에 대해 상기 스크립트 언어를 실행하는 단계,
    상기 스크립트 언어가 상기 DOM을 수정했던 위치에서 상기 DOM 안에 스위치 노드를 삽입하는 단계-상기 스위치 노드는 상기 DOM의 오리지널 콘텐츠를 가리키는 제 1 브랜치 및 상기 스크립트 언어에 의해 수행된 수정을 가리키는 제 2 브랜치를 가짐-,
    상기 스위치 노드가 제 1 데이터 콘텐츠를 가리키는 브랜치를 가지는 경우, 상기 스위치 노드를 마킹하는 단계,
    마킹된 스위치 노드에 대해서는 수정된 브랜치를 지나고(traverse) 마킹되지 않은 스위치 노드에 대해서는 오리지널 브랜치를 지나도록 상기 스위치 노드들의 브랜치를 따라감으로써 상기 DOM을 프로세싱하는 단계, 및
    프로세싱된 DOM을 출력하는 단계를 포함하는
    방법.

  2. 제 1 항에 있어서,
    어느 브랜치를 사용할지를 가리키는 각 스위치 노드에 관한 속성을 제공하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 DOM에 대해 상기 스크립트 언어를 실행하는 단계는 상기 DOM의 수정된 버전으로 상기 DOM을 변환하고, 상기 방법은
    상기 DOM을 상기 DOM의 상기 수정된 버전과 비교하는 단계, 및
    상기 DOM 안에 상기 스크립트 언어가 상기 DOM을 수정했던 위치에 상기 스위치 노드를 삽입하는 단계를 더 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 스위치 노드를 마킹하는 단계는 상기 스위치 노드가 <임베드(embed)>나 <오브젝트(object)> 태그를 포함하는 경우 상기 스위치 노드에 관한 속성을 제공하는 단계를 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 제 1 데이터 콘텐츠는 비디오 콘텐츠인
    방법.
  6. 제 5 항에 있어서,
    상기 비디오 콘텐츠는 플래시(flash) 콘텐츠 및 MPEG 콘텐츠로 이루어진 그룹으로부터 선택된 콘텐츠를 포함하는
    방법.
  7. 제 5 항에 있어서,
    상기 마킹된 스위치 노드들에 대해 상기 DOM을 프로세싱하는 단계는 상기 비디오 콘텐츠를 프로세싱하는 단계를 포함하는
    방법.

  8. 제 7 항에 있어서,
    상기 프로세싱된 DOM 안에, 프로세싱된 비디오 콘텐츠를 포함하는 노드들에 대한 식별자를 제공하되, 상기 식별자는 상기 스크립트 언어가 클라이언트 장치 상에서 실행될 때 상기 노드들에 대한 수정을 수행하지 않도록 상기 스크립트 언어에 지시하는 단계를 더 포함하는
    방법.
  9. 제 7 항에 있어서,
    상기 비디오 콘텐츠를 프로세싱하는 단계는 상기 비디오 콘텐츠를 미리보기(preview) 이미지 및 링크로 교체하는 단계를 포함하는
    방법.
  10. 제 9 항에 있어서,
    상기 링크에 대한 사용자 선택을 수신하는 단계,
    상기 비디오 콘텐츠를 트랜스코딩하는 단계, 및
    트랜스코딩된 비디오 콘텐츠를 제공하는 단계를 더 포함하는
    방법.
  11. 제 1 항에 있어서,
    상기 프로세싱된 DOM을 출력하는 단계는 상기 정보 콘텐츠와 관련된 상기 스크립트 언어를 제공하는 단계를 포함하는
    방법.
  12. 제 1 항에 있어서,
    클라이언트 장치로부터 상기 정보 콘텐츠에 대한 요청을 수신하는 단계, 및
    정보 소스로부터 상기 정보 콘텐츠를 검색하는 단계를 더 포함하는
    방법.
  13. 제 1 항에 있어서,
    상기 정보 콘텐츠가 비디오 콘텐츠를 포함하는지 여부를 판단하는 단계, 및
    상기 판단에 기초해, 상기 DOM에 대해 상기 스크립트 언어를 실행하는 단계를 더 포함하는
    방법.

  14. 제 1 항에 있어서,
    상기 제 1 데이터 콘텐츠를 포함하는 브랜치에서 모든 조상(ancestor) 스위치 노드들을 식별하는 단계, 및
    수정된 브랜치를 사용하도록 지시하기 위해 상기 조상 스위치 노드들에 관한 속성을 세팅하는 단계를 더 포함하는
    방법.
  15. 제 1 항에 있어서,
    상기 DOM의 노드는 스크립트 노드이고, 상기 스위치 노드를 상기 DOM 안에 삽입하는 단계는
    상기 스크립트 노드를 상기 스위치 노드로 교체하는 단계,
    상기 스위치 노드의 첫째 자식으로서 상기 스위치 노드의 제 1 브랜치에 상기 스크립트 노드를 놓는 단계, 및
    상기 스위치 노드의 둘째 자식으로서 상기 스위치 노드의 상기 제 2 브랜치에 널(null)을 놓는 단계를 포함하는
    방법.

  16. 제 1 항에 있어서,
    상기 DOM의 노드는 스크립트 언어에 의해 수정되며, 상기 스위치 노드를 상기 DOM 안에 삽입하는 단계는
    상기 노드를 상기 스위치 노드로 교체하는 단계,
    상기 스위치 노드의 첫째 자식으로서 상기 스위치 노드의 제 1 브랜치에 상기 노드를 놓는 단계, 및
    상기 스위치 노드의 둘째 자식으로서 상기 스위치 노드의 상기 제 2 브랜치에 상기 노드의 사본을 놓는 단계를 포함하는
    방법.
  17. 제 16 항에 있어서,
    상기 노드의 자식들을 상기 노드의 사본에 추가하는 단계를 더 포함하는
    방법.
  18. 컴퓨팅 장치가 다음의 기능을 수행하도록 상기 컴퓨팅 장치에 의해 실행되는 명령어들을 저장한 컴퓨터 판독가능 매체에 있어서, 상기 기능은
    문서 객체 모델(DOM)에 의해 표현되며 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 상기 정보 콘텐츠를 수신하는 기능,
    상기 DOM에 대한 수정이 수행되도록 상기 DOM에 대해 상기 스크립트 언어를 실행하는 기능,
    상기 스크립트 언어가 상기 DOM을 수정했던 위치에서 상기 DOM 안에 스위치 노드를 삽입하는 기능-상기 스위치 노드는 상기 DOM의 오리지널 콘텐츠를 가리키는 제1브랜치 및 상기 스크립트 언어에 의해 수행된 수정을 가리키는 제2브랜치를 가짐-,
    상기 스위치 노드가 제 1 데이터 콘텐츠를 가리키는 브랜치를 가지는 경우, 상기 스위치 노드를 마킹하는 기능,
    마킹된 스위치 노드에 대해서는 수정된 브랜치를 지나고(traverse) 마킹되지 않은 스위치 노드에 대해서는 오리지널 브랜치를 지나도록 상기 스위치 노드들의 브랜치를 따라감으로써 상기 DOM을 프로세싱하는 기능, 및
    프로세싱된 DOM을 출력하는 기능을 포함하는
    컴퓨터 판독가능 매체.
  19. 제 18 항에 있어서,
    상기 명령어는 어떤 브랜치를 사용할지를 지시하는 각 스위치 노드에 관한 속성을 제공하는 기능을 수행하도록 추가로 실행될 수 있는
    컴퓨터 판독가능 매체.
  20. 제 18 항에 있어서,
    상기 제 1 데이터 콘텐츠는 비디오 콘텐츠이고, 상기 마킹된 스위치 노드들에 대해 상기 DOM을 프로세싱하는 기능은 상기 비디오 콘텐츠를 프로세싱하는 기능을 포함하며, 상기 비디오 콘텐츠를 프로세싱하는 기능은 상기 비디오 콘텐츠를 미리보기 이미지 및 링크로 교체하는 기능을 포함하는
    컴퓨터 판독가능 매체.
  21. 서버에 있어서,
    프로세서,
    다음의 기능, 즉
    문서 객체 모델(DOM)에 의해 표현되며 정보 콘텐츠와 관련된 스크립트 언어를 포함하는 상기 정보 콘텐츠를 수신하는 기능,
    상기 DOM에 대한 수정이 수행되도록 상기 DOM에 대해 상기 스크립트 언어를 실행하는 기능,
    상기 스크립트 언어가 상기 DOM을 수정했던 위치에서 상기 DOM 안에 스위치 노드를 삽입하는 기능-상기 스위치 노드는 상기 DOM의 오리지널 콘텐츠를 가리키는 제 1 브랜치 및 상기 스크립트 언어에 의해 수행된 수정을 가리키는 제 2 브랜치를 가짐-, 및
    상기 스위치 노드가 제 1 데이터 콘텐츠를 가리키는 브랜치를 가지는 경우, 상기 스위치 노드를 마킹하는 기능
    을 수행하도록 상기 프로세서에 의해 실행될 수 있는 기계어 명령어를 포함하는 메모리,
    마킹된 스위치 노드들에 대해 수정된 브랜치들을 지나고(traverse) 마킹되지 않은 스위치 노드들에 대해서는 오리지널 브랜치들을 지나도록 스위치 노드들의 브랜치들을 따라감으로써 상기 DOM을 프로세싱하고 프로세싱된 DOM을 출력하는 노멀라이저(normalizer)를 포함하는
    서버.
  22. 제 21 항에 있어서,
    상기 DOM의 노드는 스크립트 언어에 의해 수정되며, 상기 스위치 노드를 상기 DOM 안에 삽입하는 기능은
    상기 노드를 상기 스위치 노드로 교체하는 기능,
    상기 스위치 노드의 첫째 자식으로서 상기 스위치 노드의 제 1 브랜치에 상기 노드를 놓는 기능, 및
    상기 스위치 노드의 둘째 자식으로서 상기 스위치 노드의 상기 제 2 브랜치에 상기 노드의 사본을 놓는 기능을 포함하는
    서버.
  23. 제 21 항에 있어서,
    상기 제 1 데이터 콘텐츠는 비디오 콘텐츠이고, 상기 노멀라이저는 상기 비디오 콘텐츠를 미리보기 이미지 및 링크로 대체함으로써 상기 비디오 콘텐츠를 프로세싱하며, 상기 노멀라이저는 상기 링크에 대한 사용자 선택에 응답하여 상기 비디오 콘텐츠를 트랜스코딩하는
    서버.
KR1020117025718A 2009-03-30 2010-03-30 디스플레이를 위해 정보 콘텐츠를 제공하는 방법, 컴퓨터 판독가능 매체 및 서버 KR20120010248A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16462509P 2009-03-30 2009-03-30
US61/164,625 2009-03-30
PCT/US2010/029269 WO2010117814A1 (en) 2009-03-30 2010-03-30 Methods and systems for processing document object models (dom) to process video content

Publications (1)

Publication Number Publication Date
KR20120010248A true KR20120010248A (ko) 2012-02-02

Family

ID=42341696

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117025718A KR20120010248A (ko) 2009-03-30 2010-03-30 디스플레이를 위해 정보 콘텐츠를 제공하는 방법, 컴퓨터 판독가능 매체 및 서버

Country Status (6)

Country Link
US (1) US20100306643A1 (ko)
EP (1) EP2414970A1 (ko)
KR (1) KR20120010248A (ko)
CN (1) CN102414681A (ko)
RU (1) RU2475832C1 (ko)
WO (1) WO2010117814A1 (ko)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US8495171B1 (en) 2012-05-29 2013-07-23 Limelight Networks, Inc. Indiscriminate virtual containers for prioritized content-object distribution
US8321533B2 (en) * 2009-08-03 2012-11-27 Limelight Networks, Inc. Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US8346784B1 (en) 2012-05-29 2013-01-01 Limelight Networks, Inc. Java script reductor
US9058402B2 (en) 2012-05-29 2015-06-16 Limelight Networks, Inc. Chronological-progression access prioritization
CA2715362A1 (en) * 2009-09-22 2011-03-22 Thwapr, Inc. Interoperable mobile media sharing
CN102136948B (zh) * 2011-03-15 2014-04-02 华为技术有限公司 用于统计用户体验的方法、终端设备和系统
US11210610B2 (en) * 2011-10-26 2021-12-28 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
CN103139260B (zh) 2011-11-30 2015-09-30 国际商业机器公司 用于重用html内容的方法和系统
US20130145252A1 (en) * 2011-12-02 2013-06-06 Opera Software Asa Page based navigation and presentation of web content
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US10157184B2 (en) * 2012-03-30 2018-12-18 Commvault Systems, Inc. Data previewing before recalling large data files
CN102789474B (zh) * 2012-04-12 2014-02-05 北京京东世纪贸易有限公司 处理网页数据的方法和装置
US20130311859A1 (en) * 2012-05-18 2013-11-21 Barnesandnoble.Com Llc System and method for enabling execution of video files by readers of electronic publications
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
JP5945060B2 (ja) * 2013-02-12 2016-07-05 日本電信電話株式会社 出力機能分割システム
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US9277255B1 (en) * 2013-03-15 2016-03-01 Google Inc. Metering of internet protocol video streams
JP6337499B2 (ja) 2013-03-15 2018-06-06 株式会社リコー 配信制御システム、配信システム、配信制御方法、及びプログラム
JP2014199648A (ja) * 2013-03-15 2014-10-23 株式会社リコー 配信制御システム、配信システム、配信制御方法、及びプログラム
JP2014215859A (ja) * 2013-04-26 2014-11-17 ソニー株式会社 受信装置、受信装置における情報処理方法、送信装置、情報処理装置および情報処理方法
US9143840B2 (en) * 2013-05-20 2015-09-22 Veenome, Inc. Systems and methods for evaluating online videos
US9015348B2 (en) 2013-07-19 2015-04-21 Limelight Networks, Inc. Dynamically selecting between acceleration techniques based on content request attributes
US20150154617A1 (en) * 2013-12-04 2015-06-04 SaleMove, Inc. Determining leads based on web site interactions and browser sessions
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
CN103995835A (zh) * 2014-04-25 2014-08-20 江苏思迈斯电子商务有限公司 用户界面框架的网页元素查找方法
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US10409884B2 (en) * 2014-07-02 2019-09-10 The Nielsen Company (Us), Llc Methods and apparatus to identify sponsored media in a document object model
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US9582600B1 (en) * 2014-09-23 2017-02-28 Amazon Technologies, Inc. Cloud browser DOM-based client
US9740791B1 (en) 2014-09-23 2017-08-22 Amazon Technologies, Inc. Browser as a service
US20170315971A1 (en) * 2014-10-06 2017-11-02 Symmetric Co., Ltd. Program for displaying webpage, terminal device, and server device
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
KR20170006432A (ko) * 2015-07-08 2017-01-18 삼성전자주식회사 웹 컨텐츠 표시 방법 및 이를 지원하는 전자 장치
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10742764B2 (en) 2015-07-27 2020-08-11 Adp, Llc Web page generation system
US10417317B2 (en) 2015-07-27 2019-09-17 Adp, Llc Web page profiler
US10324600B2 (en) * 2015-07-27 2019-06-18 Adp, Llc Web page generation system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US20170315849A1 (en) * 2016-04-29 2017-11-02 Microsoft Technology Licensing, Llc Application target event synthesis
US10554714B2 (en) * 2016-05-11 2020-02-04 Ebay Inc. Managing data transmissions over a network connection
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US20180338166A1 (en) * 2017-05-22 2018-11-22 Symantec Corporation Remotely validating a webpage video stream
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10997219B1 (en) * 2017-08-10 2021-05-04 Snap Inc. Node embedding in multi-view feature vectors
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US10754729B2 (en) 2018-03-12 2020-08-25 Commvault Systems, Inc. Recovery point objective (RPO) driven backup scheduling in a data storage management system
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US10860443B2 (en) 2018-12-10 2020-12-08 Commvault Systems, Inc. Evaluation and reporting of recovery readiness in a data storage management system
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine
WO2022149124A1 (en) * 2021-01-10 2022-07-14 Blings Io Ltd System and method for dynamic, data-driven videos

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2848426A (en) * 1956-12-03 1958-08-19 Shell Dev Polyerpoxy polyethers, their preparation and polymers
US4907149A (en) * 1983-07-22 1990-03-06 Texas Instruments Incorporated Dynamic redirection of interrupts
US5991760A (en) * 1997-06-26 1999-11-23 Digital Equipment Corporation Method and apparatus for modifying copies of remotely stored documents using a web browser
GB2340358B (en) * 1998-07-31 2002-11-13 Sony Uk Ltd Video special effects
US6377957B1 (en) * 1998-12-29 2002-04-23 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured date
US7054952B1 (en) * 1999-12-09 2006-05-30 International Business Machines Corp. Electronic document delivery system employing distributed document object model (DOM) based transcoding and providing interactive javascript support
US7500188B1 (en) * 2000-04-26 2009-03-03 Novarra, Inc. System and method for adapting information content for an electronic device
US7072984B1 (en) 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US20040049737A1 (en) 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US6606604B1 (en) * 2000-05-31 2003-08-12 International Business Machines Corporation Incremental updates of items and prices on a customer's computer to reduce download times for frequently purchased items in e-commerce transactions in a method, system and program
US6785707B2 (en) * 2000-11-14 2004-08-31 Bitfone Corp. Enhanced multimedia mobile content delivery and message system using cache management
WO2003032144A1 (fr) * 2001-10-05 2003-04-17 Matsushita Electric Industrial Co., Ltd. Systeme et procede de creation de donnees d'impression
DE10219390B4 (de) * 2002-04-30 2007-05-31 Siemens Ag Server, Pufferspeicher und Browser zur beschleunigten Übermittlung von Hypertext-Dokumenten
US6941310B2 (en) * 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application
US20040177094A1 (en) * 2003-03-06 2004-09-09 Sun Microsystems, Inc. Association of application specific code with nodes of a document object model using extensions to an XML schema
US20050138138A1 (en) * 2003-12-22 2005-06-23 Jelinek Lenka M. Content provisioning for mobile devices using proximity awareness to a computer
US7761601B2 (en) * 2005-04-01 2010-07-20 Microsoft Corporation Strategies for transforming markup content to code-bearing content for consumption by a receiving device
AU2006278225A1 (en) * 2005-08-09 2007-02-15 Compography, Inc. Methods and apparatuses to assemble, extract and deploy content from electronic documents
US7810049B2 (en) * 2005-09-26 2010-10-05 Novarra, Inc. System and method for web navigation using images
JP4140916B2 (ja) * 2005-12-22 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Webページにおける状態遷移を解析する方法
US8181107B2 (en) * 2006-12-08 2012-05-15 Bytemobile, Inc. Content adaptation
JP5312349B2 (ja) * 2007-02-09 2013-10-09 ノキア コーポレイション 情報コンテンツの一部分をクライアント装置に与える方法およびシステム
US8621338B2 (en) * 2007-02-09 2013-12-31 Nokia Corporation Method and system for converting interactive animated information content for display on mobile devices
US20080195698A1 (en) * 2007-02-09 2008-08-14 Novarra, Inc. Method and System for Transforming and Delivering Video File Content for Mobile Devices
WO2008098174A1 (en) * 2007-02-09 2008-08-14 Novarra, Inc. Method and apparatus for providing information content for display on a client device
WO2009036301A1 (en) * 2007-09-13 2009-03-19 Myxer Inc. System and method for mobilizing web content
RU80296U1 (ru) * 2008-07-17 2009-01-27 Олег Игоревич Мухин Система интерактивной коммуникации (варианты)
US20100123908A1 (en) * 2008-11-17 2010-05-20 Fuji Xerox Co., Ltd. Systems and methods for viewing and printing documents including animated content

Also Published As

Publication number Publication date
CN102414681A (zh) 2012-04-11
WO2010117814A1 (en) 2010-10-14
RU2475832C1 (ru) 2013-02-20
US20100306643A1 (en) 2010-12-02
EP2414970A1 (en) 2012-02-08

Similar Documents

Publication Publication Date Title
RU2475832C1 (ru) Способы и системы обработки объектных моделей документов (dom) для обработки видеоконтента
US20100281042A1 (en) Method and System for Transforming and Delivering Video File Content for Mobile Devices
US20080195698A1 (en) Method and System for Transforming and Delivering Video File Content for Mobile Devices
US8032651B2 (en) News architecture for iTV
US9361399B2 (en) Content management and transformation system for digital content
US7761601B2 (en) Strategies for transforming markup content to code-bearing content for consumption by a receiving device
US7631260B1 (en) Application modification based on feed content
US6725421B1 (en) Methods, apparatus, and systems for storing, retrieving and playing multimedia data
US7216177B1 (en) Apparatus and method for supplying electronic content to network appliances
US20030011631A1 (en) System and method for document division
US20100306344A1 (en) Methods and Systems for Using Multipart Messaging with Preset Constraints
JP2010518508A (ja) モバイルデバイス上へ表示するための対話型アニメ情報コンテンツの変換方法とシステム
JP4811069B2 (ja) 情報提示装置、情報提示方法、及び情報提示処理プログラム
JP2004533736A (ja) 双方向テレビジョンでの表示のためにコンテンツを再フォーマットする方法及び装置
JP2010518508A5 (ko)
US9141724B2 (en) Transcoder hinting
US9823805B1 (en) Presentation browser
EP1041497B1 (en) Information fetching control scheme using data type dependent strategy for reducing user response time
WO2010062761A1 (en) Method and system for transforming and delivering video file content for mobile devices
AU765232B2 (en) Methods, apparatus, and systems for storing, retrieving and playing multimedia data
KR20020003856A (ko) 콘텐트 분석 및 최소화를 위한 시스템 및 방법
TW473673B (en) Method and apparatus for compressing scripting language content
US20040148637A1 (en) Method and system for literal data access
EP1271956A1 (en) Method and system for the conversion of XHTML/HTML documents to MPEG-4 documents
Coulombe et al. Content adaptation for the mobile internet

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