KR101117396B1 - 원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼 - Google Patents

원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼 Download PDF

Info

Publication number
KR101117396B1
KR101117396B1 KR1020097008781A KR20097008781A KR101117396B1 KR 101117396 B1 KR101117396 B1 KR 101117396B1 KR 1020097008781 A KR1020097008781 A KR 1020097008781A KR 20097008781 A KR20097008781 A KR 20097008781A KR 101117396 B1 KR101117396 B1 KR 101117396B1
Authority
KR
South Korea
Prior art keywords
document
remote device
rendering
display
temporary
Prior art date
Application number
KR1020097008781A
Other languages
English (en)
Other versions
KR20090077807A (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 KR20090077807A publication Critical patent/KR20090077807A/ko
Application granted granted Critical
Publication of KR101117396B1 publication Critical patent/KR101117396B1/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
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/114Pagination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

마크업 언어(ML) 다큐먼트를, 목표 원격 디바이스에 의한 디스플레이를 위해 후속하여 제공되는 디바이스 특정 언어의 다큐먼트로 맞춤 렌더링하는 플랫폼이 개시된다. 목표 원격 디바이스 및 ML 다큐먼트에 대한 렌더링 콘텍스트는, 목표 원격 디바이스에 의한 디스플레이를 위해 후속하여 전달되는 페이지에 페이지 매김을 하고 완전히 렌더링할 수 있는 프로세스를 수행하는 플랫폼에 의해 수신된다. 디바이스 특정 언어 다큐먼트에 대해 미디어 아이템의 추가 프로세싱을 수행하기 위해 포스트 렌더링 프로세서도 제공될 수 있다. 이러한 추가의 프로세싱은 디바이스 특정 언어 다큐먼트의 페이지에 미디어 아이템을 임베드하거나 그 페이지로의 링크를 포함하는 것을 포함할 수 있다. 원격 디바이스는 네트워크를 통해 유선 및/또는 무선 통신을 제공하는 클라이언트 디바이스로서 배열될 수 있다.
마크업 언어, 다큐먼트, 원격 디바이스, 디스플레이, 렌더링, 플랫폼, 페이지 매김

Description

원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼{PLATFORM FOR RENDERING CONTENT FOR A REMOTE DEVICE}
본 출원은 2006년 9월 29일 출원된 미국 출원 번호 제11/537,593호를 우선권 주장하며, 그 전체가 본 명세서에 참조로서 인용된다.
본 발명은 일반적으로 네트워크를 통하여 콘텐츠를 제공하는 것에 관한 것으로, 보다 상세하게는 개별 소스로부터의 콘텐츠를 특정의 원격 위치된 디바이스와 함께 사용하기 위해 렌더링되도록 하는 것에 관한 것이다.
최근 조사에 의하면 세계에 이동 전화 같은 이동 디바이스가 10,000개 이상의 상이한 모델이 있다. 성장하는 이동 디바이스의 인기에 대처하기 위해, 시장에는 매주 수십가지의 새로운 모델이 도입되고 있다. 또한, 전세계에는 콘텐츠를 이동 디바이스 또는 다른 원격 위치된 디바이스에 제공하기 위해 서로 다른 능력을 갖는 다양한 무선 서비스 및 통신 링크를 인에이블하는 수백개의 상이한 캐리어가 존재한다. 결국, 목표하는 원격 디바이스 및/또는 캐리어와 함께 사용하기 위해 콘텐츠를 제공하고 렌더링하는 콘텍스트는 폭넓게 변할 수 있다.
예를 들면, 디스플레이 스크린에 대하여 표준 크기 또는 컬러 팔레트가 존재하지 않는다. 결국, 어느 크기의 컬러 디스플레이와 사용하기 위해 렌더링되는 콘 텐츠는 상이한 크기의 모노크롬 디스플레이에 의해, 만약 그렇다 해도, 정확히 표시할 수 있거나 혹은 그렇지 못할 수도 있다. 또한, 캐리어에 의해 개인 고객에게 제공되는 상이한 통신 링크의 용량 및 신뢰성은 원격 디바이스 상의 디스플레이에 대하여 콘텐츠의 정확하고 적절한 렌더링에 상당한 영향을 미칠 수 있다. 부가적으로, 브라우저같은 클라이언트 애플리케이션에서 일반적인 동작 및 공지된 버그는 상당히 다를 수 있다. 또한, 개발자는 콘텐츠를, 목표로 하는 원격 디바이스 상의 디스플레이를 위해 콘텐츠를 정확히 렌더링하는데 고려되어야 하는 파라미터들을 갖는 하나 이상의 상이한 언어로 작성할 수 있다.
다음의 도면을 참조하여 제한적이지 않고 예시적인 본 발명의 실시예를 설명한다. 도면에서, 유사한 참조 부호는 달리 특정되지 않는다면 다양한 도면에 걸쳐 유사한 부분을 지칭한다.
본 발명의 보다 나은 이해를 위해, 첨부 도면과 결합하여 읽게될 실시예의 상세한 설명이 참조될 것이다.
도 1은 본 발명이 실시될 수 있는 예시적 시스템의 일 실시예의 도면을 도시한다.
도 2는 예시적 이동 디바이스의 일 실시예를 도시한다.
도 3은 예시적 네트워크 디바이스의 일 실시예를 도시한다.
도 4는 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어(markup language) 다큐먼트를 렌더링하는 예시적 플랫폼의 일 실시예를 도시한다.
도 5a는 목표 원격 디바이스에 의한 디스플레이를 위해 파이프라인(pipelined) 스테이지를 채용하여 마크업 언어 다큐먼트를 렌더링하는 예시적 플랫폼의 또 다른 실시예를 도시한다.
도 5b는 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트를 렌더링하도록 플랫폼으로 사용되는 예시적 파이프라인 스테이지의 일 실시예를 도시한다.
도 6은 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트를 렌더링하도록 플랫폼을 인에이블하는 모듈에 대한 예시적 클래스 트리의 또 다른 실시예를 도시한다.
도 7은 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트를 렌더링하도록 플랫폼을 일반적으로 채용하는 프로세스의 개관을 도시한다.
도 8은 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트를 렌더링하는 플랫폼을 채용하는 프로세스의 개관을 도시한다.
도 9는 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트의 렌더링을 인에이블하는 모듈에 대한 클래스 트리를 채용하는 프로세스의 개관을 도시한다.
도 10은 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트를 렌더링하는 파이프라인 스테이지에 대한 프로세스를 도시한다.
도 11a는 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트의 렌더링을 파이프라인 처리하기 위해 일시 ID 및 인덱스를 채용하는 프로세스 를 도시한다.
도 11b는 본 발명에 따른, 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어 다큐먼트를 렌더링하기 위해 일시 ID 및 일시 인덱스를 채용하는 프로세스를 도시한다.
본 발명은 본 명세서의 일부를 형성하고 본 발명이 실시될 수 있는 특정의 예시적 실시예를 예로서 도시하는 첨부 도면을 참조하여 이후에 보다 상세히 설명될 것이다. 그러나, 본 발명은 많은 상이한 형태로 구체화될 수 있고, 본 명세서에서 설명되는 실시예에 한정되는 것으로 해석되어서는 안된다; 오히려 이들 실시예는 본 개시물이 철저히 완벽해지도록 하고 본 발명의 범위를 당업자에게 충분히 전달되도록 제공된다. 특히, 본 발명은 방법 또는 디바이스로서 구체화될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예, 또는 소프트웨어 및 하드웨어 양상을 결합한 실시예의 형태를 취할 수 있다. 따라서, 후술하는 상세한 설명은 한정적인 것으로 간주되어서는 안된다.
명세서 및 청구범위에 걸쳐, 다음의 용어들은 문맥에서 달리 명확하게 지정하지 않는 한 본 명세서에 명시적으로 관계된 의미를 갖는다. 본 명세서에서 사용되는 바와 같이 어구 "일 실시예에서"는, 동일할지라도, 반드시 동일한 실시예를 지칭할 필요는 없다. 또한, 본 명세서에서 사용되는 바와 같이 어구 "또 다른 실시예에서"는, 다를지라도, 반드시 다른 실시예를 지칭할 필요는 없다. 따라서, 후술하는 바와 같이, 본 발명의 다양한 실시예는 본 발명의 사상 및 범위를 벗어나지 않고 용이하게 결합될 수 있다.
또한, 본 명세서에서 사용되는 바와 같이, 용어 "또는"은 포괄적 "또는" 연산자이고, 문맥에서 달리 명확히 지정하지 않는 한 용어 "및/또는"과 등가이다. 용어 "기초하여"는 배타적이 아니고, 문맥에서 달리 명확히 지정하지 않는 한, 설명되지 않은 부가의 인자에 기초하는 것으로 고려한다. 또한, 명세서에 걸쳐, 단수는 복수를 포함한다. "~에"의 의미는 "~내에" 및 "~에"를 포함한다.
본 명세서에 사용되는 바와 같이, 디바이스 또는 컴포넌트로부터 요청, 응답 또는 다른 메시지 같은 아이템을 "수신한다"는 용어는 하나 이상의 다른 디바이스 또는 컴포넌트에 의해 포워드될 때와 같이 메시지를 간접적으로 수신하는 것을 포함한다. 유사하게, 디바이스 또는 컴포넌트로 아이템을 "전송한다"는 것은 하나 이상의 다른 디바이스 또는 컴포넌트에 의해 포워드될 때와 같이 아이템을 간접적으로 전송하는 것을 포함한다.
본 명세서에서 사용되는 바와 같이, 용어 "MIN(mobile identification number)"는 이동 캐리어의 네트워크 내에 있는 이동 디바이스를 고유하게 식별하는 번호를 지칭한다. 셀룰라 전화기의 전화번호를 MIN으로서 사용할 수도 있다.
본 명세서에서 사용되는 바와 같이, 용어 "이동 클라이언트 애플리케이션"은 이동 디바이스 상에서 실행되는 애플리케이션을 지칭한다. 이동 클라이언트 애플리케이션은 하나 이상의 다양한 언어, 예를 들면, 'C', 'C++', 'J2ME', 'Brew', Java 등으로 기록될 수 있다. 이동 클라이언트 애플리케이션의 예로서, 브라우저, 이메일 클라이언트, 텍스트 메시징 클라이언트, 캘린더 및 게임이 있다.
본 명세서에서 사용되는 바와 같이, 용어 "네트워크 애플리케이션"은 네트워크를 통해 적어도 하나의 다른 컴포넌트와 직간접적으로 통신하는 컴퓨터 기반 애플리케이션을 지칭한다. 네트워크 애플리케이션의 예로서, 웹 사이트, 이메일 서버, 메시징 서버, 및 게임 서버가 있다.
본 명세서에서 사용되는 바와 같이, 용어 "URI(uniform resource identifier)"는 앱스트랙트(abstract) 또는 물리 리소스를 식별하는데 사용되는 식별자를 지칭한다. 용어 URI는 URL(uniform resource locator) 및 URN(uniform resource name)을 포함한다. RFC 3986은 URI의 신택스(syntax)를 설명한다. 본 명세서에서 사용되는 바와 같이, 용어 URI는 그러한 신택스에 한정되는 것은 아니고 다른 신택스들을 포함할 수 있다.
간략히 하면, 본 발명은 원격 디바이스에 의한 후속 디스플레이를 위해 네트워크를 통해 제공된 마크업 언어 페이지의 맞춤화된 렌더링을 위한 플랫폼에 관한 것이다. 목표 원격 디바이스 및 마크업 언어(ML) 다큐먼트에 대한 렌더링 콘텍스트가 플랫폼에서 수신되며, 이 플랫폼은 페이지를 디바이스 특정 언어로 페이지를 매기거나 완전히 렌더링할 수 있는 프로세스를 인에이블한다. 디바이스 특정 언어 다큐먼트는 목표 원격 디바이스에 의한 디스플레이를 위해 후속하여 전달된다. 디바이스 특정 언어로 다큐먼트에 대한 미디어 아이템의 부가 처리를 위한 포스트-렌더링(post-rendering) 프로세스 또한 제공될 수 있다. 이러한 부가 처리는 이미지를 검색해서 디바이스 특정 다큐먼트의 페이지에 임베드되는(embeded) 것을 포함할 수 있다. 예를 들면, 페이지가 디바이스 특정 언어로 렌더링되고 이미지로의 링크 를 포함한다면, 포스트-프로세싱 컴포넌트는 이미지를 검색해서 페이지 내에 베이스 64 인코딩된 데이터 또는 다른 포맷으로서 임베드될 수 있다. 이러한 포스트 프로세싱은 또한 미디어 아이템으로의 링크, 예를 들면, 목표 원격 디바이스에 의한 디스플레이에 적절한 GIF 또는 JPEG 같은 디바이스 특정 포맷으로 특정 위치에 저장된 이미지 파일로의 링크를 디바이스 특정 언어 다큐먼트에 재기입하는 것을 제공할 수 있다. 플랫폼은 마크업 언어 불가지론이고 맞춤(custom) 렌더링 프로세스에서 템플릿을 채용할 수 있다. 또한, 적어도 하나의 실시예에서, 원격 디바이스는 네트워크를 통해 유선 및/또는 무선 통신을 제공하는 클라이언트 디바이스로서 배치된다.
마크업 언어 다큐먼트는 SMGL(Standard Generalized Markup Language), HTML(HyperText Markup Language), XML(eXtensible Markup Language) 등 - 이에 한정되는 것은 아님 -을 포함하는, 임의의 가상적인 표준 또는 비표준 포맷으로 제공될 수 있다. 부가하여, 원격 디바이스에 대한 디바이스 특정 언어는, 이에 한정되는 것은 아님, HDML(Handheld Device Markup Language), WML(Wireless Markup Language), WMLScript, cHTML(Compact HTML), XHTML(eXtensible HTML) 등을 포함할 수 있지만, 이에 한정되는 것은 아니다.
적어도 하나의 실시예에서, ML 다큐먼트는 목표 원격 디바이스와는 독립적인 모듈을 포함하는 MML(mobile Mark Up Language)로 플랫폼에 제공될 수 있다. 이 경우, 플랫폼은 MML 모듈을 식별하고 포함된 모듈에 기초하여 클래스의 트리를 예시하도록 MML 다큐먼트를 판독한다(walk). 플랫폼과 같은 리소스는, 목표 원격 디 바이스에 의한 후속 디스플레이를 위해 완전히 렌더링된 MML 다큐먼트가 제공될 수 있도록 트리를 후속하여 분해한다(resolve).
렌더링 콘텍스트는, 플랫폼에 의해 채용되어 특정한 원격 디바이스로 디스플레이하기 위해 ML 다큐먼트에 각 페이지의 렌더링을 최적화하는 데이터 및 다양한 파라미터를 포함하는 데이터 구조로서 배열될 수 있다. 렌더링 콘텍스트는 일반적으로 개별 애플리케이션, 플랫폼, 또는 콘텐츠 제공자에 의해 관리될 수 있는 프로세스, 캐리어, 및/또는 또 다른 제3자 서비스에 의해 플랫폼에 제공된다. 원격 디바이스에 대한 렌더링 콘텍스트는 스크린 크기, 컬러 능력, 마크업 언어의 유형, 브라우저 애플리케이션, 이동 디바이스 또는 네트워크 게이트웨이의 소프트웨어 또는 하드웨어 버전에서의 공지된 버그 등을 포함할 수 있지만, 이에 한정 되는 것은 아니다. 또한, 플랫폼은 다양한 원격 디바이스 및 네트워크 캐리어의 속성에 관련된 구성 데이터 및 그 구성 데이터를 저장하고 검색하는 방법을 저장할 수 있다. 적어도 하나의 실시예에서, 목표 원격 디바이스에 대한 렌더링 콘텍스트와 관계된 파라미터 및/또는 데이터의 저장 및 검색은 HTTP 쿠키에 제공된다.
ML 다큐먼트를 디바이스 특정 언어 다큐먼트에 렌더링하는 것은 복수의 상이한 프로세스를 포함하는데, (1) 목표 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정, (2) 관련없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheets; CSS)를 축소, (3) 이들을 해체하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화(fontifying), (4) 목표 원격 디바이스와 관계없는 임의의 ML 코드를 제거하여 ML 다큐먼트를 간소 화(shrinking), (5) 페이지에 임베드되거나 링크되도록 각 미디어의 하나 이상의 속성을 특정화, (6) 각 페이지 크기를 추정하여 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 크지 않은 크기로 ML 다큐먼트 페이지에 다시 페이지를 매김, (7) 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 더 크게 렌더링될 것으로 추정되는 페이지에 ML 코드를 짜깁기(tailoring)/제거, 및/또는 (8) 콘텐츠 및/또는 세션 식별 정보의 위치를 포함하도록 페이지에 URLs을 재기입하는 것을 포함한다.
목표 원격 디바이스에 대해 ML 다큐먼트의 페이지를 렌더링하는 것은 다큐먼트 내에 링크 또는 URI를 재기입하는 것을 포함한다. 예를 들면, ML 다큐먼트가 이미지로의 링크를 하나의 포맷으로 포함하는 경우, 목표 원격 디바이스가 제1 포맷을 표시할 수 없다면, 이 링크는 다른 이미지에 대하여 제2 포맷으로 수정될 수 있다. 링크는 또한, 그 링크를 사용하는 새로운 요청이 세션 식별자를 리턴하도록, 계속 세션을 식별하기 위한 값과 같은 파라미터를 포함하도록 재기입될 수도 있다.
부가적으로, 복수의 상이한 프로세스 중 적어도 하나에 의해 마크업 언어 다큐먼트의 고속 및/또는 효과적인 렌더링을 용이하게 하기 위해, 일시 MLID(temporary Markup Language identification)를 기존 MLID를 아직 갖고 있지 않은 다큐먼트의 페이지에 있는 각각의 고유 스트링에 부가할 수 있다. 일시 인덱스는 각각의 기존 일시 MLID에 대하여 구축될 수 있는데, 이는 ML 다큐먼트에 있는 대응 요소(고유 스트링)을 빠르게 착고 렌더링하도록 목수의 프로세스에 의해 사용 될 수 있다. 렌더링이 디바이스 특정 언어로 완료되기만 하면, 일시 MLID 및 일시 인덱스는 제거될 수 있다. 일시 MLID 및 일시 인덱스를 사용함으로써, 특정 프로세스가 목표 원격 디바이스에 대한 디바이스 특정 언어 다큐먼트로 부분을 렌더링하기 위해 모든 ML 다큐먼트를 파싱하는(parse) 가능성을 줄일 수 있다. 또한, 적어도 하나의 실시예에서, 일시 MLID는 XMLID이다.
예시적 동작 환경
도 1은 본 발명이 실시될 수 있는 환경의 일 실시예의 컴포넌트를 도시한다. 본 발명을 실시하는 데에 모든 컴포넌트들이 요구되는 것은 아닐 수 있으며, 본 발명의 정신 또는 범주를 벗어나지 않고 이 구성 및 컴포넌트 유형의 변경이 행해질 수 있다. 도시된 바와 같이, 도 1의 시스템(100)은 근거리 통신망("LAN")/원거리 통신망("WAN") - (네트워크)(105), 무선 네트워크(110), 콘텐츠 렌더링 플랫폼(106), 모바일 디바이스(클라이언트 디바이스)(102-104), 및 클라이언트 디바이스(101) 및 콘텐츠 제공자(107)를 포함한다.
모바일 디바이스들(102-103)의 일 실시예에 대해서는 도 2와 결부되어 이하에 보다 상세히 설명된다. 그러나, 일반적으로는, 모바일 디바이스들(102-104)은, 네트워크(105), 무선 네트워크(110) 등과 같은 네트워크를 통해 메시지를 수신 및 전송할 수 있는 가상의 어떠한 휴대용 컴퓨팅 디바이스라도 포함할 수 있다. 모바일 디바이스들(102-104)은 또한, 일반적으로 휴대가능하게 되도록 구성되는 클라이언트 디바이스들로서 기술될 수 있다. 따라서, 모바일 디바이스들(102-104)은, 다른 컴퓨팅 디바이스에 접속될 수 있으며 정보를 수신할 수 있는 가상의 어떠한 휴 대용 컴퓨팅 디바이스라도 포함할 수 있다. 이러한 디바이스들은, 셀룰라 전화, 스마트 폰, 디스플레이 호출기, 무선 주파수(RF) 디바이스, 적외선(IR) 디바이스, PDA(Personal Digital Assistant), 핸드헬드 컴퓨터, 랩탑 컴퓨터, 착용가능 컴퓨터, 테블릿 컴퓨터, 전술한 디바이스들 중 하나 이상을 결합시킨 통합 디바이스 등의 휴대용 디바이스들을 포함한다. 그러한 것으로서, 모바일 디바이스들(102-104)은 일반적으로 능력 및 기능 면에서 광범위하다. 예를 들면, 셀 폰은 수치 키패드, 및 텍스트만이 디스플레이될 수 있는 소수 라인의 모노크롬 LCD 디스플레이를 가질 수 있다. 다른 예에서는, 웹 가능 모바일 디바이스는 터치 감응식 스크린, 스타일러스, 및 텍스트 및 그래픽 양쪽 모두가 디스플레이될 수 있는 여러 라인의 컬러 LCD 디스플레이를 가질 수 있다.
웹 가능 모바일 디바이스는, 웹 페이지, 웹 기반 메시지 등을 수신하고 전송하도록 구성된 브라우저 애플리케이션을 포함할 수 있다. 브라우저 애플리케이션은, 무선 애플리케이션 프로토콜 메시지(WAP)를 비롯한 가상의 임의의 웹 기반 언어를 이용하여 그래픽, 텍스트, 멀티미디어 등을 수신하고 디스플레이하도록 구성될 수 있다. 일 실시예에서, 모바일 디바이스용의 브라우저 애플리케이션은 콘텐츠를 디스플레이하고 메시지를 통신하기 위해, HDML(Handheld Device Markup Language), WML(Wireless Markup Language), WMLScript, JavaScript, SMGL(Standard Generalized Markup Language), HTML(HyperText Markup Language), XML(eXtensible Markup Language) 등을 이용하는 것이 가능하다.
모바일 디바이스들(102-104)은 또한, 다른 컴퓨팅 디바이스로부터 콘텐츠를 수신하도록 구성된 적어도 하나의 다른 클라이언트 애플리케이션을 포함할 수 있다. 클라이언트 애플리케이션은, 텍스트 콘텐츠, 그래픽 콘텐츠, 오디오 콘텐츠 등을 제공 및 수신하는 능력을 포함할 수 있다. 클라이언트 애플리케이션은 또한, 유형, 능력, 명칭 등을 비롯하여, 자신을 식별하는 정보를 제공할 수 있다. 일 실시예에서, 모바일 디바이스들(102-104)은, 전화 번호, MIN(Mobile Identification Number), ESN(electronic serial number), 혹은 그 밖의 다른 모바일 디바이스 식별자를 비롯한 임의의 각종 메카니즘을 통해 자신을 고유하게 식별할 수 있다. 이 정보는 또한, 모바일 디바이스가 이용가능한 콘텐츠 포맷, 모바일 디바이스 제조자, 모델 번호, 디스플레이 컬러, 디스플레이 크기, 인에블된 기능, 및 무선 캐리어를 가리킬 수 있다. 이러한 정보는 메시지 등으로 제공되어서 CRP(106), 클라이언트 디바이스(101), 또는 그 밖의 다른 컴퓨팅 디바이스들에 전송될 수 있다.
모바일 디바이스들(102-104)은 또한, CRP(106), 클라이언트 디바이스(101) 등과 같은 다른 컴퓨팅 디바이스와의 사이에서, 예를 들어 SMS(Short Message Service), MMS(Multimedia Message Service), 인스턴트 메시징(IM), IRC(internet relay chat), mIRC(Mardam-Bey's IRC), Jabber 등을 통해 메시지를 통신하도록 구성될 수 있다. 그러나, 본 발명은 이들 메시지 프로토콜들에 한정되지 않으며, 가상의 어떠한 다른 메시지 프로토콜이라도 이용될 수도 있다.
모바일 디바이스들(102-104)은 또한, 사용자가 IM 세션 등의 통신 세션에 참가할 수 있게 해주도록 구성될 수 있다. 이와 같이, 모바일 디바이스들(102-104)은, 클라이언트 디바이스 대신에 각종 액션들을 관리하도록 구성되는 클라이언트 애플리케이션을 포함할 수 있다. 예를 들면, 클라이언트 애플리케이션은 사용자가 브라우저 애플리케이션, 이메일 애플리케이션, IM 애플리케이션, SMS 애플리케이션 MMS 애플리케이션 등과 상호작용할 수 있게 해줄 수 있다.
모바일 디바이스들(102-104)은 또한, 엔드 유저(end-user)가, 콘텐츠 제공자(107) 등의 다른 컴퓨팅 디바이스에 의해 관리될 수 있는 엔드 유저 계정에 로그인할 수 있게 해주는 클라이언트 애플리케이션을 포함하도록 구성될 수 있다. 이러한 엔드 유저 계정은, 예를 들면, 이 엔드 유저가 이메일을 수신하고 IM 메시지, SMS 메시지, 액세스 선택된 웹 페이지 등을 전송/수신고 사회적 네트워킹 활동에 참가하는 등을 해주도록 구성될 수 있다. 그러나, 각종 사회적 네트워킹 활동에 참가하는 것은 엔드 유저 계정에 로그인하지 않고서도 수행될 수 있다. 또한, 모바일 디바이스(102-104)는 클라이언트 디바이스(101) 등과 같은 비-모바일 클라이언트 디바이스와 통신할 수도 있다.
클라이언트 디바이스(101)는, 네트워크를 통해 사회적 네트워킹 정보 등을 비롯한 정보 등을 전송 및 수신하도록 통신할 수 있는 가상의 어떠한 컴퓨팅 디바이스라도 포함할 수 있다. 이러한 디바이스 세트는, 일반적으로 퍼스널 컴퓨터, 멀티프로세서 시스템, 마이크로프로세서 기반 혹은 프로그램가능 소비자 전자 제품, 네트워크 PC 등과 같은 유선 혹은 무선 통신 매체를 이용하여 전형적으로 접속되는 디바이스들을 포함할 수 있다.
무선 네트워크(110)는, 모바일 디바이스들(102-104) 및 그 컴포넌트들을 네트워크(105)와 연결시키도록 구성된다. 무선 네트워크(110)는, 모바일 디바이스 들(102-104)에 대한 인프라스트럭처 지향의 접속을 제공하기 위해 독립형 애드혹(stand-alone ad-hoc) 네트워크 등을 또한 오버레이(overlay)할 수 있는 임의의 각종 무선 서브-네트워크들을 포함할 수 있다. 이러한 서브-네트워크들은 메시 네트워크, 무선 LAN(WLAN) 네트워크, 셀룰라 네트워크 등을 포함할 수 있다.
무선 네트워크(110)는 또한, 무선 라디오 링크 등에 의해 접속되는 단말기들, 게이트웨이들, 라우터들 등으로 구성된 자율 시스템을 포함할 수 있다. 이들 커넥터들은, 자유롭고 랜덤하게 이동하고 이들 스스로 임의대로 구성하도록 구성되어서, 무선 네트워크(110)의 토폴로지가 신속히 변경될 수 있게 해줄 수 있다.
무선 네트워크(110)는 또한, 셀룰라 시스템, WLAN, WiMax, 무선 라우터(WR) 메시 등에 대한 2세대(2G), 3세대(3G), 4세대(3G) 무선 액세스를 비롯한 복수의 액세스 기술을 이용할 수 있다. 2G, 3G, 3G 등의 액세스 기술들 및 미래의 액세스 네트워크들은, 다양한 이동성을 갖는 모바일 디바이스들(102-104)과 같은 모바일 디바이스들에 대한 넓은 범위의 커버리지(coverage)를 가능하게 해줄 수 있다. 예를 들면, 무선 네트워크(110)는, GSM(Global System for Mobile communication), GPRS(General Packet Radio Services), EDGE(Enhanced Data GSM Environment), WCDMA(Wideband Code Division Multiple Access), UMTS(Universal Mobile Telecommunication Service) 등과 같은 무선 네트워크 액세스를 통한 무선 접속을 가능하게 해줄 수 있다. 본질적으로는, 무선 네트워크(110)는, 모바일 디바이스들(102-104)과 다른 컴퓨팅 디바이스, 네트워크 등 간에 정보가 이동될 수 있는 가상의 어떠한 무선 통신 메카니즘이라도 포함할 수 있다.
네트워크(105)는, CRP(106)와 그 컴포넌트들을, 모바일 디바이스들(102-104), 클라이언트 디바이스(101)를 비롯한 다른 컴퓨팅 디바이스들과 연결시키고, 무선 네트워크(110)를 통해 모바일 디바이스들(102-104)에 연결시키도록 구성된다. 네트워크(105)는, 하나의 전자 디바이스로부터 다른 전자 디바이스로의 정보의 통신을 위한 임의의 형태의 컴퓨터 판독가능 매체를 이용하는 것이 가능하다. 또한, 네트워크(105)는, 예를 들어, USB(universal serial bus) 포트, 그 밖의 다른 형태의 컴퓨터 판독가능 매체, 또는 그들의 임의의 조합을 통한, 근거리 통신망(LAN), 원거리 통신망(WAN), 직접 접속 외에도 인터넷을 포함할 수 있다. 서로 다른 아키텍처들 및 프로토콜들에 기초한 것을 비롯하여 상호접속된 LAN 세트에 기초하여, 라우터는 LAN 들 간의 링크로서 동작하여서, 메시지들이 서로 간에 전송될 수 있게 해준다. 또한, LAN들 내에서의 통신 링크들은 일반적으로, 트위스트 배선 쌍 또는 동축 케이블을 포함하는 한편, 네트워크들 간의 통신 링크들은 아날로그 전화 회선, T1, T2, T3, 및 T4를 포함하는 풀 혹은 프랙셔널 지정 디지털 회선들(full or fractional dedicated digital lines), ISDN(Integrated Services Digital Network), DSL(Digital Subscriber Lines), 위성 링크를 포함하는 무선 링크, 혹은 본 기술 분야에 통상의 지식을 가진 자에게 공지된 그 밖의 통신 링크들을 이용할 수 있다. 또한, 원격 컴퓨터들 및 그 밖의 관련 전자 디바이스들은 모뎀 및 임시 전화 회선을 통해 LAN 또는 WAN에 원격으로 연결될 수 있다. 본질적으로는, 네트워크(105)는, 정보가 CRP(106), 클라이언트 디바이스(101), 및 그 밖의 컴퓨팅 디바이스들 사이에서 송수신될 수 있는 임의의 통신 방법을 포함한다.
또한, 통신 매체는 일반적으로, 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 반송파, 데이터 신호, 혹은 그 밖의 전송 메카니즘 등의 변조된 데이터 신호 내의 그 밖의 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호" 및 "반송파 신호"라는 용어는, 자신의 특성을 나하 이상 설정했거나, 정보, 인스트럭션, 데이터 등을 신호로 인코딩하는 방식으로 변경된 신호를 포함하는 것이다. 예를 들면, 통신 매체는, 트위스트 배선 쌍, 동축 케이블, 광섬유, 도파관, 및 그 밖의 유선 매체 등의 유선 매체와, 음향, RF, 적외선 등의 무선 매체 및 그 밖의 무선 매체를 포함한다.
CRP(106)의 일 실시예에 대해 도 3과 결부하여 이하에 보다 상세히 설명한다. 그러나, 간략하게 말하면, CRP(106)은, 네트워크(105)에 접속되어 언어 불가지에 대한 플랫폼이 모바일 디바이스들(102-104)과 클라이언트 디바이스(101)와 같은, 특정 원격 디바이스에 의한 후속 디스플레이를 위해 페이지 및 마크업 언어 템플릿의 렌덩링을 가능하게 하는 어떠한 컴퓨팅 디바이스라도 포함할 수 있다. 특정 원격 디바이스에 대한 렌더링 콘텍스트 및 마크업 언어 다큐먼트는, 후속하여 특정 원격 디바이스에 전달되고 그에 의해 표시되는 디바이스 특정 언어로 다큐먼트를 생성하도록 모두를 처리하는 플랫폼에 의해 수신된다. CRP(106)로서 동작할 수 있는 디바이스들은 퍼스널 컴퓨터 데스크탑 컴퓨터, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 소비자 전자기기, 네트워크 PC, 서버 등을 포함한다.
도 1이 CRP(106)를 단일 컴퓨팅 디바이스로서 도시하고 있지만, 본 발명은 이에 제한되지 않는다. 예를 들면, CRP(106)의 하나 이상의 기능은 하나 이상의 개별적인 네트워크 디바이스에 걸쳐 분산되어 있을 수 있다. 예를 들면, 콘텐츠 렌더링 등은 본 발명의 사상 및 범주를 벗어나지 않으면서 복수의 컴퓨팅 디바이스에 의해 수행될 수 있다.
콘텐츠 제공자(107) 또한 콘텐츠를 원격 디바이스에 제공하는데 사용되는 다양한 서비스를 포함할 수 있다. 그런한 서비스는, 웹 서비스에 한정되는 것은 아니고, 제3자 서비스, 오디오 서비스, 비디오 서비스, 이메일 서비스, IM 서비스, SMS 서비스, MMS 서비스, VOIP 서비스, 비디오 게임 서비스, 게임 서비스, 캘린더링 서비스, 쇼핑 서비스, 포토 서비스 등을 포함한다. 콘텐츠 제공자(107)로서 동작할 수 있는 디바이스들은 퍼스널 컴퓨터 데스크탑 컴퓨터, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 소비자 전자기기, 네트워크 PC, 서버 등을 포함한다.
예시적인 모바일 디바이스
도 2는 본 발명을 구현하는 시스템 내에 포함될 수 있는 모바일 디바이스(200)의 일 실시예를 나타낸 도면이다. 모바일 디바이스(200)는, 도 2에 도시된 것보다 더 많거나 더 적은 컴포넌트들을 포함할 수 있다. 그러나, 도시된 컴포넌트들은, 본 발명을 실시하기 위한 예시적인 실시예를 개시하기에 충분하다. 모바일 디바이스(200)는, 예를 들면, 도 1의 모바일 디바이스들(102-104)을 나타낼 수 있다.
도면에 도시된 바와 같이, 모바일 디바이스(200)는 버스(224)를 통해 대용량 메모리(230)와 통신하는 처리 유닛(CPU)(222)를 포함한다. 모바일 디바이스(200)는 또한, 전원(226), 하나 이상의 네트워크 인터페이스(250), 오디오 인터페이스(252), 디스플레이(254), 키패드(256), 조명기(258), 입/출력 인터페이스(260), 햅틱(haptic) 인터페이스(262), 및 선택적 GPS(global positioning system) 수신기(264)를 포함한다. 전원(226)은 전력을 모바일 디바이스(200)에 공급한다. 재충전가능하거나 혹은 재충전가능하지 않은 배터리가 전력을 공급하는 데에 이용될 수 있다. 전력은 또한, 배터리를 보충하고/보충하거나 재충전하는 전력 도킹 크레이들 또는 AC 어댑터 등의 외부 전원에 의해 공급될 수도 있다.
모바일 디바이스(200)는 선택적으로 기지국(도시하지 않음)과 통신할 수 있으며, 혹은 다른 컴퓨팅 디바이스와 직접 통신할 수 있다. 네트워크 인터페이스(250)는, 모바일 디바이스(200)를 하나 이상의 네트워크에 결합시키기 위한 회로를 포함하며, GSM(global system for mobile communication), CDMA(code division multiple access), WCDMA(wide CDMA), TDMA(time division multiple access), UMTS(universal mobile telephone service), UDP(user datagram protocol), TCP/IP(transmission control protocol/Internet protocol), SMS, GPRS(general packet radio service), WAP, UWB(ultra wide band), IEEE 802.16 WiMax(Worldwide Interoperability for Microwave Access), SIP/RTP, 혹은 각종 다른 무선 통신 프로토콜들 중 임의의 프로토콜을 비롯한(이에 제한되는 것은 아님) 하나 이상의 통신 프로토콜 및 기술들을 이용하도록 구성된다. 네트워크 인터페이스(250)는 때때로, 트랜시버, 트랜시빙 디바이스, 혹은 네트워크 인터페이스 카드(NIC)로서 알려 져 있다.
오디오 인터페이스(252)는, 인간의 목소리의 사운드 등의 오디오 신호들을 생성 및 수신하도록 구성된다. 예를 들면, 오디오 인터페이스(252)는 스피커 및 마이크로폰(도시하지 않음)에 결합되어서 다른 것들과의 원격 통신을 가능하게 해주며/해주거나 소정의 액션에 대한 오디오 액크놀리지먼트(acknowledgement)를 생성할 수 있다. 디스플레이(254)는, 액정 디스플레이(LCD), 가스 플라즈마, 발광 다이오드(LED), 혹은 컴퓨팅 디바이스와 사용되는 임의의 다른 유형의 디스플레이일 수 있다. 디스플레이(254)는 또한, 스타일러스 혹은 인간 손의 손가락 등의 객체로부터 입력을 수신하도록 구성된 터치 감응식 스크린을 포함할 수 있다.
키패드(256)는, 사용자로부터의 입력을 수신하도록 구성된 임의의 입력 디바이스를 포함할 수 있다. 예를 들면, 키패드(256)는 푸시 버튼 수치 다이얼 혹은 키보드를 포함할 수 있다. 키패드(256)는 또한, 이미지들을 선택하고 전송하는 것과 연관되어 있는 커맨드 버튼들을 포함할 수 있다. 조명기(258)는 상태 표시 및/또는 광을 제공할 수 있다. 조명기(258)는 특정 시간 주기 동안 혹은 이벤트에 응답하여 액티브 상태를 유지할 수 있다. 예를 들면, 조명기(258)가 액티브 상태일 때, 키패드(256) 상의 버튼들을 백라이팅(backlighting)하고 클라이언트 디바이스에 전력이 공급되는 동안 그 상태를 유지할 수 있다. 또한, 조명기(258)는, 다른 클라이언트 디바이스에 다이얼링하는 등의 특정 액션들이 수행될 때 다양한 패턴으로 이들 버튼들을 백라이팅할 수 있다. 조명기(258)는 또한, 클라이언트 디바이스의 투명 혹은 반투명 케이스 내에 위치된 광원들이 액션들에 응답하여 조명하도록 할 수 있다.
모바일 디바이스(200)는 또한, 헤드셋, 혹은 도 2에 도시되지 않은 다른 입력 혹은 출력 디바이스들 등의 외부 디바이스들과의 통신을 위한 입/출력 인터페이스(260)를 포함한다. 입/출력 인터페이스(260)는, USB, 적외선, BluetoothTM 등과 같은 하나 이상의 통신 기술들을 이용할 수 있다. 햅틱(haptic) 인터페이스(262)는, 촉각적 피드백을 클라이언트 디바이스의 사용자에게 제공하도록 구성된다. 예를 들면, 햅틱 인터페이스는, 컴퓨팅 디바이스의 다른 사용자가 호출할 때 특별한 방식으로 모바일 디바이스(200)를 진동시키도록 이용될 수 있다.
선택적 GPS 트랜시버(264)는, 지구의 표면 상에서의 모바일 디바이스(200)의 물리적 좌표를 결정할 수 있으며, 이는 일반적으로 위치를 위도 및 경도 값들로서 출력한다. GPS 트랜시버(264)는 또한, 지구의 표면 상에서의 모바일 디바이스(200)의 물리적 위치를 추가로 결정하기 위해, 3각 측량, AGPS(assisted GPS), E-OTD, CI, SAI, ETA, BSS 등을 비롯한(이에 제한되지는 않음) 그 밖의 다른 지리적 위치탐색 메카니즘을 이용할 수 있다. 서로 다른 조건하에서, GPS 트랜시버(264)는 모바일 디바이스(200)에 대해 밀리미터(millimeters) 내에서 물리적 위치를 결정할 수 있으며; 다른 경우들에서는, 이 판정된 물리적 위치는 덜 정확할 수 있다(예를 들면, 일 미터 혹은 현저하게 더 큰 거리 내에 있을 수 있음). 그러나, 일 실시예에서, 모바일 디바이스는 그 밖의 다른 컴포넌트들을 통해, 예를 들어 MAC 어드레스, IP 어드레스 등을 비롯한, 디바이스의 물리적 위치를 결정하는 데에 이용될 수 있는 그 밖의 다른 정보를 제공할 수 있다.
대용량 메모리(230)는 RAM(232), ROM(234), 및 그 밖의 다른 저장 수단을 포함한다. 대용량 메모리(230)는, 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보의 저장을 위한 컴퓨터 저장 매체의 다른 예이다. 대용량 메모리(230)는, 모바일 디바이스(200)의 저레벨 동작을 제어하기 위한 기본 입/출력 시스템("BIOS")(204)을 저장하고 있다. 이 대용량 메모리는 또한, 모바일 디바이스(200)의 동작을 제어하기 위한 운영 체제(241)를 저장하고 있다. 이 컴포넌트는, UNIX 혹은 LINUXTM 버전 등의 범용 운영 체제, 혹은 Windows MobileTM, 혹은 Symbian? 운영 체제 등의 특수 클라이언트 통신 운영 체제를 포함할 수 있다. 운영 체제는, 자바 애플리케이션 프로그램들을 통한 하드웨어 컴포넌트들 및/또는 운영 체제 동작들의 제어를 가능하게 해주는 자바 가상 머신 모듈을 포함하거나 혹은 이와 인터페이싱할 수 있다.
메모리(230)는 또한, 무엇보다도, 애플리케이션(242) 및/또는 그 밖의 다른 데이터를 저장하도록 모바일 디바이스(200)에 의해 이용될 수 있는 하나 이상의 데이터 저장디바이스(244)를 포함한다. 예를 들면, 데이터 저장디바이스(244)는 또한, 모바일 디바이스(200)의 다양한 능력들을 기술하는 정보를 저장하는 데에 사용될 수 있다. 그 정보는 그 후, 각종 이벤트들(통신 동안 헤더의 일부로서 전송되는 것, 요구시 전송되는 것 등을 포함함) 중 임의의 이벤트에 기초하여 다른 디바이스에 제공될 수 있다.
애플리케이션들(242)은, 모바일 디바이스(200)에 의해 실행될 때, 메시지(예를 들면, SMS, MMS, IM, 이메일, 및/또는 다른 메시지), 오디오, 비디오를 송신, 수신, 및/또는 처리하고 다른 클라이언트 디바이스의 다른 사용자와의 원격 통신을 가능케 해주는 컴퓨터 실행가능 인스트럭션들을 포함할 수 있다. 애플리케이션 프로그램들의 다른 예들은, 캘린더, 브라우저, 이메일 클라이언트, IM 매플리케이션, SMS 애플리케이션, VOIP 애플리케이션, 컨택트 매니저, 태스크 매니저, 트랜스코더, 데이타베이스 프로그램, 워드 프로세싱 프로그램, 보안 애플리케이션, 스프레드시트 프로그램, 비디오 게임, 검색 프로그램, 쇼핑 카트 프로그램 등을 포함한다. 애플리케이션(242)은 브라우저(245)를 더 포함할 수 있다.
브라우저(245)는 콘텐츠 제공자(107)로부터 CRP(106)에 의해 제공된 렌더링된 콘텐츠를 수신하여 그 렌더링된 콘텐츠를 디스플레이하도록 구성될 수 있다. 또한, 브라우저(245)는 모바일 디바이스(200)의 사용자가 렌더링된 콘텐츠에 의해 표시된 서로 다른 액션들을 선택하도록 할 수 있다. 적어도 하나의 실시예에서, 브라우저(245)는 유저가 구매하기 위한 하나 이상의 제품을 선택하고, 콘텐츠를 검색하며 그 결과를 표시하고, 모바일 전화 디바이스를 호출하고, 메시지를 표시 및 그에 응답하는 등을 하도록 할 수 있다. 모바일 디바이스 상의 표시를 위해 콘텐츠를 렌더링하기 위한 다양한 실시예가 이하에 더 상세히 설명된다.
예시적인 네트워크 디바이스
도 3은 본 발명의 일 실시예에 따른 네트워크 디바이스의 일 실시예를 도시한 도면이다. 네트워크 디바이스(300)는, 도시된 것보다 더 많은 컴포넌트들을 포 함할 수도 있다. 그러나, 도시된 컴포넌트들은, 본 발명을 실시하기 위한 예시적인 실시예를 개시하기에 충분하다. 네트워크 디바이스(300)는, 예를 들면, 도 1의 CRP(106), 클라이언트 디바이스(101) 및/또는 콘텐츠 제공자(107)를 나타낼 수 있다.
네트워크 디바이스(300)는, 처리 유닛(312), 비디오 디스플레이 어댑터(314), 및 대용량 메모리를 포함하며, 이들 모두는 서로 버스(322)를 통해 통신한다. 대용량 메모리는 일반적으로, RAM(316), ROM(332), 및 하드 디스크 드라이브(328), 테이프 드라이브, 광 드라이브, 및/또는 플로피 디스크 드라이브 등의 하나 이상의 영구 대용량 저장 디바이스를 포함한다. 대용량 메모리는, 네트워크 디바이스(300)의 동작을 제어하기 위한 운영 체제(320)를 저장한다. 어떠한 범용 운영 체제라도 이용될 수 있다. 네트워크 디바이스(300)의 저레벨 동작을 제어하기 위한 기본 입/출력 시스템("BIOS")(318)도 또한 제공된다. 도 3에 도시되어 있는 바와 같이, 네트워크 디바이스(300)는 또한, TCP/IP 프로토콜을 비롯한 다양한 통신 프로토콜들에서 이용하도록 구성된 네트워크 인터페이스 유닛(310)을 통해 인터넷, 혹은 소정의 다른 통신 네트워크와 통신할 수 있다. 네트워크 인터페이스 유닛(310)은 종종, 트랜시버, 트랜시빙 디바이스, 혹은 네트워크 인터페이스 카드(NIC)로서 알려져 있다.
전술한 대용량 메모리는 다른 유형의 컴퓨터 판독가능 매체, 즉 컴퓨터 저장 매체를 나타내고 있다. 컴퓨터 저장 매체는, 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 또는 그 밖의 데이터 등의 정보의 저장을 위해 임의의 방법 혹은 기술로 구현된 휘발성, 비휘발성, 이동식, 및 비이동식 매체를 포함할 수 있다. 컴퓨터 저장 메체의 예로는, RAM, ROM, EEPROM, 플래시 메모리 혹은 그 밖의 메모리 기술, CD-ROM, DVD(digital versatile disk), 혹은 그 밖의 광 저장디바이스, 자기 카세트, 자기 테이프, 자기 디스크 저장디바이스 혹은 그 밖의 자기 저장 디바이스, 혹은 원하는 정보를 저장하는 데에 이용될 수 있으며 컴퓨팅 디바이스에 의해 액세스될 수 있는 그 밖의 임의의 매체가 있다.
대용량 메모리는 또한 프로그램 코드 및 데이터를 저장한다. 하나 이상의 애플리케이션(350)이 대용량 메모리에 로딩되고 운영 체제(320) 상에서 실행된다. 애플리케이션 프로그램들의 예에는, 트랜스코더, 스케줄러, 캘린더, 데이타베이스 프로그램, 워드 프로세싱 프로그램, HTTP 프로그램, 맞춤형 사용자 인터페이스 프로그램, IPSec 애플리케이션, 암호화 프로그램, 보안 프로그램, VPN 프로그램, SMS 메시지 서버, IM 메시지 서버, 이메일 서버, 계정 관리 등이 포함될 수 있다. 애플리케이션(350) 내에 애플리케이션 프로그램으로서 콘텐츠 렌더링 플랫폼(CRP; 354)이 포함될 수도 있다.
CRP(354)는 하나 이상의 리소스로부터 마크업 언어 다큐먼트 및 렌더링 콘텍스트 정보를 수신하는 서버 및/또는 플랫폼으로서 구성가능하다. CRP(354)는 목표 원격 디바이스 상에 후속 디스플레이 및/또는 인터액션을 위해 적합한 방식으로, 렌더링 콘텍스트에 적어도 부분적으로 기초하여, 디바이스 특정 언어 다큐먼트로 마크업 언어 다큐먼트를 자동으로 렌더링하고 편집한다.
예시적 플랫폼
도 4는 목표 원격 디바이스 상의 후속 디스플레이를 위해, 복합 마크업 언어(ML) 다큐먼트 및 렌더링 콘텍스트를 채용하여 다큐먼트를 디바이스 특정 언어 다큐먼트로 렌더링하는 플랫폼(400)의 일 실시예의 개관도를 도시한다. 복합 ML 다큐먼트(406)는 보다 많은 ML 코드로 분해될 수 있다. 또한, 렌더링 콘텍스트(404)는 목표 원격 디바이스에 대한 파라미터와 데이터의 특정 조합을 식별하는 고유 식별자를 포함할 수 있다.
한 이상의 다른 서비스, 플랫폼, 및/또는 애플리케이션으로부터, 메인 컴포넌트(402)는 복합 ML 다큐먼트(406) 및 렌더링 콘텍스트(404) 모두를 수신한다. 메인 컴포넌트(402)는 복합 ML 코드를 유효화하고, 렌더링 콘텍스트(404)와 함께 포함된 데이터, 파라미터 및 고유 식별자를 체크한다. 에러가 검출되면, 메인 컴포넌트(402)는, 목표 원격 디바이스 및/또는 그 메인 컴포넌트로의 복합 ML 다큐먼트 제공자에게 제공될 수 있는 그러한 에러의 통지를 제공한다.
적어도 하나의 실시예에서, 복합 ML 다큐먼트는 콘텐츠 제공자, 다른 플랫폼, 및/또는 애플리케이션에 의해 플랫폼(400)에 제공된다. 유사하게, 렌더링 콘텍스트는, 원격 디바이스의 제조자, 원격 디바이스로부터의 메시지에 있는 헤더 정보, 원격 디바이스와 통신 중에 있는 캐리어에 대한 게이트웨이로부터의 정보, 모바일 디바이스용의 소프트웨어 및/또는 하드웨어에 있는 공지된 버그를 비롯하여 하나 이상의 서비스, 플랫폼, 애플리케이션, 및/또는 소스로부터 실시간 및/또는 대역외로 개별적으로 결정된다.
캐시(412)는 복합 ML 다큐먼트에 포함된 코드에 대하여 다큐먼트 객체 모델 트리를 저장하도록 구성된다. 또한, 다큐먼트 객체 모델 트리가 캐시(412)에 초기에 제공되지 않는다면, ML 파서(parser)(410)는 다큐먼트를 파싱하여, 후속하여 캐시에 저장되는 복합 ML 다큐먼트 객체 모델 트리(414)를 작성한다. 어느 경우든, 캐싱된 트리는, 네이티브 ML 태그의 다큐먼트 객체 모델 트리를 생성하는 마크업 확장기(414)로 통과된다. 리소스 관리자(434)는 컴포넌트(436)를 사용하여 명명된(named) 리소스 대체를 가능하게 하고, 컴포넌트(438)를 사용하여 라이브러리로부터 복합 태그를 확장할 수 있게 한다.
마크업 확장기(418)는 네이티브 ML 트리(424)를, 사전분해 프로세스, 예를 들면, 여백 제거 및 목표 원격 디바이스에 의해 후속 디스플레이를 위한 페이지 매김이 수행되는 컨디셔너(426)에 제공한다. 조절된(conditioned) 네이티브 ML 트리는, 컴포넌트(430)가 템플릿의 렌더링을 수행하고 컴포넌트(432)가 캐시에 포함된 태그를 렌더링하는 마크업 리졸버(resolver)(428)에 제공된다. 태그 템플릿은 리소스 관리자(434)와 관계된 컴포넌트(440)에 의해 제공된다. 마크업 리졸버(428)는 초기에 제공된 복합 ML 다큐먼트에 기초하여 다큐먼트를 디바이스 특정 언어로 메인 컴포넌트(402)에 제공한다. 메인 컴포넌트(402)는 목표 원격 디바이스로의 전달을 위해 디바이스 특정 언어 다큐먼트(416)를 후속하여 제공한다.
렌더링은, (1) 목표 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정, (2) 관련없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheets; CSS)를 축소, (3) 이들을 해체하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화(fontifying), (4) 목표 원격 디바이 스와 관계없는 임의의 ML 코드를 제거하여 ML 다큐먼트를 간소화(shrinking), (5) 페이지에 임베드되거나 링크되도록 각 미디어 아이템의 하나 이상의 속성을 특정화, (6) 각 페이지 크기를 추정하여 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 크지 않은 크기로 ML 다큐먼트 페이지에 다시 페이지를 매김, (7) 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 더 크게 렌더링될 것으로 추정되는 페이지에서 ML 코드를 짜깁기(tailoring)/제거, 및 (8) 미디어 아이템 및/또는 세션 식별 정보의 위치를 포함하도록 페이지에 URLs을 재기입하는 것을 비롯하여, ML 다큐먼트를 디바이스 특정 언어 다큐먼트로 완전히 렌더링하는데 기여하는 복수의 복수의 상이한 프로세스를 포함한다.
페이지 매김 프로세스는 일반적으로 마크업 리졸버(428)와 컨디셔너(426)의 결합 동작과 결부되어 수행된다. 렌더링 콘텍스트(404)는 각 페이지에 대하여 목표 원격 디바이스에 의한 유효/최대 페이지 크기를 위해 컨디셔너(426)에 의해 질의된다(query). 렌더링될 각 페이지의 일반적인 크기의 추정은 각 페이지에 포함된 노드를 분석함으로써 결정된다. 이러한 추정은, 또 다른 새로운 페이지에 페이지를 다시 매기거나 또는 기존 페이지로부터 편집/컷(cut)되어야하는 페이지의 오프셋이 있는지 목표 원격 디바이스가 결정하도록 유효 페이지 크기와 비교된다. 컨디셔너(426)는 또한 오프셋이 있는 분리가능부(breakable)로서 정의되는 각 노드를 식별하도록 네이티브 ML 트리를 판독한다(walk). 분리가능 노드에 이어지는 콘테이너는 마크업 리졸버(428)에 의한 후속 마크업 분해를 위해 브레이크 오프(break off) 포인트로서 태그를 갖는 컨디셔너(426)에 의해 식별된다.
또한, 페이지 매김 프로세스는 렌더링만을 위해 컨디셔너(426)에 의해 태깅되는 페이지에 노드를 렌더링하는 마크업 리졸버(428)에 의해 완료된다. 그러나, 노드가 렌더링될 때마다, 렌더링된 노드의 크기는 특정 페이지에 대한 실행중인 총 크기로 주가 달린다(noted). 마크업 리졸버(428)가 스플릿(splitting)을 위해 태깅된 컨테이너를 렌더링한 후에, 리졸버는 스플릿이 또 다른 태그 내에서 발생하였는지 아닌지를 알기 위해 체크한다. 스플릿이 태그 상에서 발생하면, 스플릿은 이전 태그 또는 데이터를 뒤따르는 것으로 설정된다. 그러나, 스플릿이 태그 상에서 발생하지 않는다면, 리소스 관리자(434)에 의해 조정될 수 있는 오버레이가 긴 워드, 예를 들면, 길이가 100 캐릭터 이상의 여백에 걸쳐 발생하도록 오프셋을 발견하기 위해 분해 방법이 실행된다. 부가적으로, 스플릿을 페이지에 삽입한 후에, 마크업 리졸버(428)는 필요에 따라 스플릿 페이지의 다음 및 이전 페이지로의 표시가능한 링크를 포함하는 페이지 태그의 끝(end)을 렌더링할 수 있다.
또한, 도시되지는 않았지만, 플랫폼은 포스트-렌더링 컴포넌트가 목표 원격 디바이스와의 후속 디스플레이/재생을 위해 디바이스 특정 언어 다큐먼트에 미디어 아이템을 임베딩하는 것을 용이하게 한다. 미디어 아이템은 이미지, 오디오 파일, 사운드, 그래픽, 비디오, 애니메이션 등을 포함할 수 있다. 또한, 텍스트 및 디바이스 특정 언어 다큐먼트에 대한 임의의 다른 요소의 로컬화(localization)는 다큐먼트를 목표 원격 디바이스에 제공하기 전에 수행될 수 있다.
도 5a는 목표 원격 디바이스에 대해 대응하는 렌더링 콘텍스트(506)에 적어도 부분적으로 기초하여 마크업 언어(ML) 다큐먼트(504)의 파이프라인 렌더링을 위 한 플랫폼(502)의 일 실시예의 개관(500)을 도시한다. 렌더링 콘텍스트(506) 및 ML 다큐먼트(504)는, 비정형(informality), 예를 들면, 유닛이 부가될 수 있고, 블랭크가 채워지고, 및/또는 풋터(footer)가 부가되는 것이 조절되는 마스터 다큐먼트 어셈블러(508)에 의해 사전처리될 수 있다. 마스터 다큐먼트 어셈블러(508)는 (사전처리된) ML 다큐먼트(504)와 렌더링 콘텍스트(504)를 플랫폼(502)에 제공하고, 여기에서, 플랫폼에서는 파이프 라인 구축기 컴포넌트(512)가 ML 다큐먼트를 다큐먼트에 디바이스 특정 언어로 완전히 렌더링하는데 기여하는 프로세싱의 상이한 스테이지를 결정하고 식별하기 위해 그리고 목표 원격 디바이스에 대해 렌더링 콘텍스트 상의 적어도 부분적으로 기초하여 다큐먼트를 파싱한다. 파이프라인 구축기 컴포넌트(512)는 ML 다큐먼트(504)를 디바이스 특정 언어 다큐먼트로 충분히 렌더링하는데 기여하는 각각의 식별된 프로세스에 대한 스테이지를 포함하도록 정렬되는 파이프라인 스테이지 컴포넌트(516)를 생성하도록 파이프라인 스테이지 라이브러리(514)를 채용한다. 또한, 메인 컴포넌트(510)는 ML 다큐먼트(504)와 렌더링 콘텍스트(506)에 기초하는 다큐먼트 오브젝트 모델(document object model; DOM) 트리를 생성한다. DOM 트리 및 렌더링 콘텍스트(506) 모두 파이프라인 스테이지 컴포넌트(516)의 스테이지 중 적어도 일부에 제공된다.
스테이지는, (1) 목표 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정, (2) 관련없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheets; CSS)를 축소, (3) 이들을 해체하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화(fontifying), (4) 목표 원격 디바 이스와 관계없는 임의의 ML 코드를 제거하여 ML 다큐먼트를 간소화(shrinking), (5) 페이지에 임베드되거나 링크되도록 각 미디어 아이템의 하나 이상의 속성을 특정화, (6) 각 페이지 크기를 추정하여 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 크지 않은 크기로 ML 다큐먼트 페이지에 다시 페이지를 매김, (7) 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 더 크게 렌더링될 것으로 추정되는 페이지에서 ML 코드를 짜깁기(tailoring)/제거, 및 (8) 미디어 아이템 및/또는 세션 식별 정보의 위치를 포함하도록 페이지에 URLs을 재기입하는 것을 비롯하여, ML 다큐먼트(504)를 디바이스 특정 언어 다큐먼트로 충분히 렌더링하는데 기여하는 복수의 서로 다른 프로세스를 인에이블할 수 있다.
부가하여, 일시 인덱스 부가(Temp Index Add) 및 일시 인덱스 제거(Temp Index Remove) 스테이지(도시 생략)는 파이프라인 스테이지 라이브러리(514)에 선택적으로 포함되고 파이프라인 스테이지 컴포넌트(516)에 프로세싱 스테이지로서 포함될 수 있다. 일시 인덱스 부가 스테이지는 ML 다큐먼트(504)를 파싱하고, XML ID 태그를 갖고 있지 않은 다큐먼트에서 각각의 고유 스트링을 식별하고, 후속해 서 이들 고유 스트링에 일시 ID 태그를 제공하도록 배치될 수 있다. 또한, 이 스테이지는 모든 일시 및 기존 XML ID 태그에 대하여 빠르게(on the fly) 일시 인덱스를 구축할 수 있다. 컴포넌트(516) 내의 다른 파이프라인 스테이지는 계속해서 일시 인덱스를 사용하여 특정 스테이지에 의해 디바이스 특정 언어로 렌더링될 ML 다큐먼트에 이들 요소를 보다 빠르게 액세스할 수 있다. 다른 파이프라인 스테이지에 의해 렌더링이 완료되기만 하면, 일시 인덱스 제거 스테이지는 일시 XML ID 및 일시 인덱스를 제거한다. 일시 XML ID 및 일시 인덱스를 사용함으로써, 특정 프로세스가 목표 원격 디바이스에 대한 디바이스 특정 언어 다큐먼트로 부분을 완전히 렌더링하기 위해 모든 ML 다큐먼트를 파싱하는(parse) 가능성을 줄일 수 있다.
직렬변환기(518)는 목표 원격 디바이스에 대한 디바이스 특정 언어 다큐먼트를 수신하고, 이것을 그 디바이스와의 통신 링크를 통해 전송하기에 적절한 캐리터 바이트의 스트림으로 변환한다. 부가하여, 개별 컴포넌트는 특정 언어에 대하여 캐릭터 바이트를 로컬화하도록 배열될 수 있고, 또 다른 컴포넌트는 목표 원격 디바이스에 대해 미디어 아이템을 캐릭터 스트림으로 임베드되도록 배열될 수 있다.
도 5b는 도 5a에도시된 바와 같이 파이프라인 스테이지 컴포넌트(516)에 포함될 수 있는 복수의 예시적 스테이지의 일 실시예의 개관을 도시한다. 컴포넌트(516)는 다음을 포함하는 것으로 도시되어 있다: 일시 인덱스 부가 스테이지(530), 위치 요청 스테이지(532), 축소 스테이지(534), 페이지 매김 스테이지(536), 폰트화 스테이지(538), 미디어 아이템 스테이지(540), 및 일시 인덱스 제거 스테이지(542). 컴포넌트(516)에 포함되어 있는 스테이지들은 특정 목표 원격 디바이스에 대응하고, 서로 다른 목표 원격 디바이스에 대하여 렌더링이 수행될 것이라면 몇몇 동일한 것(모든 스테이지는 아님)에 다른 가능한 스테이지를 더한 것 또한 컴포넌트(516)에 포함될 수 있다.
예시적 모바일 마크업 언어
도 6은 모바일 마크업 언어(mobile Markup Language; MML)로 작성된 다큐먼 트에 포함되어 있는 모듈로부터 예시될 수 있는 클래스 트리의 개관(600)을 도시한다. MML은 목표 원격 디바이스에 대하여 비교적 독립적으로 고려되고 그 클래스는 전술한 플랫폼 또는 다른 리소스의 적어도 다른 실시예에 의해 예시될 수 있다. 플랫폼의 메인 컴포넌트는 MML 다큐먼트를 자동으로 파싱하여 각각의 MML 모듈을 식별하고 식별된 모듈에 기초하여 클래스의 트리를 후속하여 예시한다. 또 다른 실시예에서, 클래스는 목표 원격 디바이스에 후속 디스플레이를 위해 렌더링될 수 있는 임의의 유형의 마크업 언어 다큐먼트를 가상으로 생성하도록 배열된다.
MML 다큐먼트를 디바이스 특정 언어 다큐먼트로 렌더링하는 것은, (1) 목표 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정, (2) 관련없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheets; CSS)를 축소, (3) 이들을 해체하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화(fontifying), (4) 목표 원격 디바이스와 관계없는 임의의 ML 코드를 제거하여 ML 다큐먼트를 간소화(shrinking), (5) 페이지에 임베드되거나 링크되도록 각 미디어 아이템의 하나 이상의 속성을 특정화, (6) 각 페이지 크기를 추정하여 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 크지 않은 크기로 ML 다큐먼트 페이지에 다시 페이지를 매김, (7) 목표 원격 디바이스의 유효 디스플레이 스크린 크기보다 더 크게 렌더링될 것으로 추정되는 페이지에서 ML 코드를 짜깁기(tailoring)/제거, 및 (8) 미디어 아이템 및/또는 세션 식별 정보의 위치를 포함하도록 페이지에 URLs을 재기입하는 것을 비롯하여, 렌더링에 기여하는 복수의 서로 다른 프로세스를 포함한다.
부가하여, MML 다큐먼트는 데이터 구조의 적어도 두 개의 카테고리, 예를 들면, 구조 및 모듈 태그를 포함할 수 있다. 구조 카테고리는 콘텐츠 태그, 폼(form) 태그, 모드 태그, 및 조직(organization) 태그 등을 포함할 수 있다. 또한, 모듈 카테고리는 일반 모듈 태그, 글로벌 모듈 태그, 및 속성 모듈 태그를 포함할 수 있다. 부가하여, 모듈 태그 중 일부는 MML 다큐먼트의 렌더링을 짜깁기하기 위해 배치될 수 있다.
적어도 일부의 MML 태그의 리스트가 하기에 리스트되어 있다.
구조 태그
Figure 112009025911753-pct00001
모듈 태그
Figure 112009025911753-pct00002
두 개의 카테고리에 있는 태그들의 이름이 그들의 기능성을 설명하는 경향이 있지만, MML 태그는 목표 원격 디바이스 상의 디스플레이를 위해 페이지를 실제로 렌더링하는 필요한 스타일링(styling)이 아니라, 프로그래머의 인텐트(intent)를 캡처하는데 우선적으로 사용된다. 예를 들면, 일반 모듈 태그 <module.list>는 목표 모바일 디바이스 상의 디스플레이를 위해 리스트를 렌더링하도록 플랫폼에 의한 요청으로서 다루어진다. 그러나, <module.list> 태그가 실제 렌더링을 수행하는데 필요한 실질적인 세부사항(details)을 특정하지 않기 때문에, 플랫폼은 렌더링 콘텍스트에 포함된 데이터 및 파라미터, 예를 들면, 리스트의 초상 또는 풍경 지향, 유효 디스플레이 스크린의 폭 및 높이, 및 표시 페이지에 대한 페이지 매김 크기를 사용하여 세부사항을 핸들링한다. MML 태그의 인텐트의 렌더링은 전술한 플랫폼 중 적어도 하나, 또는 다른 유형의 마크업 언어 다큐먼트에서 제공되는 다른 태그에 실질적으로 유사한 방식으로 다른 리소스에 의해 핸들링된다.
플랫폼의 일반 동작
본 발명의 임의의 양상에 대한 방법 및 프로세스가 도 7 내지 도 11b를 참조하여 이제 설명될 것이다.
도 7은 목표 원격 디바이스에 의한 디스플레이를 위해 마크업 언어(ML) 다큐먼트를 렌더링하기 위한 진보적인 플랫폼의 일 실시예에 의해 일반적으로 사용되는 프로세스의 개관(700)을 도시한다. 이 프로세스 단계는 개시 블록에서, 특정 목표 원격 디바이스에 대한 렌더링 콘텍스트가 수신되는 블록(702)으로 이동한다. 블록(704)에서도, 마크업 언어 다큐먼트가 수신된다. ML 다큐먼트 및 렌더링 콘텍스트는, 제한적인 것은 아니지만, 콘텐츠 제공자, 캐리어, 웹 서비스, 가입자(affilicate), 사용자, 및 웹사이트를 비롯하여, 동일하거나 혹은 다른 리소스 중 하나 이상에 의해 생성되고 후속하여 제공된다.
블록(706)에서, 목표 원격 디바이스를 위해 렌더링 콘텍스트에 포함된 데이터 및 파라미터는 하나 이상의 프로세스에 의해 사용되어 ML 다큐먼트를 원격 디바이스를 위한 디바이스 특정 언어의 다큐먼트로 완전히 렌더링한다. 블록(708)에서, 프로세스는 디바이스 특정 언어 다큐먼트에 임베드되거나 링크에 의해 참조될 수 있는 미디어 아이템을 선택적으로 제공할 수 있다. 블록(710)에서, 디바이스 특정 언어 다큐먼트는 후속 디스플레이를 위해 목표 원격 디바이스에 제공된다. 일 실시예에서, 캐리어는 디바이스 특정 언어 다큐먼트를 통신 링크를 통해 목표 원격 디바이스에 캐릭터 스트링으로서 제공한다. 다음에, 프로세스는 다른 액션을 수행하기 위해 리턴된다.
도 8은 도 4에 도시된 플랫폼에 의해 적어도 수행될 수 있는 프로세스의 개관(800)을 도시한다. 이 프로세스 단계는 개시 블록에서, 목표 원격 디바이스를 위해 마크업 언어(ML) 다큐먼트 및 렌더링 콘텍스트가 또 다른 리소스로부터 수신되는 블록(802)으로 이동한다. 블록(804)에서, 프로세스는 ML 다큐먼트 및 렌더링 콘텍스트에 포함된 데이터 및 파라미터의 유효성을 체크한다. 블록(806)에서, 다큐먼트 오브젝트 모델 트리가 생성된다. 블록(808)에서, 렌더링 콘텍스트는 DOM 트리가 목표 원격 디바이스에 고유한 ML 코드로 투입되도록(populate) 한다.
블록(810)에서, 이 프로세스는 ML 다큐먼트의 렌더링된 페이지에 대하여 페이지 매김을 결정한다. 프로세스는 이들 페이지가 목표 원격 디바이스를 위한 디스플레이 스크린의 유효 크기보다 더 크지 않은 크기가 되도록 이들 페이지에 페이 지를 매긴다. 일부의 경우에, 다음 및 이전 링크는 새롭게 페이지가 매겨진 페이지에 대하여 작성된다. 프로세스는 또한 ML 다큐먼트에 있는 비교적 불필요한 여백을 제거할 수 있다. 블록(812)에서, 프로세스는 투입된 DOM 트리를 파싱하고 네이티브 ML 코드를 디바이스 특정 언어의 다큐먼트로 분해한다. 블록(814)에서, 하나 이상의 미디어 아이템은 선택적으로 디바이스 특정 언어 다큐먼트에 임베드되거나 링크에 의해 참조될 수 있다. 블록(816)에서, 디바이스 특정 언어 다큐먼트는 후속 디스플레이를 위해 목표 원격 디바이스에 제공된다. 일 실시예에서, 캐리어는 디바이스 특정 언어 다큐먼트를 통신 링크를 통해 목표 원격 디바이스에 캐릭터 스트링으로서 제공한다. 다음에, 프로세스는 다른 액션을 수행하기 위해 리턴된다.
도 9는 프로그래머 인텐트를 제공하도록 배열된 모바일 마크업 언어(MML)로 기입된 다큐먼트를 완전히 렌더링하기 위한 플랫폼의 개시진 실시예된 적어도 하나를 사용하고, 목표 원격 디바이스에 의한 후속 디스플레이를 위해 이 다큐먼트를 디바이스 특정 언어 다큐먼트로 실제 렌더링하는 것과 관계된 특정 세부사항은 아닌 프로세스의 개관(900)을 도시한다.
이 프로세스 단계는 개시 블록으로부터, 목표 원격 디바이스를 위한 모바일 마크업 언어(MML) 다큐먼트 및 렌더링 콘텍스트가 또 다른 리소스로부터 수신되는 블록(902)으로 진행한다. 블록(904)에서, 프로세스는 ML 다큐먼트 및 렌더링 콘텍스트에 포함된 데이터 및 파라미터의 유효성을 체크한다. 블록(906)에서, 다큐먼트 오브젝트 모델 트리가 생성된다. 블록(908)에서, 렌더링 콘텍스트는 DOM 트 리가 목표 원격 디바이스에 고유한 ML 코드로 투입되도록(populate) 한다.
블록(910)에서, 이 프로세스는 ML 다큐먼트의 렌더링된 페이지에 대하여 페이지 매김을 결정한다. 프로세스는 이들 페이지가 목표 원격 디바이스를 위한 디스플레이 스크린의 유효 크기보다 더 크지 않은 크기가 되도록 이들 페이지에 페이지를 매긴다. 일부의 경우에, 다음 및 이전 링크는 새롭게 페이지가 매겨진 페이지에 대하여 작성된다. 프로세스는 또한 ML 다큐먼트에 있는 비교적 불필요한 여백을 제거할 수 있다. 블록(912)에서, 프로세스는 투입된 DOM 트리를 파싱하여 네이티브 ML 코드를 디바이스 특정 언어의 다큐먼트로 분해한다. 블록(914)에서, 하나 이상의 미디어 아이템은 선택적으로 완전히 렌더링된 ML 다큐먼트에 임베드되거나 링크에 의해 참조될 수 있다. 블록(916)에서, 디바이스 특정 언어 다큐먼트는 후속 디스플레이를 위해 목표 원격 디바이스에 제공된다. 일 실시예에서, 캐리어는 디바이스 특정 언어 다큐먼트를 통신 링크를 통해 목표 원격 디바이스에 캐릭터 스트링으로서 제공한다. 다음에, 프로세스는 다른 액션을 수행하기 위해 리턴된다.
도 10은 ML 다큐먼트의 서로 다른 부분을 렌더링하기 위해 파이프라인(piplined) 스테이지를 제공하는 플랫폼으로 마크업 언어(ML) 다큐먼트를 완전히 렌더링하도록 플랫폼을 채용하는 프로세스의 개관(1000)을 도시한다. 이 프로세스는 개시 블록으로부터, 목표 모바일 디바이스에 대한 ML 다큐먼트 및 렌더링 콘텍스트가 하나 이상의 동일한, 또는 상이한 리소스로부터 수신되는 블록(1002)으로 이동한다. 블록(1004)에서, ML 다큐먼트는 프로세싱을 위해 수집된다. 예를 들 면, 공통 헤더 및 풋터(footer), 유닛, 및 다른 부수 요소가 ML 다큐먼트에 부가될 수 있다. 다음에, 블록(1006)에서, 프로세스는 ML 다큐먼트를 파싱하고, ML 다큐먼트에 포함된 요소의 완전한 렌더링을 인에이블할 수 있는 파이프라인 스테이지의 인스턴스를 구축하도록 렌더링 콘텍스트의 파라미터 및 데이터를 리뷰한다. 이 프로세스는 또한 수집된 ML 다큐먼트를 다큐먼트 오브젝트 모델(DOM) 다큐먼트로 변환한다.
블록(1008)에서, 이 프로세스는 목표 원격 디바이스에 대하여 적어도 부분적으로 렌더링 콘텍스트에 기초하여 DOM 다큐먼트에 포함된 요소를 디바이스 특정 언어 다큐먼트로 렌더링하고 페이지 매김하는 파이프라인 스테이지를 수행한다. 블록(1010)에서, 프로세스는 렌더링된 DOM 다큐먼트(이제 디바이스 특정 언어 다큐먼트)를 목표 원격 디바이스에 대해 특정 구어(spoken language)로 선택적으로 로컬화될 수 있는 캐릭터 스트링으로 직렬변환한다.
블록(102)에서, 프로세스는 완전히 렌더링된 캐릭터 스트링에 임베드되거나 링크에 의해 참조될 수 있는 미디어 아이템을 선택적으로 제공할 수 있다. 블록(1014)에서, 캐릭터 스트링 플러스 임의로 포함된 미디어 아이템은 목표 원격 디바이스에 의한 후속 디스플레이를 위해 이용가능해진다. 일 실시예에서, 캐리어는 디바이스 특정 언어 다큐먼트를 통신 링크를 통해 목표 원격 디바이스에 캐릭터 스트링으로서 제공한다. 다음에, 프로세스는 다른 액션을 수행하기 위해 리턴된다.
예시적 일시 인덱싱
도 11a는 목표 원격 디바이스에 의한 후속 디스플레이를 위해 다큐먼트의 페 이지의 파이프라인 스테이지 렌더링의 속도를 높이도록 수신된 XML 다큐먼트에 있는 고유 스트링에 대하여 일시 XML ID를 일시적으로 빠르게 작성하여 인덱싱하는 플랫폼에 대한 프로세스(1100)를 도시한다. 또한, 적어도 하나의 다른 실시예에서, 일시적으로 빠른 인덱스 및 XML ID를 사용하여 로컬 디바이스 또는 분배된 컴퓨팅 디바이스에 의한 추가의 프로세싱을 위해 XML 다큐먼트의 렌더링 속도를 높일 수 있다.
이 프로세스는 개시 블록으로부터, 수신된 마크업 언어(XML) 다큐먼트가 파싱되어 각각의 고유 스트링을 식별하는 블록(1102)으로 진행한다. 목표 원격 디바이스를 위한 렌더링 콘텍스트 또한 수신된다. 판정 블록(1106)에서, XML ID가 고유 스트링에 대하여 존재하면, 프로세스는 블록(1108)으로 이동한다. 그러나, 식별된 고유 스트링이 기존 XML ID에 대응하지 않으면, 블록(1104)에서 일시 XML ID가 고유 스트링에 부가된다. 어느 경우든, 각각의 식별된 고유 스트링이 기존 또는 일시 XML ID에 대응한 후에, 프로세스는 일시 인덱스가 적어도 부분적으로 기존 또는 일시 XML ID에 기초하여 XML 다큐먼트에 있는 각각의 고유 스트링의 위치를 리스트하는 XML 다큐먼트에 대해 생성되는 블록(1108)으로 진행한다.
블록(1110)에서, 일시 인덱스 및 렌더링 콘텍스트를 사용하여 목표 원격 디바이스 상에서의 디스플레이를 위해 XML 다큐먼트의 페이지 크기를 추정하고, 후속하여 크기가 크다고 추정되는 페이지를 짜깁기 및/또는 다시 페이지 매김을 한다. 또한, 필요에 따라 세션 ID가 부가되거나 URL이 재기입될 수 있다. 블록(1112)에서, 프로세스는 일시 인덱스 및 렌더링 콘텍스트를 사용하여, 모든 XML 다큐먼트가 디바이스 특정 언어의 다큐먼트로 완전히 렌더링될 때까지 각각의 고유 스트링에 대하여 파이프라인 스테이지 렌더링을 수행한다.
블록(1114)에서, 일시 인덱스 및 일시 XML ID는 디바이스 특정 언어 다큐먼트에서 제거된다. 블록(1116)에서, 프로세스는 디바이스 특정 언어 다큐먼트에 임베드되거나 링크에 의해 참조될 수 있는 미디어 아이템을 선택적으로 제공할 수 있다. 블록(1118)에서, 디바이스 특정 언어 다큐먼트 플러스 임의로 포함된 미디어 아이템은 목표 원격 디바이스에 의한 후속 디스플레이를 위해 이용가능하게 된다. 일 실시예에서, 캐리어는 디바이스 특정 언어 다큐먼트를 통신 링크를 통해 목표 원격 디바이스에 캐릭터 스트링으로서 제공한다. 다음에, 프로세스는 다른 액션을 수행하기 위해 리턴된다.
도 11b는 목표 원격 디바이스에 의한 후속 디스플레이를 위해 다큐먼트의 페이지의 파이프라인 스테이지 렌더링의 속도를 높이도록 수신된 마크업 언어(ML) 다큐먼트에 있는 고유 스트링에 대하여 일시 ID를 일시적으로 빠르게 작성하여 인덱싱하는 플랫폼에 대한 프로세스(1120)를 도시한다. 그러나, 적어도 하나의 다른 실시예에서, 일시적으로 빠른 인덱스 및 ML ID를 사용하여 로컬 디바이스 또는 분배된 컴퓨팅 디바이스에 의한 추가의 프로세싱을 위해 ML 다큐먼트의 렌더링 속도를 높일 수 있다.
이 프로세스는 개시 블록으로부터, 수신된 마크업 언어(ML) 다큐먼트가 파싱되어 각각의 고유 스트링을 식별하는 블록(1122)으로 진행한다. 목표 원격 디바이스를 위한 렌더링 콘텍스트 또한 수신된다. 판정 블록(1124)에서, XML ID가 고유 스트링에 대하여 존재하면, 프로세스는 블록(1128)으로 이동한다. 그러나, 식별된 고유 스트링이 기존 ML ID에 대응하지 않으면, 블록(1126)에서 일시 ML ID가 고유 스트링에 부가된다. 어느 경우든, 각각의 식별된 고유 스트링이 기존 또는 일시 ML ID에 대응한 후에, 프로세스는 일시 인덱스가 적어도 부분적으로 기존 또는 일시 ML ID에 기초하여 ML 다큐먼트에 있는 각각의 고유 스트링의 위치를 리스트하는 XML 다큐먼트에 대해 생성되는 블록(1128)으로 진행한다.
블록(1130)에서, 일시 인덱스 및 렌더링 콘텍스트를 사용하여 목표 원격 디바이스 상에서의 디스플레이를 위해 XML 다큐먼트의 페이지 크기를 추정하고, 후속하여 크기가 크다고 추정되는 페이지를 짜깁기 및/또는 다시 페이지 매김을 한다. 또한, 필요에 따라 세션 ID가 부가되거나 URL이 재기입될 수 있다. 블록(1132)에서, 프로세스는 일시 인덱스 및 렌더링 콘텍스트를 사용하여, 모든 ML 다큐먼트가 디바이스 특정 언어의 다큐먼트로 완전히 렌더링될 때까지 각각의 고유 스트링에 대하여 파이프라인 스테이지 렌더링을 수행한다.
블록(1134)에서, 일시 인덱스 및 일시 ML ID는 디바이스 특정 언어 다큐먼트에서 제거된다. 블록(1136)에서, 프로세스는 디바이스 특정 언어 다큐먼트에 임베드되거나 링크에 의해 참조될 수 있는 미디어 아이템을 선택적으로 제공할 수 있다. 블록(1138)에서, 디바이스 특정 언어 다큐먼트 플러스 임의로 포함된 미디어 아이템은 목표 원격 디바이스에 후속 디스플레이를 위해 제공된다. 일 실시예에서, 캐리어는 디바이스 특정 언어 다큐먼트를 통신 링크를 통해 목표 원격 디바이스에 캐릭터 스트링으로서 제공한다. 다음에, 프로세스는 다른 액션을 수행하기 위해 리턴된다.
전술한 예시된 플로우차트의 각 블럭, 및 이 예시된 플로우차트 내의 블럭들의 조합이 컴퓨터 프로그램 인스트럭션들에 의해 구현될 수 있음을 알 것이다. 이들 프로그램 인스트럭션들은, 머신을 생성하도록 프로세서에 제공되어서, 그 프로세서 상에서 실행되는 인스트럭션들이, 플로우차트 블럭 또는 블럭들에서 지정된 액션들을 구현하기 위한 수단을 생성하게 할 수 있다. 컴퓨터 프로그램 인스트럭션들은, 프로세서에 의해, 일련의 동작 단계들이 프로세서에 의해 수행되게 유발하여서 컴퓨터 구현된 처리를 생성하도록 실행될 수 있으며, 이에 따라 프로세서 상에서 실행되는 인스트럭션들이 전술한 플로우차트에 리스트된 액션을 구현하는 단계들을 제공하게 된다.
따라서, 예시된 플로우차트의 블럭들은, 지정된 액션들을 수행하기 위한 수단들의 조합, 지정된 액션들을 수행하기 위한 단계들의 조합, 및 지정된 액션들을 수행하기 위한 프로그램 인스트럭션 수단들을 지원한다. 또한, 예시된 플로우차트의 각 블럭, 예시된 플로우차트 내의 블럭들의 조합은, 지정된 액션 또는 단계들을 수행하는 특수 목적 하드웨어 기반 시스템들, 혹은 특수 목적 하드웨어 및 컴퓨터 인스트럭션들의 조합에 의해 구현될 수 있음을 알 것이다.
전술한 명세서에서, 본 발명은 특정의 예시적 실시예를 참조하여 설명하였다. 그러나, 첨부된 청구범위에 설명된 바와 같이 본 발명의 광의의 사상 및 범주를 벗어나지 않고 특정의 예시적 실시예에 다양한 수정 및 변경이 이루어질 수 있다는 것은 자명하다. 따라서, 본 명세서 및 도면은 제한적이라기 보다는 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 원격 디바이스에 의한 디스플레이를 위해 마크업 언어(markup language; ML) 다큐먼트를 렌더링하는 방법으로서,
    상기 ML 다큐먼트를 수신하는 단계;
    상기 원격 디바이스 고유의 렌더링 콘텍스트를 수신하는 단계 - 상기 렌더링 콘텍스트는 상기 원격 디바이스에 의한 후속 디스플레이를 위해 상기 ML 다큐먼트의 렌더링을 인에이블하는 정보를 포함함 - ;
    기존의 ML ID와 현재 관계없는 각각의 고유 스트링에 대하여 일시 마크업 언어(ML) ID를 작성하는 단계;
    각각의 기존 ML ID 및 각각의 일시 ML ID의 일시 인덱스를 생성하는 단계;
    상기 일시 인덱스를 복수의 프로세스 중 적어도 하나에 사용하여 상기 ML 다큐먼트에 각각의 고유 스트링을 렌더링하는 단계;
    상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여 상기 ML 다큐먼트의 페이지 매김(pagination)을 인에이블하는 단계 - 렌더링된 상기 ML 다큐먼트에서 각각의 페이지의 크기는 상기 원격 디바이스에 의한 디스플레이를 위한 유효 크기보다 크지 않게 페이지가 매겨짐 -;
    상기 렌더링 콘텍스트 및 일시 인덱스를 사용하여, 상기 ML 다큐먼트를 디바이스 특정 언어의 다큐먼트에 완전히 렌더링하기 위한 적어도 하나의 프로세스를 인에이블하는 단계;
    상기 원격 디바이스에 제공되기 전에 상기 디바이스 특정 언어 다큐먼트로부터 상기 일시 인덱스 및 각각의 일시 ML ID를 제거하는 단계; 및
    상기 디바이스 특정 언어 다큐먼트가 상기 원격 디바이스에 제공되도록 인에이블하는 단계
    를 포함하는 렌더링 방법.
  2. 제1항에 있어서,
    상기 디바이스 특정 언어 다큐먼트에 미디어 아이템을 임베딩하는 단계; 또는,
    상기 디바이스 특정 언어 다큐먼트에 상기 미디어 아이템으로의 링크를 포함하는 단계
    를 더 포함하는 렌더링 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 수신된 ML 다큐먼트를 수집하는 단계를 더 포함하고, 상기 수집하는 단계는 유닛을 모듈에 부가하거나, 블랭크(blank)를 채우거나, 헤더를 부가하거나, 풋터(footer)를 부가하는 것 중 적어도 하나를 포함하는 렌더링 방법.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 마크업 언어는 상기 원격 디바이스 상에 상기 ML 다큐먼트에 있는 콘텐츠를 디스플레이하기 위해 저자의 인텐트(intent)를 제공하는 모바일 마크업 언어이고, 상기 원격 디바이스에 의한 디스플레이를 위해 렌더링되는 콘텐츠의 실제 배열은 적어도 부분적으로 상기 렌더링 콘텍스트를 기초로 하는 렌더링 방법.
  8. 제1항에 있어서,
    상기 ML 다큐먼트의 렌더링은,
    상기 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정하고,
    관계없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheet; CSS)를 축소하고,
    축소된 캐스케이딩 스타일 시트를 해제하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화하고,
    상기 원격 디바이스와 관계없는 임의의 ML 코드를 제거하여 상기 ML 다큐먼트를 간소화하고,
    각각의 미디어 아이템의 하나 이상의 속성을 상기 렌더링된 ML 다큐먼트와 함께 포함되도록 특정하고,
    각 페이지 크기를 추정하여, 상기 원격 디바이스용의 유효 크기보다 크지 않은 크기로 상기 ML 다큐먼트의 페이지를 다시 페이지 매기고,
    상기 원격 디바이스용의 유효 크기보다 더 크게 렌더링될 것으로 추정되는 상기 ML 다큐먼트의 페이지에 ML 코드를 짜깁기하고(tailoring),
    미디어 아이템의 위치를 포함하도록 URL을 재기입하고, 또는
    세션 식별 정보를 포함하도록 URL을 재기입하는
    것을 포함하는 상기 복수의 프로세스 중 적어도 하나를 포함하는 렌더링 방법.
  9. 제1항에 있어서,
    상기 원격 디바이스는 네트워크를 통해 유선 또는 무선 통신 중 적어도 하나를 제공하는 렌더링 방법.
  10. 디스플레이를 위해 마크업 언어(ML) 다큐먼트를 렌더링하는 시스템으로서,
    렌더링되는 상기 ML 다큐먼트를 디스플레이되도록 하는 원격 디바이스, 및
    액션들을 수행하도록 배치된 플랫폼
    을 포함하고,
    상기 액션들은,
    다른 리소스로부터 렌더링 콘텍스트 및 상기 ML 다큐먼트를 수신하는 액션 - 상기 렌더링 콘텍스트는 상기 원격 디바이스에 의한 후속 디스플레이를 위해 상기 ML 다큐먼트의 렌더링을 인에이블하는 정보를 포함함 -,
    기존의 ML ID와 현재 관계없는 각각의 고유 스트링에 대하여 일시 마크업 언어(ML) ID를 작성하는 액션,
    각각의 기존 ML ID 및 각각의 일시 ML ID의 일시 인덱스를 생성하는 액션,
    상기 일시 인덱스를 복수의 프로세스 중 적어도 하나에 사용하여 상기 ML 다큐먼트에 각각의 고유 스트링을 렌더링하는 액션,
    상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여 상기 ML 다큐먼트에 페이지를 매기는 액션 - 렌더링된 상기 ML 다큐먼트에 있는 각 페이지의 크기는 상기 원격 디바이스에 의한 디스플레이를 위한 유효 크기보다 크지 않도록 페이지가 매겨짐 -,
    상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여, 상기 ML 다큐먼트를 디바이스 특정 언어의 다큐먼트로 완전히 렌더링하기 위한 적어도 하나의 프로세스를 인에이블하는 액션,
    상기 원격 디바이스에 제공되기 전에 상기 디바이스 특정 언어 다큐먼트로부터 상기 일시 인덱스 및 각각의 일시 ML ID를 제거하는 액션, 및
    상기 원격 디바이스에 의한 디스플레이를 위해 상기 디바이스 특정 언어 다큐먼트를 네트워크를 통하여 제공하는 액션을
    포함하는 렌더링 시스템.
  11. 제10항에 있어서,
    상기 플랫폼은,
    상기 디바이스 특정 언어 다큐먼트에 미디어 아이템을 임베딩(embedding)하는 액션; 또는,
    상기 디바이스 특정 언어 다큐먼트에 상기 미디어 아이템으로의 링크를 포함하는 액션
    을 포함하는 추가의 액션들 중 적어도 하나를 실행하는 렌더링 시스템.
  12. 삭제
  13. 제10항에 있어서,
    상기 플랫폼은 상기 수신된 ML 다큐먼트를 수집하는 액션을 포함하는 추가의 액션을 수행하고, 상기 수집하는 액션은 유닛을 모듈에 부가하거나, 블랭크를 채우거나, 헤더를 부가하거나, 풋터를 부가하는 것 중 적어도 하나를 포함하는 렌더링 시스템.
  14. 삭제
  15. 삭제
  16. 제10항에 있어서,
    상기 마크업 언어는 상기 원격 디바이스 상에 상기 ML 다큐먼트에 있는 콘텐츠를 디스플레이하기 위해 저자의 인텐트(intent)를 제공하는 모바일 마크업 언어이고, 상기 원격 디바이스에 의한 디스플레이를 위한 콘텐츠의 실제 배열은 적어도 부분적으로 상기 렌더링 콘텍스트를 기초로 하는 렌더링 시스템.
  17. 제10항에 있어서,
    상기 ML 다큐먼트의 렌더링은,
    상기 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정하고,
    관계없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheet; CSS)를 축소하고,
    축소된 캐스케이딩 스타일 시트를 해제하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화하고,
    상기 원격 디바이스와 관계없는 임의의 ML 코드를 제거하여 상기 ML 다큐먼트를 간소화하고,
    각각의 미디어 아이템의 하나 이상의 속성을 상기 렌더링된 ML 다큐먼트와 함께 포함되도록 특정하고,
    각 페이지 크기를 추정하여, 상기 원격 디바이스용의 유효 크기보다 크지 않은 크기로 상기 ML 다큐먼트의 페이지를 다시 페이지 매기고,
    상기 원격 디바이스를 위한 유효 크기보다 더 크게 렌더링될 것으로 추정되는 상기 ML 다큐먼트의 페이지에 ML 코드를 짜깁기하고,
    미디어 아이템의 위치를 포함하도록 URL을 재기입하고, 또는
    세션 식별 정보를 포함하도록 URL을 재기입하는
    것을 포함하는 상기 복수의 프로세스 중 적어도 하나를 실행하는 것을 포함하는 렌더링 시스템.
  18. 제10항에 있어서,
    상기 원격 디바이스는 상기 네트워크를 통해 유선 또는 무선 통신 중 적어도 하나를 제공하는 렌더링 시스템.
  19. 삭제
  20. 원격 디바이스에 의한 디스플레이를 위해 마크업 언어(ML) 다큐먼트의 렌더링을 인에이블하는 서버로서,
    데이터를 저장하는 메모리; 및
    액션들을 인에이블하는 프로세서
    를 포함하고,
    상기 액션들은,
    상기 ML 다큐먼트를 수신하는 액션;
    상기 원격 디바이스 고유의 렌더링 콘텍스트를 수신하는 액션 - 상기 렌더링 콘텍스트는 상기 원격 디바이스에 의한 후속 디스플레이를 위해 상기 ML 다큐먼트를 디바이스 특정 언어의 다큐먼트로 렌더링하는 것을 인에이블하는 정보를 포함함 - ;
    기존의 ML ID와 현재 관계없는 각각의 고유 스트링에 대하여 일시 마크업 언어(ML) ID를 작성하는 액션;
    각각의 기존 ML ID 및 각각의 일시 ML ID의 일시 인덱스를 생성하는 액션;
    상기 일시 인덱스를 복수의 프로세스 중 적어도 하나에 사용하여 상기 ML 다큐먼트에 각각의 고유 스트링을 렌더링하는 액션;
    상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여 상기 ML 다큐먼트의 페이지 매김을 인에이블하는 액션 - 상기 디바이스 특정 언어 다큐먼트에 있는 각 페이지의 크기는 상기 원격 디바이스에 의한 디스플레이를 위한 유효 크기보다 크지 않도록 페이지가 매겨짐 -;
    상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여, 상기 ML 다큐먼트를 상기 디바이스 특정 언어의 다큐먼트에 완전히 렌더링하기 위한 적어도 하나의 프로세스를 인에이블하는 액션;
    상기 원격 디바이스에 제공되기 전에 상기 디바이스 특정 언어 다큐먼트로부터 상기 일시 인덱스 및 각각의 일시 ML ID를 제거하는 액션; 및
    상기 디바이스 특정 언어 다큐먼트가 상기 원격 디바이스에 제공되도록 인에이블하는 액션
    을 포함하는 서버.
KR1020097008781A 2006-09-29 2007-07-03 원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼 KR101117396B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/537,593 US10452756B2 (en) 2006-09-29 2006-09-29 Platform for rendering content for a remote device
US11/537,593 2006-09-29

Publications (2)

Publication Number Publication Date
KR20090077807A KR20090077807A (ko) 2009-07-15
KR101117396B1 true KR101117396B1 (ko) 2012-03-07

Family

ID=39230517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097008781A KR101117396B1 (ko) 2006-09-29 2007-07-03 원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼

Country Status (7)

Country Link
US (2) US10452756B2 (ko)
EP (1) EP2069970A4 (ko)
JP (1) JP5108016B2 (ko)
KR (1) KR101117396B1 (ko)
CN (1) CN101523386B (ko)
HK (1) HK1137534A1 (ko)
WO (1) WO2008039581A1 (ko)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8799303B2 (en) 2004-02-15 2014-08-05 Google Inc. Establishing an interactive environment for rendered documents
US20060041484A1 (en) 2004-04-01 2006-02-23 King Martin T Methods and systems for initiating application processes by data capture from rendered documents
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US20060098900A1 (en) 2004-09-27 2006-05-11 King Martin T Secure data gathering from rendered documents
US8793162B2 (en) 2004-04-01 2014-07-29 Google Inc. Adding information or functionality to a rendered document via association with an electronic counterpart
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8621349B2 (en) 2004-04-01 2013-12-31 Google Inc. Publishing techniques for adding value to a rendered document
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US20080313172A1 (en) 2004-12-03 2008-12-18 King Martin T Determining actions involving captured information and electronic content associated with rendered documents
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US20070300142A1 (en) 2005-04-01 2007-12-27 King Martin T Contextual dynamic advertising based upon captured rendered text
US8081849B2 (en) 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US9460346B2 (en) 2004-04-19 2016-10-04 Google Inc. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US8213034B2 (en) 2004-10-08 2012-07-03 Sharp Laboratories Of America, Inc. Methods and systems for providing remote file structure access on an imaging device
US7920101B2 (en) 2004-10-08 2011-04-05 Sharp Laboratories Of America, Inc. Methods and systems for imaging device display standardization
US8230328B2 (en) * 2004-10-08 2012-07-24 Sharp Laboratories Of America, Inc. Methods and systems for distributing localized display elements to an imaging device
US8384925B2 (en) 2004-10-08 2013-02-26 Sharp Laboratories Of America, Inc. Methods and systems for imaging device accounting data management
US8237946B2 (en) 2004-10-08 2012-08-07 Sharp Laboratories Of America, Inc. Methods and systems for imaging device accounting server redundancy
US8428484B2 (en) 2005-03-04 2013-04-23 Sharp Laboratories Of America, Inc. Methods and systems for peripheral accounting
US8345272B2 (en) 2006-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for third-party control of remote imaging jobs
US8181107B2 (en) 2006-12-08 2012-05-15 Bytemobile, Inc. Content adaptation
US8924352B1 (en) 2007-03-31 2014-12-30 Emc Corporation Automated priority backup and archive
US20080301236A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Contextual social language
US20110035662A1 (en) * 2009-02-18 2011-02-10 King Martin T Interacting with rendered documents using a multi-function mobile device, such as a mobile phone
US8583601B1 (en) 2007-09-28 2013-11-12 Emc Corporation Imminent failure backup
US8762854B2 (en) * 2007-11-07 2014-06-24 Cabot Communications Limited Systems and methods for itemising web pages for display on a screen
US8019863B2 (en) 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers
US8370737B2 (en) * 2008-12-27 2013-02-05 Flash Networks, Ltd Method and system for inserting data in a web page that is transmitted to a handheld device
US8719365B1 (en) * 2009-02-12 2014-05-06 Adobe Systems Incorporated Graphic output from remote execution of applications redirected with dynamically sized virtual screen
US20100211893A1 (en) * 2009-02-19 2010-08-19 Microsoft Corporation Cross-browser page visualization presentation
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
CN102349087B (zh) 2009-03-12 2015-05-06 谷歌公司 自动提供与捕获的信息例如实时捕获的信息关联的内容
US20110074831A1 (en) * 2009-04-02 2011-03-31 Opsis Distribution, LLC System and method for display navigation
US20110093619A1 (en) * 2009-10-16 2011-04-21 Ianywhere Solutions, Inc. Synchronizing Tasks between Mobile Devices and Servers
US20110126113A1 (en) * 2009-11-23 2011-05-26 c/o Microsoft Corporation Displaying content on multiple web pages
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US8683005B1 (en) 2010-03-31 2014-03-25 Emc Corporation Cache-based mobile device network resource optimization
US8694597B1 (en) 2010-03-31 2014-04-08 Emc Corporation Mobile device group-based data sharing
US8655966B1 (en) 2010-03-31 2014-02-18 Emc Corporation Mobile device data protection
US8694744B1 (en) 2010-03-31 2014-04-08 Emc Corporation Mobile device snapshot backup
US9152650B1 (en) 2010-03-31 2015-10-06 Emc Corporation Mobile device data recovery
US9514089B1 (en) * 2010-03-31 2016-12-06 EMC IP Holding Company LLC Mobile device network data synchronization
JP4818454B1 (ja) * 2010-08-27 2011-11-16 株式会社東芝 表示装置、及び表示方法
CN102035856A (zh) * 2010-12-31 2011-04-27 深圳瑞高信息技术有限公司 游戏社区的管理方法、游戏客户终端及其系统
CN102074221B (zh) * 2011-01-06 2012-08-22 深圳芯邦科技股份有限公司 一种字符显示方法及装置
US9015576B2 (en) 2011-05-16 2015-04-21 Microsoft Technology Licensing, Llc Informed partitioning of data in a markup-based document
US9361131B1 (en) * 2011-06-24 2016-06-07 Amazon Technologies, Inc. Network resource access via a mobile shell
CN102902692B (zh) * 2011-07-28 2017-11-17 腾讯科技(北京)有限公司 网络媒介信息的处理展示方法及系统
US9443029B2 (en) * 2011-08-15 2016-09-13 Verizon Patent And Licensing Inc. Method and system for providing context-based view content management
WO2013028081A1 (en) * 2011-08-23 2013-02-28 Opera Software Asa Page based navigation and presentation of web content
US9536251B2 (en) * 2011-11-15 2017-01-03 Excalibur Ip, Llc Providing advertisements in an augmented reality environment
US20130159839A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Semantic compression of cascading style sheets
WO2013102802A1 (en) * 2012-01-02 2013-07-11 International Business Machines Corporation Conflict resolution of css definition from multiple sources
US20140047310A1 (en) * 2012-08-13 2014-02-13 Business Objects Software Ltd. Mobile drilldown viewer for standardized data
US20140095988A1 (en) * 2012-09-29 2014-04-03 Bookboard, Inc. Creating and consuming streaming e-book content
US9836437B2 (en) * 2013-03-15 2017-12-05 Google Llc Screencasting for multi-screen applications
US20140272891A1 (en) * 2013-03-15 2014-09-18 Joseph Saladino System and method for remote fitness training
EP2802122A1 (en) * 2013-05-07 2014-11-12 Nagravision S.A. A Media Player for Receiving Media Content from a Remote Server
CN103294819B (zh) * 2013-06-14 2018-08-31 北京新学堂网络科技有限公司 采用html5技术对网页内容进行分页显示的方法
US9529858B2 (en) 2014-03-06 2016-12-27 Yahoo! Inc. Methods and systems for ranking items on a presentation area based on binary outcomes
US10579713B2 (en) * 2014-05-30 2020-03-03 Apple Inc. Application Markup language
US9898450B2 (en) * 2014-11-07 2018-02-20 Rakuten Kobo Inc. System and method for repagination of display content
US9292482B1 (en) 2015-04-30 2016-03-22 Workiva Inc. System and method for convergent document collaboration
US10325014B2 (en) 2015-04-30 2019-06-18 Workiva Inc. System and method for convergent document collaboration
US10534852B2 (en) * 2015-09-30 2020-01-14 Samsung Display Co., Ltd. Display system and virtual web device in the cloud
CN106599000A (zh) * 2015-10-19 2017-04-26 阿里巴巴集团控股有限公司 一种页面处理方法及设备
CN107526716B (zh) * 2016-09-30 2020-02-11 腾讯科技(深圳)有限公司 邮件显示方法和装置
US20180191798A1 (en) * 2016-12-30 2018-07-05 Google Inc. Methods and systems for server-side rendering of native content for presentation
US10552480B1 (en) * 2017-02-21 2020-02-04 Amazon Technologies, Inc. Package management for asset processing
CN112416478A (zh) * 2019-08-20 2021-02-26 北京国双科技有限公司 信息展示方法及系统
US11755825B2 (en) 2019-09-12 2023-09-12 Workiva Inc. Method, system, and computing device for facilitating private drafting
CN111338628B (zh) * 2020-03-10 2023-07-18 中国联合网络通信集团有限公司 组件渲染方法及设备
US11263387B1 (en) * 2020-05-05 2022-03-01 Progress Software Corporation Technology agnostic page builder architecture
US11100281B1 (en) 2020-08-17 2021-08-24 Workiva Inc. System and method for maintaining links and revisions
US11443108B2 (en) 2020-08-17 2022-09-13 Workiva Inc. System and method for document management using branching
CN112817915A (zh) * 2021-02-01 2021-05-18 浪潮云信息技术股份公司 一种自动化的多产品文档统一发布展示方法
US11100277B1 (en) 2021-02-15 2021-08-24 Workiva Inc. Systems, methods, and computer-readable media for flow-through formatting for links
US11354362B1 (en) 2021-05-06 2022-06-07 Workiva Inc. System and method for copying linked documents
CN113704824A (zh) * 2021-08-31 2021-11-26 平安普惠企业管理有限公司 页面引导标记的同步生成方法、装置、设备及存储介质
US11640495B1 (en) 2021-10-15 2023-05-02 Workiva Inc. Systems and methods for translation comments flowback

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236917A1 (en) * 2002-06-17 2003-12-25 Gibbs Matthew E. Device specific pagination of dynamically rendered data

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473609B1 (en) 1995-12-11 2002-10-29 Openwave Systems Inc. Method and architecture for interactive two-way communication devices to interact with a network
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
US6178430B1 (en) * 1998-05-11 2001-01-23 Mci Communication Corporation Automated information technology standards management system
FI19992746A (fi) 1998-12-28 2000-06-28 Spyglass Inc Menetelmä ja järjestelmä elektronisen datasisällön muuntamiseksi langattomille laitteille
EP1188142A1 (en) * 1999-05-28 2002-03-20 Anoto AB Recording of information
JP2001195391A (ja) 2000-01-14 2001-07-19 Nec Information Service Ltd フォーマット変換・ページ分割中継サーバ
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
AU2001259590A1 (en) 2000-05-08 2001-11-20 Leap Wireless International, Inc. Method of converting html/xml to hdml/wml in real-time for display on mobile devices
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US20020019812A1 (en) 2000-06-16 2002-02-14 Board Karen Eleanor System and service for receiving, customizing, and re-broadcasting high-speed financial data to users operating wireless network-capable devices
WO2002050719A2 (en) * 2000-12-18 2002-06-27 Kargo, Inc. A system and method for delivering content to mobile devices
GB0107784D0 (en) * 2001-03-28 2001-05-16 Hewlett Packard Co Improvement relating to developing documents
US20040019628A1 (en) 2002-07-09 2004-01-29 Puri Anish N. System for remotely rendering content for output by a printer
US7016963B1 (en) * 2001-06-29 2006-03-21 Glow Designs, Llc Content management and transformation system for digital content
US7162221B2 (en) * 2001-12-14 2007-01-09 Inphonic, Inc. Systems, methods, and computer program products for registering wireless device users in direct marketing campaigns
US20040110490A1 (en) * 2001-12-20 2004-06-10 Steele Jay D. Method and apparatus for providing content to media devices
JP2003271508A (ja) 2002-03-14 2003-09-26 Ntt Comware Corp 携帯端末向けコンテンツ変換システム、及びコンテンツ変換方法
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
JP2005018390A (ja) 2003-06-26 2005-01-20 Hitachi Ltd 記述言語変換方法及び実施システム並びに処理プログラム
CN100440208C (zh) 2003-06-30 2008-12-03 国际商业机器公司 改进万维网设备中超文本标记语言页面表现的方法和系统
US7356843B1 (en) * 2003-10-01 2008-04-08 Symantec Corporation Security incident identification and prioritization
NO20034724D0 (no) * 2003-10-22 2003-10-22 Opera Software Asa Presentasjon av HTML-innhold på en skjermterminal
GB2410814A (en) 2004-02-05 2005-08-10 Stephen John Doyle Document conversion enabling browser content across different types of terminal devices
JP4389707B2 (ja) 2004-07-16 2009-12-24 ソニー株式会社 電子機器装置、サーバ装置、Webページ処理方法及びそのプログラム
EP1842140A4 (en) 2005-01-19 2012-01-04 Truecontext Corp APPLICATIONS BASED ON MOBILE FORMS ORDERED BY RULES
JP2006243829A (ja) 2005-02-28 2006-09-14 Toshiba Corp ウェブコンテンツ変換方法およびウェブコンテンツ変換システム
US7665016B2 (en) * 2005-11-14 2010-02-16 Sun Microsystems, Inc. Method and apparatus for virtualized XML parsing
US20070288853A1 (en) * 2006-06-09 2007-12-13 Nextair Corporation Software, methods and apparatus facilitating presentation of a wireless communication device user interface with multi-language support

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236917A1 (en) * 2002-06-17 2003-12-25 Gibbs Matthew E. Device specific pagination of dynamically rendered data

Also Published As

Publication number Publication date
EP2069970A1 (en) 2009-06-17
JP2010505194A (ja) 2010-02-18
CN101523386A (zh) 2009-09-02
CN101523386B (zh) 2013-05-22
KR20090077807A (ko) 2009-07-15
WO2008039581A1 (en) 2008-04-03
EP2069970A4 (en) 2010-01-06
HK1137534A1 (en) 2010-07-30
US10452756B2 (en) 2019-10-22
JP5108016B2 (ja) 2012-12-26
US20080177825A1 (en) 2008-07-24
US20080155396A1 (en) 2008-06-26

Similar Documents

Publication Publication Date Title
KR101117396B1 (ko) 원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼
US9479343B2 (en) Engine for processing content rules associated with locations in a page
US8224308B1 (en) Mobile device catalog registration based on user agents and customer snapshots of capabilities
US7996000B1 (en) Managing page sizes for a mobile device using estimation of content customizer techniques
US9813870B2 (en) Using location-based request data for identifying beacon locations
US10282463B2 (en) Displaying a number of events that have a particular value for a field in a set of events
US7627648B1 (en) Customizing and storing web pages for mobile on web
US8381096B2 (en) Managing list tailoring for a mobile device
US7904062B2 (en) Scrolling mobile advertisements
US9405791B2 (en) Remotely updated toolbar language translation service
EP3485450B1 (en) Network based advertisement data traffic latency reduction
US7668942B2 (en) Generating document templates that are robust to structural variations
US20060294396A1 (en) Multiplatform synchronized data access from mobile devices of dynamically aggregated content
US20090048821A1 (en) Mobile language interpreter with text to speech
US8468145B2 (en) Indexing of URLs with fragments
US9723057B2 (en) Reducing web page load latency by scheduling sets of successive outgoing HTTP calls
US8788342B2 (en) Intelligent feature expansion of online text ads
US20070162566A1 (en) System and method for using a mobile device to create and access searchable user-created content
US10019226B2 (en) Real time indication of previously extracted data fields for regular expressions
US20100146051A1 (en) Managing Differences in User Devices When Sharing Content on Mobile Devices
US8838728B2 (en) Method, system, apparatus, network entity and computer program product for providing a user with an editable webpage
CN104965842B (zh) 搜索推荐方法和装置
WO2008141427A1 (en) Method and system for automatically generating web page transcoding instructions
WO2017197889A1 (zh) 一种关键字链接方法、装置及系统
US7590634B2 (en) Detection of inaccessible resources

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190117

Year of fee payment: 8