KR101117396B1 - 원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼 - Google Patents
원격 디바이스에 콘텐츠를 렌더링하기 위한 플랫폼 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/114—Pagination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Abstract
마크업 언어(ML) 다큐먼트를, 목표 원격 디바이스에 의한 디스플레이를 위해 후속하여 제공되는 디바이스 특정 언어의 다큐먼트로 맞춤 렌더링하는 플랫폼이 개시된다. 목표 원격 디바이스 및 ML 다큐먼트에 대한 렌더링 콘텍스트는, 목표 원격 디바이스에 의한 디스플레이를 위해 후속하여 전달되는 페이지에 페이지 매김을 하고 완전히 렌더링할 수 있는 프로세스를 수행하는 플랫폼에 의해 수신된다. 디바이스 특정 언어 다큐먼트에 대해 미디어 아이템의 추가 프로세싱을 수행하기 위해 포스트 렌더링 프로세서도 제공될 수 있다. 이러한 추가의 프로세싱은 디바이스 특정 언어 다큐먼트의 페이지에 미디어 아이템을 임베드하거나 그 페이지로의 링크를 포함하는 것을 포함할 수 있다. 원격 디바이스는 네트워크를 통해 유선 및/또는 무선 통신을 제공하는 클라이언트 디바이스로서 배열될 수 있다.
마크업 언어, 다큐먼트, 원격 디바이스, 디스플레이, 렌더링, 플랫폼, 페이지 매김
Description
본 출원은 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 태그의 리스트가 하기에 리스트되어 있다.
구조 태그
모듈 태그
두 개의 카테고리에 있는 태그들의 이름이 그들의 기능성을 설명하는 경향이 있지만, 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)
- 원격 디바이스에 의한 디스플레이를 위해 마크업 언어(markup language; ML) 다큐먼트를 렌더링하는 방법으로서,상기 ML 다큐먼트를 수신하는 단계;상기 원격 디바이스 고유의 렌더링 콘텍스트를 수신하는 단계 - 상기 렌더링 콘텍스트는 상기 원격 디바이스에 의한 후속 디스플레이를 위해 상기 ML 다큐먼트의 렌더링을 인에이블하는 정보를 포함함 - ;기존의 ML ID와 현재 관계없는 각각의 고유 스트링에 대하여 일시 마크업 언어(ML) ID를 작성하는 단계;각각의 기존 ML ID 및 각각의 일시 ML ID의 일시 인덱스를 생성하는 단계;상기 일시 인덱스를 복수의 프로세스 중 적어도 하나에 사용하여 상기 ML 다큐먼트에 각각의 고유 스트링을 렌더링하는 단계;상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여 상기 ML 다큐먼트의 페이지 매김(pagination)을 인에이블하는 단계 - 렌더링된 상기 ML 다큐먼트에서 각각의 페이지의 크기는 상기 원격 디바이스에 의한 디스플레이를 위한 유효 크기보다 크지 않게 페이지가 매겨짐 -;상기 렌더링 콘텍스트 및 일시 인덱스를 사용하여, 상기 ML 다큐먼트를 디바이스 특정 언어의 다큐먼트에 완전히 렌더링하기 위한 적어도 하나의 프로세스를 인에이블하는 단계;상기 원격 디바이스에 제공되기 전에 상기 디바이스 특정 언어 다큐먼트로부터 상기 일시 인덱스 및 각각의 일시 ML ID를 제거하는 단계; 및상기 디바이스 특정 언어 다큐먼트가 상기 원격 디바이스에 제공되도록 인에이블하는 단계를 포함하는 렌더링 방법.
- 제1항에 있어서,상기 디바이스 특정 언어 다큐먼트에 미디어 아이템을 임베딩하는 단계; 또는,상기 디바이스 특정 언어 다큐먼트에 상기 미디어 아이템으로의 링크를 포함하는 단계를 더 포함하는 렌더링 방법.
- 삭제
- 제1항에 있어서,상기 수신된 ML 다큐먼트를 수집하는 단계를 더 포함하고, 상기 수집하는 단계는 유닛을 모듈에 부가하거나, 블랭크(blank)를 채우거나, 헤더를 부가하거나, 풋터(footer)를 부가하는 것 중 적어도 하나를 포함하는 렌더링 방법.
- 삭제
- 삭제
- 제1항에 있어서,상기 마크업 언어는 상기 원격 디바이스 상에 상기 ML 다큐먼트에 있는 콘텐츠를 디스플레이하기 위해 저자의 인텐트(intent)를 제공하는 모바일 마크업 언어이고, 상기 원격 디바이스에 의한 디스플레이를 위해 렌더링되는 콘텐츠의 실제 배열은 적어도 부분적으로 상기 렌더링 콘텍스트를 기초로 하는 렌더링 방법.
- 제1항에 있어서,상기 ML 다큐먼트의 렌더링은,상기 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정하고,관계없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheet; CSS)를 축소하고,축소된 캐스케이딩 스타일 시트를 해제하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화하고,상기 원격 디바이스와 관계없는 임의의 ML 코드를 제거하여 상기 ML 다큐먼트를 간소화하고,각각의 미디어 아이템의 하나 이상의 속성을 상기 렌더링된 ML 다큐먼트와 함께 포함되도록 특정하고,각 페이지 크기를 추정하여, 상기 원격 디바이스용의 유효 크기보다 크지 않은 크기로 상기 ML 다큐먼트의 페이지를 다시 페이지 매기고,상기 원격 디바이스용의 유효 크기보다 더 크게 렌더링될 것으로 추정되는 상기 ML 다큐먼트의 페이지에 ML 코드를 짜깁기하고(tailoring),미디어 아이템의 위치를 포함하도록 URL을 재기입하고, 또는세션 식별 정보를 포함하도록 URL을 재기입하는것을 포함하는 상기 복수의 프로세스 중 적어도 하나를 포함하는 렌더링 방법.
- 제1항에 있어서,상기 원격 디바이스는 네트워크를 통해 유선 또는 무선 통신 중 적어도 하나를 제공하는 렌더링 방법.
- 디스플레이를 위해 마크업 언어(ML) 다큐먼트를 렌더링하는 시스템으로서,렌더링되는 상기 ML 다큐먼트를 디스플레이되도록 하는 원격 디바이스, 및액션들을 수행하도록 배치된 플랫폼을 포함하고,상기 액션들은,다른 리소스로부터 렌더링 콘텍스트 및 상기 ML 다큐먼트를 수신하는 액션 - 상기 렌더링 콘텍스트는 상기 원격 디바이스에 의한 후속 디스플레이를 위해 상기 ML 다큐먼트의 렌더링을 인에이블하는 정보를 포함함 -,기존의 ML ID와 현재 관계없는 각각의 고유 스트링에 대하여 일시 마크업 언어(ML) ID를 작성하는 액션,각각의 기존 ML ID 및 각각의 일시 ML ID의 일시 인덱스를 생성하는 액션,상기 일시 인덱스를 복수의 프로세스 중 적어도 하나에 사용하여 상기 ML 다큐먼트에 각각의 고유 스트링을 렌더링하는 액션,상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여 상기 ML 다큐먼트에 페이지를 매기는 액션 - 렌더링된 상기 ML 다큐먼트에 있는 각 페이지의 크기는 상기 원격 디바이스에 의한 디스플레이를 위한 유효 크기보다 크지 않도록 페이지가 매겨짐 -,상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여, 상기 ML 다큐먼트를 디바이스 특정 언어의 다큐먼트로 완전히 렌더링하기 위한 적어도 하나의 프로세스를 인에이블하는 액션,상기 원격 디바이스에 제공되기 전에 상기 디바이스 특정 언어 다큐먼트로부터 상기 일시 인덱스 및 각각의 일시 ML ID를 제거하는 액션, 및상기 원격 디바이스에 의한 디스플레이를 위해 상기 디바이스 특정 언어 다큐먼트를 네트워크를 통하여 제공하는 액션을포함하는 렌더링 시스템.
- 제10항에 있어서,상기 플랫폼은,상기 디바이스 특정 언어 다큐먼트에 미디어 아이템을 임베딩(embedding)하는 액션; 또는,상기 디바이스 특정 언어 다큐먼트에 상기 미디어 아이템으로의 링크를 포함하는 액션을 포함하는 추가의 액션들 중 적어도 하나를 실행하는 렌더링 시스템.
- 삭제
- 제10항에 있어서,상기 플랫폼은 상기 수신된 ML 다큐먼트를 수집하는 액션을 포함하는 추가의 액션을 수행하고, 상기 수집하는 액션은 유닛을 모듈에 부가하거나, 블랭크를 채우거나, 헤더를 부가하거나, 풋터를 부가하는 것 중 적어도 하나를 포함하는 렌더링 시스템.
- 삭제
- 삭제
- 제10항에 있어서,상기 마크업 언어는 상기 원격 디바이스 상에 상기 ML 다큐먼트에 있는 콘텐츠를 디스플레이하기 위해 저자의 인텐트(intent)를 제공하는 모바일 마크업 언어이고, 상기 원격 디바이스에 의한 디스플레이를 위한 콘텐츠의 실제 배열은 적어도 부분적으로 상기 렌더링 콘텍스트를 기초로 하는 렌더링 시스템.
- 제10항에 있어서,상기 ML 다큐먼트의 렌더링은,상기 원격 디바이스에 관한 위치 정보가 요청에 응답하여 제공될 수 있는지를 결정하고,관계없는 시트를 제거함으로써 캐스케이딩 스타일 시트(cascading style sheet; CSS)를 축소하고,축소된 캐스케이딩 스타일 시트를 해제하고 ML 코드로서 재기입함으로써 캐스케이딩 스타일 시트를 폰트화하고,상기 원격 디바이스와 관계없는 임의의 ML 코드를 제거하여 상기 ML 다큐먼트를 간소화하고,각각의 미디어 아이템의 하나 이상의 속성을 상기 렌더링된 ML 다큐먼트와 함께 포함되도록 특정하고,각 페이지 크기를 추정하여, 상기 원격 디바이스용의 유효 크기보다 크지 않은 크기로 상기 ML 다큐먼트의 페이지를 다시 페이지 매기고,상기 원격 디바이스를 위한 유효 크기보다 더 크게 렌더링될 것으로 추정되는 상기 ML 다큐먼트의 페이지에 ML 코드를 짜깁기하고,미디어 아이템의 위치를 포함하도록 URL을 재기입하고, 또는세션 식별 정보를 포함하도록 URL을 재기입하는것을 포함하는 상기 복수의 프로세스 중 적어도 하나를 실행하는 것을 포함하는 렌더링 시스템.
- 제10항에 있어서,상기 원격 디바이스는 상기 네트워크를 통해 유선 또는 무선 통신 중 적어도 하나를 제공하는 렌더링 시스템.
- 삭제
- 원격 디바이스에 의한 디스플레이를 위해 마크업 언어(ML) 다큐먼트의 렌더링을 인에이블하는 서버로서,데이터를 저장하는 메모리; 및액션들을 인에이블하는 프로세서를 포함하고,상기 액션들은,상기 ML 다큐먼트를 수신하는 액션;상기 원격 디바이스 고유의 렌더링 콘텍스트를 수신하는 액션 - 상기 렌더링 콘텍스트는 상기 원격 디바이스에 의한 후속 디스플레이를 위해 상기 ML 다큐먼트를 디바이스 특정 언어의 다큐먼트로 렌더링하는 것을 인에이블하는 정보를 포함함 - ;기존의 ML ID와 현재 관계없는 각각의 고유 스트링에 대하여 일시 마크업 언어(ML) ID를 작성하는 액션;각각의 기존 ML ID 및 각각의 일시 ML ID의 일시 인덱스를 생성하는 액션;상기 일시 인덱스를 복수의 프로세스 중 적어도 하나에 사용하여 상기 ML 다큐먼트에 각각의 고유 스트링을 렌더링하는 액션;상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여 상기 ML 다큐먼트의 페이지 매김을 인에이블하는 액션 - 상기 디바이스 특정 언어 다큐먼트에 있는 각 페이지의 크기는 상기 원격 디바이스에 의한 디스플레이를 위한 유효 크기보다 크지 않도록 페이지가 매겨짐 -;상기 렌더링 콘텍스트 및 일시 인덱스를 이용하여, 상기 ML 다큐먼트를 상기 디바이스 특정 언어의 다큐먼트에 완전히 렌더링하기 위한 적어도 하나의 프로세스를 인에이블하는 액션;상기 원격 디바이스에 제공되기 전에 상기 디바이스 특정 언어 다큐먼트로부터 상기 일시 인덱스 및 각각의 일시 ML ID를 제거하는 액션; 및상기 디바이스 특정 언어 다큐먼트가 상기 원격 디바이스에 제공되도록 인에이블하는 액션을 포함하는 서버.
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)
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)
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)
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 |
-
2006
- 2006-09-29 US US11/537,593 patent/US10452756B2/en active Active
-
2007
- 2007-07-03 JP JP2009530488A patent/JP5108016B2/ja active Active
- 2007-07-03 CN CN2007800364167A patent/CN101523386B/zh not_active Expired - Fee Related
- 2007-07-03 WO PCT/US2007/072796 patent/WO2008039581A1/en active Application Filing
- 2007-07-03 KR KR1020097008781A patent/KR101117396B1/ko active IP Right Grant
- 2007-07-03 EP EP07799303A patent/EP2069970A4/en not_active Withdrawn
- 2007-10-31 US US11/933,082 patent/US20080177825A1/en not_active Abandoned
-
2010
- 2010-03-02 HK HK10102183.1A patent/HK1137534A1/xx not_active IP Right Cessation
Patent Citations (1)
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 |