KR20060067141A - 모바일 뷰잉을 위한 원격 컨텐츠 렌더링 - Google Patents

모바일 뷰잉을 위한 원격 컨텐츠 렌더링 Download PDF

Info

Publication number
KR20060067141A
KR20060067141A KR1020050115373A KR20050115373A KR20060067141A KR 20060067141 A KR20060067141 A KR 20060067141A KR 1020050115373 A KR1020050115373 A KR 1020050115373A KR 20050115373 A KR20050115373 A KR 20050115373A KR 20060067141 A KR20060067141 A KR 20060067141A
Authority
KR
South Korea
Prior art keywords
logic
rendering
components
rendered
subset
Prior art date
Application number
KR1020050115373A
Other languages
English (en)
Inventor
레오 로버트 블룸
크랙 엠. 블랙우드
필립 에이. 맥쿡
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피
Publication of KR20060067141A publication Critical patent/KR20060067141A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/124Parallel printing or parallel ripping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1289Remote printer device, e.g. being remote from client or server in server-client-printer device configuration, e.g. the server does not see the printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1242Image or content composition onto a page
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1246Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1256User feedback, e.g. print preview, test print, proofing, pre-flight checks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 시스템, 방법, 매체 및 다른 실시예들이 개시된다. 일 예시 시스템(100) 실시예는 원격 렌더링 서버(120)로 렌더링 요청이 이루어져야 하는 컨텐츠 구성요소를 식별하는 식별 로직(110)을 포함한다. 예시 시스템(100)은 상기 원격 렌더링 서버(120)로 상기 렌더링 요청을 제공하는 요청 로직(130) 및 상기 렌더링 요청에 응답하여 상기 원격 렌더링 서버(120)로부터 상기 컨텐츠 구성요소의 렌더링된 버전을 다시 수신하는 수신 로직(140)을 또한 포함할 수 있다. 예시 시스템(100)은 상기 컨텐츠 구성요소의 상기 렌더링된 버전을 출력 로직으로 분배하는 분배 로직(150)을 또한 포함할 수 있다.
모바일 뷰잉, 렌더링, 컨텐츠

Description

모바일 뷰잉을 위한 원격 컨텐츠 렌더링{REMOTE CONTENT RENDERING FOR MOBILE VIEWING}
명세서 내에 통합되어 그 일부를 구성하는, 첨부되는 도면들은 본 발명의 예시적인 다양한 실시예들을 설명하는 각종 예시적인 시스템, 방법 등을 도시한다. 도면 내 도시된 구성요소의 경계들(예컨대, 박스, 박스의 그룹 또는 다른 형상)은 경계들의 일 예시를 나타낸다. 당업자라면, 하나의 구성요소가 복수의 구성요소로 설계되거나, 복수의 구성요소가 하나의 구성요소로 설계될 수 있음을 알 수 있을 것이다. 다른 구성요소의 내부 컴포넌트로 도시된 구성요소가 외부 컴포넌트로 구현될 수 있으며, 그 역도 가능하다. 또한 구성요소들은 비례에 맞게 그려져 있지 않을 수 있다.
도 1은 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 시스템도.
도 2는 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 다른 예시적인 시스템도.
도 3은 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 또 다른 예시적인 시스템도.
도 4는 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 방법도.
도 5는 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 다른 예시적인 방법도.
도 6은 본 명세서에서 도시된 예시적인 시스템 및 방법이 동작할 수 있는 예시적인 컴퓨팅 환경도.
도 7은 본 명세서에서 도시된 예시적인 시스템 및 방법이 동작할 수 있는 예시적인 이미지 형성 장치도.
도 8은 예시적인 데이터 패킷도.
도 9는 예시적인 애플리케이션 프로그래밍 인터페이스(API)도.
모바일 전화기의 일부로 내장되는 컴퓨터는 프로세서 주기 및 메모리와 같은 리소스에 있어서 제한이 있다. 따라서, 모바일 전화기는 메모리 집약(memory-intensive) 항목들(예컨대, 폰트)을 저장하고 프로세서 집약 작업들(예컨대, 렌더링)을 수행하는 것과 같은 작업들에 대해서는 힘겨워할 수 있다. 모바일 전화 통신과 관련된 프린터 또한 컴퓨팅 리소스가 제한될 수 있으며, 그에 따라 메모리 집약 항목들을 저장하고 프로세서 집약 작업들을 수행하는데 있어서 비슷한 어려움을 겪을 수 있다. 가용 메모리 및 프로세서 주기가 제한된 상태에서, 복수의 폰트 저장을 포함하는 종래의 프린터 구성은 모바일 환경에서 실용적이지 못할 수 있다. 예를 들면, 모바일 전화기 및/또는 모바일 전화 통신과 관련된 프 린터에서 복수의 폰트를 저장하는 것은 비실용적일 수 있는데 특히, 폰트가 렌더링을 필요로 할 수 있는 그림문자(glyph)를 상당수 포함하는 경우 그러하다(예컨대, 아시아 언어 폰트).
가용 컴퓨팅 리소스가 제한된 상태를 극복하기 위한 종래의 시스템이 취하는 한 가지 접근 방식은 메모리를 추가하는 것인데, 그에 따라 모바일 전화기 및/또는 관련 프린터에 대한 크기, 무게 및 비용도 늘어나게 된다. 또한, 종래의 시스템은 좀 더 강력한 프로세서를 추가할 수 있는데, 이것은 크기, 무게 및 비용을 증가시키면서 배터리 수명을 감소시키고/감소시키거나 열 발산 문제를 초래한다.
가용 컴퓨팅 리소스가 제한된 상태를 극복하기 위한 종래의 시스템이 취하는 다른 접근 방식은 폰트와 같은 메모리 집약 항목들을 폰트 서버 상에 저장하고/저장하거나 렌더링 서비스들을 렌더링 서버로 이동시키는 것이다. 따라서 종래의 모바일 전화기 시스템은 모바일 전화기를 위해 전체 문서를 렌더링하고, 그 "뷰잉할 수 있는 컨텐츠"를 모바일 전화기로 전달하는 렌더링 서버와 통신할 수 있다.
본 발명은, 문서보다 규모가 작은 컨텐츠 구성요소의 원격 렌더링을 가능하게 하여 지면 배정(page layout)과 같은 높은 수준의 요청없이도 제한된 리소스의 모바일 장치에서 컨텐츠 렌더링을 도모하는 것을 목표로 한다.
본 명세서에서 설명되는 예시적인 시스템 및 방법은 모바일 뷰잉을 위한 원격 컨텐츠 렌더링에 관한 것이다. 일 예시에서, 원격 렌더링은 문서 기반이 아닌 구성요소 기반이 될 수 있다. 본 명세서에서 사용되는 원격 렌더링은 통신 시스템(예컨대, 모바일 전화기) 내에서 다른 로직들과 물리적으로 함께 상주하지 않는 로직(예컨대, 렌더링 서버)에 의해 수행되는 렌더링을 지칭한다. 따라서, 일 예시에서 원격 렌더링 서버는, 모바일 전화기 상에서 디스플레이될 수 있고/있거나 프린터로 프린트될 수 있는 문서 크기의 객체보다는 작은, 그림문자(프린트할 수 있는 문자, 폰트 구성요소), 문자 세트에서 문자 하나 및 기타 비슷한 구성요소 레벨의 컨텐츠 구성요소에 대한 그래픽 표시를 생성할 수 있다. 설명하자면, 모바일 전화기가 렌더링될 컨텐츠를 갖고 있지만 렌더링 리소스(예컨대, 프로세서 주기, 메모리)가 부족한 경우, 모바일 전화기는 무선 통신 네트워크(예컨대, 휴대폰 네트워크)를 통해 원격 렌더링 서버로 컨텐츠를 전달 및/또는 식별하는 신호를 직접적으로 및/또는 간접적으로 전송할 수 있다. 상술한 바와 같이, 렌더링될 컨텐츠 구성요소는 종래의 파일, 폰트, 문서 등과 같이 큰 규모의 구성요소가 아니라 규모 면에서 더 작은 것(예컨대, 단일 그림문자, 문자들의 소규모 세트, 벡터 그래픽을 사용하는 도면)이 될 수 있다.
원격 렌더링 서버는 컨텐츠 구성요소를 뷰잉할 수 있고/있거나 프린트할 수 있는 컨텐츠로 렌더링한다. 그 다음, 뷰잉할 수 있고/있거나 프린트할 수 있는 컨텐츠는 요청한 모바일 전화기로 다시 전달될 수 있다. 그 다음, 요청한 모바일 전화기는 예컨대, 렌더링된 컨텐츠 구성요소를 디스플레이하고/하거나 프린트를 위해 렌더링된 컨텐츠 구성요소를 프린터로 포워드한다. 다른 예시에서, 뷰잉할 수 있고/있거나 프린트할 수 있는 컨텐츠는 요청한 모바일 전화기로 다시 전달되지 않 고, 원격 렌더링 서버에서 프린터로 전달될 수 있다.
일 예시에서, 렌더링될 컨텐츠 구성요소(예컨대, 텍스트, 문자들)는 XHTML(Extensible Hypertext Markup Language) 템플릿- 템플릿은 정적 및 동적 구성요소 양자 모두를 포함하는 XHTML 문서임 -과 관련된다. 정적 구성요소들은 미리 구성되어 변경되지 않는 항목들인 반면, 동적 구성요소들은 프린트를 위해 템플릿이 준비됨에 따라 데이터로 채워지는 가변 항목들이다. 정적 구성요소는 예컨대, 정적 텍스트 라벨과 같은 항목일 수 있다. 예를 들면, 다수의 이메일이 "보낸 사람(From)" 텍스트 라벨을 포함한다. 따라서, 모바일 전화 통신과 관련된 XHTML-기반 이메일 템플릿은 정적 구성요소로서 이 라벨을 위한 유니코드(UNICODE) 문자들을 포함할 수 있다. 동적 구성요소는 예컨대, 모바일 전화기로 전달되는 이메일 내에 수신된 문자열을 위한 유니코드 코딩이 될 수 있다. 예를 들면, 이메일은 Mr. 황으로부터 수신될 수 있다. 송신자 이름을 표시하는 문자열에 대한 유니코드 문자 코딩이 XHTML 템플릿- 예컨대, 앞서 언급된 "보낸 사람" 텍스트 라벨과 관련된 가변의 보낸 사람 필드 -의 위치로 삽입될 수 있다.
(전화기 및/또는 프린터 상의) 템플릿과 관련된 전체 문서를 렌더링하는 것이 아니라 템플릿의 일부가 렌더링 서버에 의해 렌더링될 수 있다. 이 렌더링 서버는 요청에 따라 구성요소들을 렌더링하거나, 또는 미리 렌더링된 구성요소들을 저장해 두었다가 뷰잉할 수 있고/있거나 프린트할 수 있는 컨텐츠로서 사용이 요구되는 때 이들을 제공할 수 있다. 그 다음, 템플릿과 관련된 문자, 단어, 삽화 등과 같은 컨텐츠 구성요소가 모바일 전화기 상에 디스플레이되고/되거나 원격 프린 터로 프린트되는 경우, 예시적인 시스템 및 방법은 원격 렌더링 서버로 구성요소를 전달 및/또는 식별시키고, 렌더링된 구성요소를 다시 수신하여 렌더링된 구성요소를 디스플레이하고/하거나 프린트를 위해 그것을 프린터로 재전송할 수 있다. 일 예시에서, 렌더링된 구성요소는 블루투스(Bluetooth; IEEE 802.15.1) 기본 프린트 프로파일(BPP: basic print profile)을 사용하여, 모바일 전화기나 렌더링 서버 어느 한 쪽에도 물리적으로 연결되지 않은 프린터로 전달될 수 있다.
일 예시에서, 모바일 전화기 및/또는 프린터와 관련된 모바일 컴퓨팅 로직은 원격 렌더링된 컨텐츠 구성요소를 캐시하여 원격 렌더링 통신의 왕복 발생 회수를 줄여줄 수 있다. 캐시에 있는 렌더링된 컨텐츠 구성요소는 예컨대, 에이징 알고리즘(aging algorithm), 사용자 명령, 메모리 관리자 등에 의해 캐시로부터 삭제될 수 있다.
이하에서는, 본 명세서에서 채택한 선택된 용어들의 정의를 설명한다. 정의는 용어의 범위에 속하고, 구현을 위해 사용될 수 있는 다양한 예시들 및/또는 컴포넌트 형태들을 포함한다. 예시들은 제한의 의미로 의도되지 않는다. 용어의 단일 및 복수 형태는 정의에 속할 수 있다.
본 명세서에서 사용되는 용어,"컴퓨터 컴포넌트"는 컴퓨터 관련 엔티티, 하드웨어, 펌웨어, 소프트웨어나 이들의 결합 또는 실행중인 소프트웨어를 지칭한다. 예를 들면, 컴퓨터 컴포넌트는 프로세서상에서 실행중인 프로세스, 프로세서, 객체, 실행가능, 실행 스레드(a thread of execution), 프로그램 및 컴퓨터가 될 수 있으며 다만 이에 제한되지 않는다. 하나 이상의 컴퓨터 컴포넌트가 프로세스 및/ 또는 실행 스레드 내에 상주할 수 있으며, 컴퓨터 컴포넌트는 하나의 컴퓨터 상에 로컬이 되고/되거나 2 이상의 컴퓨터 간에 분산될 수 있다.
본 명세서에서 사용되는 "컴퓨터 통신"은 2 이상의 컴퓨팅 장치들(예컨대, 컴퓨터, 프린터, 휴대폰) 사이의 통신을 지칭하며, 예컨대 네트워크 전송, 파일 전송, 애플릿 전송, 이메일, HTTP(hypertext transfer protocol) 전송 등이 될 수 있다. 컴퓨터 통신은, 예컨대 무선 시스템(예컨대, IEEE 802.11, IEEE 802.15), 이더넷 시스템, 토큰링 시스템(token ring system; 예컨대, IEEE 802.5), LAN, 광역 네트워크(WAN: wide area network), 포인트 투 포인트 시스템(point-to-point system), 회로 스위칭 시스템, 패킷 스위칭 시스템 및 이들의 결합 등에 걸쳐 일어날 수 있다.
본 명세서에서 사용되는 "컴퓨터 판독가능 매체"라는 용어는 직접 또는 간접적으로 신호, 명령어들 및/또는 데이터를 제공하는데 참여하는 매체를 지칭한다. 컴퓨터 판독가능 매체는 비휘발성 매체, 휘발성 매체 및 전송 매체를 포함하는 형태를 취할 수 있으며 다만 이에 제한되지 않는다. 비휘발성 매체는 예컨대, 광학 또는 자기 디스크 등을 포함할 수 있다. 휘발성 매체는 예컨대, 광학 또는 자기 디스크, 동적 메모리 등을 포함할 수 있다. 전송 매체는 동축 케이블, 동선(copper wire), 광섬유 등을 포함할 수 있다. 전송 매체는 또한 전파(radio-wave) 및 적외선 데이터 통신을 하는 동안 생성되는 것과 같은 전자기 복사의 형태를 취하거나 하나 이상의 신호 그룹의 형태를 취할 수도 있다. 컴퓨터 판독가능 매체의 일반 형태는 플로피 디스크, 플렉시블 디스크(flexible disk), 하드 디스크, 자기 디스크, 기타 자기 매체, CD-ROM, 기타 광학 매체, 펀치 카드, 기타 홀 패턴을 갖는 물리적 매체, RAM, ROM, EPROM, 플래시-EPROM 또는 기타 메모리 칩이나 카드, 메모리 스틱, 반송파/펄스 및 컴퓨터, 프로세서 또는 기타 전자 장치에서 판독할 수 있는 기타 매체를 포함하며, 다만 이에 제한되지 않는다. 인터넷과 같은 네트워크를 통해 명령어들이나 소프트웨어를 전달하는데 사용되는 신호들은 "컴퓨터 판독가능 매체"로 간주될 수 있다.
본 명세서에서 사용되는 "데이터 저장장치(Data store)"는 데이터를 저장할 수 있는 물리적 및/또는 논리적 엔티티를 지칭한다. 데이터 저장장치는 예컨대, 데이터베이스, 테이블, 파일, 리스트, 큐, 힙(heap), 메모리, 레지스터 등이 될 수 있다. 데이터 저장장치는 하나의 논리적 및/또는 물리적 엔티티 내에 상주하고/상주하거나 2 이상의 논리적 및/또는 물리적 엔티티로 분산될 수 있다.
본 명세서에서 사용되는 "로직(logic)"은 기능(들)이나 액션(들)을 수행하기 위한 및/또는 다른 로직, 방법 및/또는 시스템에서 기능이나 액션을 일으키기 위한 하드웨어, 펌웨어, 소프트웨어 및/또는 각각의 결합을 포함하며 다만 이에 제한되지 않는다. 예를 들면, 원하는 애플리케이션 또는 요구(needs)에 따라 로직은 소프트웨어 제어형 마이크로프로세서(software controlled microprocessor), ASIC(application specific integrated circuit)과 같은 별도의 로직, 프로그램된 로직 장치 또는 명령어들을 포함하는 메모리 장치 등을 포함할 수 있다. 로직은 하나 이상의 게이트, 게이트들의 결합 또는 기타 회로 컴포넌트들을 포함할 수 있다. 로직은 완전히 소프트웨어로서 구현될 수도 있다. 복수의 논리 로직이 설명 되어 있지만, 복수의 논리 로직을 하나의 물리적 로직으로 통합하는 것이 가능할 수 있다. 마찬가지로, 단일 논리 로직이 설명되어 있지만, 단일 논리 로직을 복수의 물리적 로직으로 분산시키는 것이 가능할 수 있다.
"연동 접속(operable connection)" 또는 엔티티가 "연동 접속된(operably connected)" 연결이란 그 연결을 통해 신호, 물리적 통신 및/또는 논리적 통신이 전송 및/수신될 수 있는 것을 말한다. 일반적으로 연동 접속은 물리적 인터페이스, 전기적 인터페이스 및/또는 데이터 인터페이스를 포함하지만, 연동 접속은 이들 또는 연동 제어를 하기에 충분한 다른 유형의 접속들의 다른 결합을 포함할 수 있음을 알아야 한다. 예를 들면, 2개의 엔티티는 직접 또는 프로세서, 운영체제, 로직, 소프트웨어나 기타 엔티티와 같은 하나 이상의 중간 엔티티들을 통해 서로에게 신호를 전달할 수 있게 됨으로써 연동 접속될 수 있다. 로직 및/또는 물리적 통신 채널들이 연동 접속을 생성하는데 사용될 수 있다.
본 명세서에서 사용된 "신호"는 하나 이상의 전기나 광학 신호, 아날로그나 디지털 신호, 데이터, 하나 이상의 컴퓨터나 프로세서 명령어, 메시지, 비트나 비트 스트림 또는 기타 수신, 전송 및/또는 검출될 수 있는 수단을 포함하며, 다만 이에 제한되지 않는다.
본 명세서에서 사용된 "소프트웨어"는 판독, 해석, 컴파일 및/또는 실행될 수 있고, 컴퓨터, 프로세서나 기타 전자 장치로 하여금 기능, 액션 및/또는 동작을 원하는 방식으로 수행되게 하는 하나 이상의 컴퓨터 또는 프로세서 명령어들을 포함하며, 다만 이에 제한되지 않는다. 명령어들은 동적으로 및/또는 정적으로 링크 된 라이브러리들로부터 별도의 애플리케이션들이나 코드를 포함하는 루틴, 알고리즘, 모듈, 방법, 스레드 및/또는 프로그램과 같은 다양한 형태로 구현될 수 있다. 소프트웨어는 자립형(stand-alone) 프로그램, 함수 호출(로컬 및/또는 원격), 서블릿(servelet), 애플릿, 메모리나 운영체제의 일부에 저장된 명령어들 또는 다른 유형의 실행가능한 명령어들을 포함하는 다양한 실행가능 및/또는 로딩가능 형태로 구현될 수도 있으며, 다만 이에 제한되지 않는다. 당업자라면, 예컨대 원하는 애플리케이션의 사양, 소프트웨어가 실행되는 환경 및/또는 설계자/프로그래머의 소망 등에 따라 소프트웨어 형태가 달라질 수 있음을 이해할 것이다. 컴퓨터 판독가능 및/또는 실행가능 명령어들이 하나의 로직에 위치하고/위치하거나 2 이상의 통신, 협력 및/또는 병렬 처리 로직들 사이에 분산되어서 직렬, 병렬, 대량 병렬(massively parallel) 및 다른 방식으로 로딩 및/또는 실행될 수 있음 또한 알 수 있을 것이다.
본 명세서에서 기술되는 예시적인 시스템 및 방법의 다양한 컴포넌트들을 구현하기 위한 적당한 소프트웨어는 자바, 파스칼, C#, C++, C, CGI, 펄, SQL, API, SDK, 어셈블리, 펌웨어, 마이크로코드 및/또는 기타 언어 및 툴과 같은 프로그래밍 언어 및 툴을 사용하여 제작될 수 있다. 소프트웨어는, 전체 시스템이든 시스템의 컴포넌트이든 간에 제조업체의 제품으로 구현되어 앞서 정의된 컴퓨터 판독가능 매체의 일부로 유지 또는 제공될 수 있다. 소프트웨어의 다른 형태는 네트워크나 다른 통신 매체를 통해 수신인에게 소프트웨어의 프로그램 코드를 전송하는 신호를 포함할 수 있다. 그러므로 일 예시에서, 컴퓨터 판독가능 매체는 소프트웨어/펌웨 어가 웹 서버로부터 사용자에게로 다운로드될 때 이 소프트웨어/펌웨어를 나타내는 신호의 형태를 갖는다. 다른 예시에서, 컴퓨터 판독가능 매체는 소프트웨어/펌웨어가 웹 서버 상에서 유지될 때의 형태를 갖는다. 다른 형태들이 사용될 수도 있다.
본 명세서에서 사용된 "사용자"는 하나 이상의 사람, 소프트웨어, 컴퓨터나 기타 장치 또는 이들의 결합을 포함하며 다만 이에 제한되지 않는다.
이어지는 상세한 설명에서 일부는 알고리즘 및 메모리 내 데이터 비트 상의 심볼 표시로서 제공된다. 이들 알고리즘 설명 및 표시는 당업자가 다른 이들에게 작업의 취지를 전달하는데 사용되는 수단이다. 본 명세서에서 알고리즘은, 일반적으로 결과를 산출하는 일련의 동작들로 간주된다. 동작들은 물리적인 물리량의 조절을 포함할 수 있다. 일반적으로, 물리량은 반드시는 아니라 할지라도 로직 등 내에 저장, 전송, 결합, 비교 및 그 외에 조작될 수 있는 전기나 자기 신호의 형태를 취한다.
일반적으로 사용하는 것이기 때문에, 이들 신호를 비트, 수치, 구성요소, 심볼, 문자, 용어 또는 숫자 등으로서 지칭하는 것이 때때로 편리하다는 것이 증명되었다. 그러나 이들 및 유사한 용어들은 적절한 물리량과 관련되어야 하며, 단지 이들 물리량에 붙여진 편리한 라벨일 뿐임을 주의해야 한다. 구체적으로 다르게 언급되지 않는 한, 명세서 전체를 통해서 처리, 컴퓨팅, 계산, 결정, 디스플레이 등과 같은 용어는 컴퓨터 시스템, 로직, 프로세서 또는 물리(전기)량으로 표시되는 데이터를 조작하고 변환하는 유사한 전자 장치의 액션 및 프로세스를 지칭하는 것 으로 이해된다.
도 1은 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 시스템(100)을 도시한다. 시스템(100)은 렌더링 요청이 이루어질 컨텐츠 구성요소를 원격 렌더링 서버(120)에 식별시키도록 구성된 식별 로직(110)을 포함할 수 있다. 일 예시에서, 컨텐츠 구성요소는 렌더링될 수 있는 항목을 지칭하는데, 여기서 항목은 모바일 전화기와 같은 모바일 컴퓨팅 장치 내 전체 문서보다 작은 것이다. 따라서 컨텐츠 구성요소는 문서 기반이 아닌 구성요소 또는 구성요소 대 구성요소 기반으로 렌더링될 수 있다. 컨텐츠 구성요소는 예컨대, 그림문자, 폰트 구성요소, 문자, 벡터 그래픽 기반 도면(vector graphics based figure), 테이블, 차트, 단락 등이 될 수 있다. 일 예시에서, 컨텐츠 구성요소는 한국어, 일본어 또는 중국어 문자와 같은 아시아 언어 폰트 문자가 될 수 있다. 다른 예시에서, 컨텐츠 구성요소는 로고(logo)가 될 수 있다. 일 예시에서, 컨텐츠 구성요소는 XHTML 템플릿과 연관될 수 있다. 예를 들면, 컨텐츠 구성요소는 XHTML 템플릿으로 미리 프로그램(예컨대, 정적 구성요소)되거나, XHTML 템플릿 내 변수 위치에 저장되는 데이터 수치(예컨대, 동적 구성요소)로서 수신될 수 있다. 따라서 예시적인 시스템 및 방법은 높은 수준의 지면 배정을 요청 또는 수행하지 않고 원격 구성요소 렌더링을 요청할 수 있다. 높은 수준의 지면배정은, 예컨대 문서를 프린트할 프린터의 몫으로 남겨질 수 있다.
일 예시에서, 식별 로직(110)은 컨텐츠 구성요소를 렌더링하는데 필요로하는 제1 컴퓨팅 리소스와 시스템(100)과 관련된 모바일 컴퓨팅 플랫폼 상에서 이용가능 한 제2 컴퓨팅 리소스를 비교함으로써 컨텐츠 구성요소를 식별하도록 구성될 수 있다. 예를 들면, 식별 로직(110)은 모바일 전화기 상에서 이용가능한 메모리 및/또는 처리 주기가 그림문자를 렌더링하는데 충분한지 여부를 결정할 수 있다. 따라서 식별 로직(110)은 컨텐츠 구성요소가 시스템(100) 상에서 로컬로 렌더링될 수 있는지 또는 되어야하는지 여부를 결정하도록 구성될 수 있다. 예를 들면, 식별 로직(110)은 컨텐츠 구성요소와 데이터 저장장치 내에 저장된 구성요소들을 비교하여 그 컨텐츠 구성요소가 원격으로 렌더링되어야 하는지 여부를 결정할 수 있다. 설명하자면, 식별 로직(110)은 JPEG 이미지 구성요소는 프린터 기반 렌더링을 위해 프린터로 전송하도록 결정하지만, PNG(portable network graphics) 이미지 구성요소는 호환가능한 JPEG 포맷으로 변환하기 위해 원격 서버로 전송하도록 결정할 수 있다. 마찬가지로, 식별 로직(110)은 ASCII-인코딩된 문자를 프린터로 전송하고, 유니코드 UTF-8로 인코딩된 아시아 문자를, 렌더링을 위해 원격 서버로 전송하도록 결정할 수 있다.
컨텐츠 구성요소가 로컬로 렌더링되어야 할지, 어떤 원격 서비스가 사용되어야 할지 등의 결정은 능력 데이터 저장장치(160)에 저장된 정보에 적어도 일부 기반할 수 있다. 능력 데이터 저장장치(160)는, 예컨대 시스템(100)이 상호작용할 수 있는 장치들 및 그들 각각의 능력에 관한 정보를 저장할 수 있다. 예를 들면, 원격 서비스를 제공하는데 이용가능한 원격 서버들, 원격 서버 컨텐츠 구성요소 렌더링 능력, 항목을 프린트하는데 이용가능한 프린터들 및 프린터 컨텐츠 구성요소 렌더링 능력 등에 관한 정보가 능력 데이터 저장장치(160) 내에 저장될 수 있다. 일 예시에서, 능력 데이터 저장장치(160)는 장치 및/또는 서비스가 이용(불)가능해짐에 따라 동적으로 업데이트될 수 있다. 다른 예시들에서, 능력 데이터 저장장치(160)는 요청중인 장치에 로컬 또는 렌더링 서비스들에 대해 로컬일 수 있다.
시스템(100)은 렌더링 요청을 원격 렌더링 서버(120)로 제공하도록 구성되는 요청 로직(130)을 또한 포함할 수 있다. 요청 로직(130)은 컨텐츠 구성요소를 원격 렌더링 서버(120)로 제공하고/하거나 컨텐츠 구성요소를 렌더링 서버(120)로 식별시킬 수 있다. 예를 들면, "보일러판"이라는 단락은 렌더링될 백 개의 문자를 포함할 수 있다. 그러나, 보일러판 단락은 원격 렌더링 서버(120)로 제공될 수 있는 식별가능한 것일 수 있다(예컨대, GUID(globally unique identifier)에 의해). 따라서 일부 경우들에 있어서 요청 로직(130)은, 원격으로 렌더링될 실제의 항목을 전달하는 것이 아니라 컨텐츠 구성요소에 대한 식별자를 전달할 수 있다. 일 예시에서, 요청 로직(130)은 복수의 원격 렌더링 서버로 렌더링 요청을 제공할 수 있다. 요청 로직(130)은 이용가능성, 화질, 비용 등과 같은 파라미터들에 기초하여 원격 렌더링 서버를 선택할 수 있다. 다른 예시에서, 요청 로직(130)은 복수의 렌더링 서비스를 실질적으로 동시에 활용하여 렌더링 요청 세트를 병렬로 처리할 수 있다. 이 예시에서, 요청 로직(130)은 요청들에 고유의 식별자를 붙일 수 있는데, 이 식별자들은 수신 로직(140)에서 렌더링 응답들을 분류하고, 원하는 순서로 수신된 렌더링 컨텐츠를 조합하기 위해 사용된다.
요청 로직(130)은 다양한 방법을 사용하여 렌더링 요청을 원격 렌더링 서버(120)로 제공할 수 있다. 설명하자면, 요청 로직(130)은 무선 통신을 통해 원격 렌더링 서버(120)로 렌더링 요청을 제공할 수 있다. 무선 통신은 예컨대, IEEE 802.11 프로토콜, IEEE 802.15.1 프로토콜 및/또는 IEEE 802.15.4 프로토콜과 같은 다양한 프로토콜에 부합할 수 있다. 구체적으로 설명하자면, 무선 통신은 휴대폰 통신이 될 수 있다.
시스템(100)은 렌더링 요청에 응답하여 원격 렌더링 서버(120)로부터 컨텐츠 구성요소의 렌더링된 버전을 수신하도록 구성된 수신 로직(140)을 또한 포함할 수 있다. 일 예시에서, 수신 로직(140)은 컨텐츠 구성요소의 렌더링된 버전을 캐시하도록 구성될 수 있다. 이 예시에서, 식별 로직(110) 및/또는 요청 로직(130)은 또한 렌더링 요청이 원격 렌더링 서버(120)로 제공되기 이전에 캐시된 상태의 렌더링된 컨텐츠 구성요소들을 고려하도록 구성될 수 있다. 설명하자면, 식별 로직(110)은 먼저, 모바일 전화기나 타겟 프린터가 문자를 렌더링할 수 있는지 여부를 결정할 수 있다. 식별 로직(110)이 모바일 전화기가 그 문자를 렌더링할 수 없다고 결정한 경우, 원격 렌더링 요청을 하도록 요청 로직(130)을 제어하기 이전에 식별 로직(110)이 렌더링된 문자들의 캐시(도시 생략)를 검사하여 문자가 이미 원격으로 렌더링되어서 모바일 전화기에서 이용가능한가를 결정할 수 있다. 이것은 원격 렌더링 통신의 왕복 회수를 줄이는데 도움을 준다.
시스템(100)은 컨텐츠 구성요소의 렌더링된 버전을 출력 로직으로 분배하도록 구성된 분배 로직(150)을 또한 포함할 수 있다. 일 예시에서 출력 로직은 모바일 전화기의 디스플레이가 될 수 있고, 다른 예시에서 출력 로직은 프린터와 관련된 프린트 로직이 될 수 있다. 그러므로 원격으로 렌더링된 컨텐츠 구성요소를 " 뷰잉"하는 것에는 모바일 폰에서 컨텐츠를 디스플레이하는 것, 프린터에서 렌더링된 컨텐츠 구성요소를 프린트하는 것 등을 포함할 수 있다.
시스템(100)은, 예컨대 모바일 전화기(예컨대 휴대폰, 위성 전화기), 프린터 및 기타 유사한 장치들과 관련될 수 있다. 일 예시에서, 모바일 전화기나 기타 유사한 장치와 관련된다라고 함은 그 장치와 연동 접속되어 있지만 별도로 분리되어 있다는 것을 포함한다. 다른 예시에서, 모바일 전화기나 다른 유사한 장치와 관련된다라고 함은 그 장치와 연동 접속되어 있고 그 장치 속으로 및/또는 위로 통합되어 있다는 것을 포함한다.
시스템(100)은 다양한 장치와 관련될 수 있다. 일 예시에서, 분배 로직(150)은 컨텐츠 구성요소의 렌더링된 버전을 모바일 전화기 상의 제1 출력 로직 및 프린터와 관련된 제2 출력 로직으로 분배하도록 구성될 수 있다. 분배 로직(150)은 모바일 전화기 상에 위치하여 모바일 전화기의 디스플레이 상에서 렌더링된 컨텐츠 구성요소를 디스플레이 하고 및/또는 하지 않고 그 렌더링된 컨텐츠 구성요소를 프린터로 전달할 수 있다. 렌더링된 컨텐츠 구성요소는 예컨대, 블루투스 기본 프린트 프로파일 방법을 사용하여 프린터로 제공될 수 있다.
도 2는 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 시스템(200)을 도시한다. 시스템(200)은 모바일 전화기에 실행가능하게 연결된 것으로 도시되어 있다. 일 예시에서, 시스템(200)은 원격 렌더링 서버(270)로 렌더링 요청이 이루어질 컨텐츠 구성요소를 식별하도록 구성된 식별 로직(220)을 포함한다. 컨텐츠 구성요소는, 예컨대 그림문자, 폰트 구성요소, 문자 및 벡터 그래픽 기판 도면 등이 될 수 있다. 나아가 컨텐츠 구성요소는 XHTML 템플릿과 관련될 수 있다.
시스템(200)은 모바일 전화기(210)를 통해 원격 렌더링 서버(270)로 렌더링 요청을 제공하도록 구성된 요청 로직(230)을 또한 포함할 수 있다. 모바일 전화기(210)는 무선 통신을 통해 컨텐츠 구성요소를 원격 렌더링 서버(270)로 제공할 수 있다. 시스템(200)은 렌더링 요청에 응답하여 모바일 전화기(210)를 통해 원격 렌더링 서버(270)로부터 컨텐츠 구성요소의 렌더링된 버전을 수신하고 캐시하도록 구성된 수신 로직(240)을 또한 포함할 수 있다.
시스템(200)은 컨텐츠 구성요소의 렌더링된 버전을 모바일 전화기(210)와 관련된 제1 출력 로직 및 프린터(260)와 관련된 제2 출력 로직으로 분배하도록 구성된 분배 로직(250)을 또한 포함할 수 있다. 모바일 전화기(210)는 컨텐츠 구성요소의 렌더링된 버전을 프린터(260)로 전달하는 통로(conduit)의 역할을 할 수 있다. 다른 예시에서, 도 3에 도시된 바와 같이, 컨텐츠 구성요소의 렌더링된 버전은 모바일 전화기(310)를 통과하지 않고 프린터(320)로 전달될 수 있다.
도 3은 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 시스템(300)을 도시한다. 시스템(300)은 도 1 및 2와 관련하여 설명된 것과 유사한 로직을 포함한다. 예를 들면, 시스템(300)은 식별 로직(340), 요청 로직(350), 수신 로직(360) 및 분배 로직(370)을 포함한다.
시스템(300)은 모바일 전화기(310) 및 프린터(320) 양자 모두에 데이터 통신 콘택트를 갖는 것으로 도시되어 있다. 마찬가지로, 원격 렌더링 서버(330)는 모바 일 전화기(310) 및 프린터(320) 양자 모두에 데이터 통신 콘택트를 갖는 것으로 도시되어 있다. 데이터 통신 콘택트를 갖는다라고 함은 장치들 사이의 컴퓨터 통신을 달성할 수 있다는 것을 포함한다. 따라서 메시지들(예컨대, 무선 메시지, 회선 기반 메시지, 무선 및 회선 메시지들의 혼합)은 모바일 전화기(310), 프린터(320), 시스템(300) 및 원격 렌더링 서버(330) 사이에서 전달될 수 있다. 따라서 컨텐츠 구성요소를 원격으로 렌더링하라는 요청은, 예컨대 모바일 전화기(310) 및/또는 프린터(320)에 의해 개시될 수 있다. 마찬가지로, 원격으로 렌더링된 컨텐츠 구성요소가 모바일 전화기(310) 및/또는 프린터(320)로 직접적으로 및/또는 간접적으로(예컨대, 다른 장치를 통해) 전달될 수 있다.
예시적인 방법은 도 4 및 5의 흐름도와 관련하여 더 잘 이해될 수 있을 것이다. 설명을 간단히 하기 위해서, 예시되는 방법들은 일련의 블록들로 도시되고 설명되지만, 방법들은 블록의 순서에 제한되지 않으며, 일부 블록들은 도시 및 설명과 다른 순서로 및/또는 다른 블록들과 동시에 일어날 수 있음을 알아야 한다. 또한 예시 방법을 구현하기 위해 도시된 블록들 전부보다 더 적은 수가 필요할 수 있다. 나아가 추가적인 및/또는 대안적인 방법은, 도시되지 않은 추가적인 블록들을 채택할 수 있다.
흐름도에서, 블록들은 로직으로 구현될 수 있는 "처리 블록"을 나타낸다. 처리 블록들은 방법 단계 및/또는 방법 단계를 수행하기 위한 장치 구성요소를 나타낼 수 있다. 흐름도는 임의의 특정 프로그래밍 언어, 방법 또는 스타일(예컨대, 절차형(procedural), 객체-지향형(object-oriented))에 대한 구문(syntax)을 기술 하는 것이 아니다. 오히려, 흐름도는 당업자라면 도시된 처리를 수행하기 위한 로직 개발에 채택할 수 있는 기능적 정보를 도시한다. 일부 예시들에서, 임시 변수 및 루틴 루프 등과 같은 프로그램 구성요소들이 도시되어 있지 않음이 이해될 것이다. 또한, 전자 및 소프트웨어 애플리케이션들이 동적이고 플렉시블한 프로세스들을 포함하여 도시된 블록들이 도시된 것들과 다른 순서로 수행될 수 있고/있거나 블록들이 결합 또는 복수의 컴포넌트로 분리될 수 있음이 이해될 것이다. 프로세스들은 머신 언어, 절차형, 객체 지향형 및/또는 인공 지능 기법들과 같은 다양한 프로그래밍 접근 방식을 사용하여 구현될 수 있음이 이해될 것이다.
도 4는 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 방법(400)을 도시한다. 방법(400)은 410에서, 이용가능한 프린트가능 구성요소들의 세트에서 프린트가능 구성요소들의 서브세트를 무선 컴퓨팅 장치로 식별시키는 단계를 포함할 수 있다. 프린트가능 구성요소들의 세트는, 예컨대 문서, 이메일, 텍스트 및 메시지 등의 형태일 수 있다. 식별되는 프린트가능 구성요소들의 서브세트는 원격 렌더링이 요청될 수 있는 컨텐츠 구성요소가 될 수 있다. 원격 렌더링은, 프린트가능 구성요소들의 서브세트가 식별되는 무선 컴퓨팅 장치와 원격(예컨대, 무선 컴퓨팅 장치 안에 있지 않고, 그 일부가 아니며, 물리적으로 부착되어 있지 않은)인 로직 내에서 컨텐츠 구성요소의 렌더링을 수행하는 단계를 포함한다. 예를 들면, 프린트가능 구성요소들의 서브세트는 모바일 전화기 내에 위치할 수 있는 반면, 원격 렌더링은 모바일 전화기와 데이터 통신 콘택트(예컨대, 휴대폰 네트워크를 통해)를 갖는 서버에서 수행될 수 있다. 데이터 통신 콘택트가 전적으로 휴 대폰 네트워크만을 이용하는 것은 아니며, 모바일 전화기와 원격 렌더링 서버 사이의 완전한 경로는 회선 및/또는 무선 부분들을 포함할 수 있는 것으로 이해되어야 한다.
일 예시에서, 프린트가능 구성요소들의 서브세트를 식별하는 단계(410)는 프린트가능 구성요소들의 서브세트를 렌더링하는데 필요한 컴퓨팅 리소스와 모바일 장치(예컨대 전화기, 프린터) 상에서 이용가능한 컴퓨팅 리소스를 비교하는 단계를 포함할 수 있다. 모바일 장치가 가진 리소스가 프린트가능 구성요소들의 서브세트를 렌더링하는데 요구되는 리소스의 양, 유형 및/또는 이용가능성에 알맞지 않은 경우, 그 프린트가능 구성요소들의 서브세트는 원격 렌더링이 요청될 수 있는 구성요소들로서 식별될 수 있다.
420에서, 프린트가능 구성요소들의 서브세트를 원격 렌더링하라고 요청될 수 있다. 일 예시에서, 프린트가능 구성요소들의 서브세트를 원격 렌더링하라고 요청하는 단계는 무선 컴퓨터 통신을 전송하는 단계를 포함할 수 있다. 통신은, 예컨대 IEEE 802.15.1 프로토콜, IEEE 802.11 프로토콜 메시지, IEEE 802.15.4 메시지 및 휴대폰 메시지 등에 따라 이루어질 수 있다. 일 예시에서, 프린트가능 구성요소들의 서브세트는 원격 렌더링을 요청중인 모바일 컴퓨팅 장치에서의 전체 문서보다 크기가 더 작을 수 있다. 프린트가능 구성요소는 예컨대, 그림문자(들), 폰트 구성요소(들), 문자(들), 벡터 그래픽 기반 도면(들), 테이블, 차트 및 로고 등을 포함할 수 있다. 프린트가능 구성요소들의 서브세트는 예컨대, XHTML 템플릿과 관련된 정적 구성요소 및 XHTML 템플릿과 관련된 동적 구성요소를 포함할 수 있다.
430에서, 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전이 수신될 수 있다. 렌더링된 버전은, 예컨대 원격 렌더링 요청을 전송하는데 사용되는 것과 같은 무선 통신을 통해 수신될 수 있다. 일 예시에서, 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전을 수신하는 단계(430)는 렌더링된 버전을 캐시하는 단계를 포함할 수 있다. 따라서, 원격 렌더링 요청이 이루어질 수 있는 프린트가능 구성요소들의 서브세트를 식별하는 단계(410)는 프린트가능 구성요소의 렌더링된 버전이 캐시되어 있는지 여부를 결정하는 단계를 포함할 수 있다.
440에서, 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전은 무선 컴퓨팅 장치와 관련된 디스플레이 로직 및 무선 컴퓨팅 장치와 관련된 프린트 로직을 포함하는 로직들로 분배될 수 있으며 다만 이에 제한되지는 않는다. 따라서 렌더링된 버전은 프린트가능 구성요소(들)이 원격 렌더링을 요청한 모바일 전화기 상에 디스플레이되고/되거나 프린트를 위해 프린터로 전달될 수 있다.
도 4는 다양한 액션들이 순차로 일어나는 것으로 도시하고 있지만, 도 4에 도시된 다양한 액션들은 실질적으로 병렬로 일어날 수 있는 것으로 이해되어야 한다. 설명하자면, 제1 프로세스는 원격 렌더링이 필요한 프린트가능 구성요소들을 식별할 수 있다. 마찬가지로, 제2 프로세스는 원격 렌더링을 요청하는 반면, 제3 프로세스는 원격으로 렌더링된 프린트가능 구성요소들을 수신하고, 제4 프로세스는 수신된 원격 렌더링된 프린트가능 구성요소들을 분배한다. 4개의 프로세스가 기술되었지만, 더 많고/많거나 더 적은 개수의 프로세스가 채택되고, 경량(lightweight) 프로세스, 정규 프로세스, 스레드 및 다른 접근 방식이 채택될 수 있는 것으로 이해되어야 한다. 다른 예시적인 방법들, 일부 경우 실질적으로 병렬로 일어나는 액션들을 또한 포함할 수 있는 것으로 이해되어야 한다.
도 5는 모바일 뷰잉을 위한 원격 컨텐츠 렌더링과 관련된 예시적인 방법(500)을 도시한다. 방법(400)과 마찬가지로, 방법(500)은 510에서, 원격 렌더링 요청될 프린트가능 구성요소들의 서브세트를 식별하고, 520에서 원격 렌더링을 요청한다. 방법(500)은 또한 530에서, 원격으로 렌더링된 프린트가능 구성요소를 수신한다.
방법(500)은 또한 540에서, 수신된 원격으로 렌더링된 프린트가능 구성요소가 다른 장치로 포워드될지에 관해 결정하는 단계를 포함할 수 있다. 예를 들면, 프린트가능 구성요소의 원격 렌더링을 요청하는 모바일 전화기는 프린트를 위해 그 구성요소를 프린터로 포워드할 수 있다. 540에서 결정이 '네'인 경우, 550에서 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전은 제1 모바일 컴퓨팅 장치(예컨대, 모바일 전화기)에서 제2 모바일 컴퓨팅 장치(예컨대, 프린터)로 분배될 수 있다. 프린터로 포워딩하는 모바일 장치가 설명되었지만, 다른 저장장치 및 프린터에서 전화기로, 전화기에서 PDA로, PDA에서 프린터로 등과 같은 포워드 조합이 채택될 수 있다. 일 예시에서, 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전은 550에서 블루투스 기본 프린트 프로파일 방식을 사용하여 제1 모바일 컴퓨팅 장치에서 제2 모바일 컴퓨팅 장치로 분배된다.
560에서, 프린트가능 구성요소들의 처리를 계속할지에 관해 결정이 이루어진다. 결정이 '아니오'인 경우, 방법(500)은 종료하고 그렇지 않으면 처리는 510의 식별 단계와 같은 이전의 액션으로 되돌아갈 수 있다. 예를 들면, 더 이상 렌더링될 컨텐츠가 없는 경우, 560의 결정이 '아니오'가 될 수 있다.
일 예시에서, 방법들은 컴퓨터 판독가능 매체 상에 저장된 프로세서 실행가능 명령어들 및/또는 동작들로 구현된다. 따라서 일 예시에서, 컴퓨터 판독가능 매체는 무선 컴퓨팅 장치(예컨대, 모바일 전화기)에서 이용가능한 프린트가능 구성요소들의 세트에서 프린트가능 구성요소들의 서브세트를 식별하는 단계를 포함하는 방법을 수행하도록 연동하는 프로세서 실행가능 명령어들을 저장할 수 있다. 프린트가능 구성요소들의 서브세트에 대한 원격 렌더링이 요청될 수 있다. 프린트가능 구성요소들의 서브세트는 무선 컴퓨팅 장치에서 전체 문서보다 더 작은 부분을 점유할 수 있다. 프린트가능 구성요소들의 서브세트를 식별하는 단계는 프린트가능 구성요소들의 서브세트를 렌더링하는데 필요한 컴퓨팅 리소스와 프린트가능 구성요소들의 서브세트를 렌더링하는데 이용가능한 컴퓨팅 리소스를 비교하는 단계를 포함할 수 있다. 프린트가능 구성요소들의 서브세트는, 예컨대 XHTML 템플릿과 관련된 정적 구성요소 및 XHTML 템플릿과 관련된 동적 구성요소 등을 포함할 수 있다.
방법은 프린트가능 구성요소들의 서브세트에 대해 원격 렌더링을 요청하는 단계를 또한 포함할 수 있다. 프린트가능 구성요소들의 서브세트에 대해 원격 렌더링을 요청하는 단계는 IEEE 802.15.1 프로토콜 메시지, IEEE 802.11 프로토콜 메시지, IEEE 802.15.4 프로토콜 메시지 및 휴대폰 메시지를 포함하는 방법들을 통해 무선 컴퓨터 통신을 전송하는 단계를 포함할 수 있으며 다만 이에 제한되지 않는다. 방법은 또한 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전을 수신 및 캐시하는 단계와 프린트가능 구성요소들의 렌더링된 버전을 분배하는 단계를 포함할 수 있다. 프린트가능 구성요소들의 서브세트는, 예컨대 무선 컴퓨팅 장치와 관련된 디스플레이 로직 및 무선 컴퓨팅 장치와 관련된 프린트 로직 등으로 분배될 수 있다. 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전은, 예컨대 블루투스 기본 프린트 프로파일 방식을 사용하여 분배될 수 있다. 상기의 방법이 컴퓨터 판독가능 매체 상에 저장되는 것으로 기술되었지만, 본 명세서에서 기술되는 다른 예시적인 방법들도 컴퓨터 판독가능 매체 상에 저장될 수 있는 것으로 이해되어야 한다.
도 6은 버스(608)에 연동 접속된 프로세서(602), 메모리(604) 및 입/출력 포트(610)를 포함하는 컴퓨터 시스템(600)을 도시한다. 일 예시에서 컴퓨터 시스템(600)은 모바일 뷰잉(예컨대, 프린트, 디스플레이)을 위해 컨텐츠 구성요소들을 구성요소 수준으로 원격 렌더링하라는 요청을 도모하도록 구성된 원격 렌더링 로직(630)을 포함할 수 있다. 따라서 원격 렌더링 로직(630)은 컴퓨터 시스템(600)에 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현되어 원격 렌더링될 컨텐츠 구성요소를 선택하기 위한 수단, 컨텐츠 구성요소의 원격 렌더링을 요청하기 위한 수단 및 원격 렌더링된 컨텐츠 구성요소를 제1 모바일 컴퓨팅 로직에서 제2 모바일 컴퓨팅 로직으로 분배하기 위한 수단을 제공할 수 있다. 제1 모바일 컴퓨팅 로직은, 예컨대 휴대폰과 관련될 수 있고, 제2 모바일 컴퓨팅 로직은, 예컨대 휴대폰이 프린트 요청을 전송하는 프린터와 관련될 수 있다. 컴퓨터 시스템(600)은, 예컨대 휴대폰 및/또는 프린터에서 구현될 수 있다.
프로세서(620)는 듀얼 마이크로프로세서 및 다른 멀티 프로세서 구조를 포함하는 각종 다양한 프로세서가 될 수 있다. 메모리(604)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 ROM, PROM, EPROM 및 EEPROM 등을 포함할 수 있으며 다만 이에 제한되지 않는다. 휘발성 메모리는, 예컨대 RAM, 동기식 RAM(SRAM: synchronous RAM), 다이내믹 RAM(DRAM: dynamic RAM), 더블 데이터 레이트 SDRAM(DDR SDRAM) 및 다이렉트 램 버스 램(DRRAM)을 포함할 수 있다.
"디스크(606)"는, 예컨대 입/출력 인터페이스(618; 예컨대, 카드, 장치) 및 입/출력 포트(610)을 통해 컴퓨터 시스템(600)에 연동 접속될 수 있다. 디스크(606)는 고체 디스크 드라이브(solid state disk drive), 플래시 메모리 카드 및/또는 메모리 스틱과 같은 장치들을 포함할 수 있으며, 다만 이에 제한되지 않는다. 메모리(604)는, 예컨대 프로세스들(614) 및/또는 데이터(616)를 저장할 수 있다. 디스크(606) 및/또는 메모리(604)는 컴퓨터 시스템(600)의 리소스들을 제어하고 할당하는 운영체제를 저장할 수 있다.
버스(608)는 단일의 내부 버스 상호연결 구조 및/또는 다른 버스나 메시 구조가 될 수 있다. 단일 버스가 도시되어 있지만, 컴퓨터 시스템(600)은 도시되어 있지 않은 다른 버스(예컨대, PCIE, SATA, 인피니밴드(Infiniband), 1394, USB, 이더넷)를 사용하여 각종 장치, 로직 및 주변 장치와 통신할 수 있다. 버스(608)는 메모리 버스나 메모리 제어기, 주변 장치 버스나 외부 버스, 크로스바 스위치(crossbar switch) 및/또는 로컬 버스를 포함하는 다양한 유형이 될 수 있으며 다 만 이에 제한되지 않는다. 로컬 버스는 ISA(industrial standard architecture) 버스, MSA(microchannel architecture) 버스, EISA(extended ISA) 버스, PCI(periepheral component interconnect) 버스, USB(universal serial) 버스 및 SCSI(small computer systems interface) 버스 등을 포함하는 다양한 유형이 될 수 있으며 다만 이에 제한되지 않는다.
컴퓨터 시스템(600)은 i/o 인터페이스(618) 및 입/출력 포트(610)을 통해 입/출력 장치와 상호작용할 수 있다. 입/출력 장치는 마이크로폰, 카메라 및 네트워크 장치(620) 등을 포함할 수 있으며 다만 이에 제한되지 않는다. 입/출력 포트(610)는 직렬 포트, 병렬 포트 및 USB 포트를 포함할 수 있으며, 다만 이에 제한되지 않는다.
컴퓨터 시스템(600)은 네트워크 환경에서 동작할 수 있으며 이에 따라 i/o 인터페이스(618) 및/또는 i/o 포트(610)를 통해 네트워크 장치(620)와 연결될 수 있다. 네트워크 장치(620)를 통해, 컴퓨터 시스템(600)은 네트워크와 상호작용할 수 있다. 네트워크를 통해 컴퓨터 시스템(600)은 원격 컴퓨터들과 논리적으로 연결될 수 있다. 하나의 원격 컴퓨터가 본 명세서에서 설명된 원격 렌더링 서비스들을 수행할 수 있다. 컴퓨터 시스템(600)이 상호작용하는 네트워크는 LAN, 광역 네트워크 및 다른 네트워크를 포함할 수 있으며 다만 이에 제한되지 않는다. 네트워크 장치(620)는 FDDI(fiber distributed data interface), CDDI(copper distributed data interface), 이더넷(IEEE 802.3), 토큰 링(IEEE 802.5), 무선 컴퓨터 통신(IEEE 802.11), 블루투스(IEEE 802.15.1) 및 지그비(Zigbee; IEEE 802.15.4) 등을 포함하는 LAN 기술에 연결될 수 있으며 다만 이에 제한되지 않는다. 마찬가지로, 네트워크 장치(620)는 포인트 투 포인트 링크, ISDN(integrated services digital network)과 같은 회로 스위칭 네트워크, 패킷 스위칭 네트워크 및 DSL(digital subscriber lines)을 포함하는 WAN 기술에 연결될 수 있으며 다만 이에 제한되지 않는다. 개별적인 네트워크 유형이 설명되었지만, 네트워크를 통한 통신은 통신의 조합 및 혼합을 포함할 수 있다고 이해되어야 한다.
도 7은 본 명세서에서 설명된 예시적인 시스템과 유사한 구성요소 수준의 렌더링 로직(710)을 포함하는 예시적인 이미지 형성 장치(700; 예컨대 프린터)를 도시한다. 구성요소 수준 렌더링 로직(710)은 본 명세서에서 설명된 바와 같은 실행가능 방법들을 수행하도록 구성될 수 있으며, 따라서 크기가 작은 컨텐츠 구성요소들(예컨대, 단일 문자, 그림문자들의 서브세트, 이미지)을 원격 렌더링하라는 요청을 생성하고/생성하거나 원격 렌더링된 구성요소 수준 컨텐츠 구성요소들을 수신하는데 관여할 수 있다. 구성요소 수준 렌더링 로직(710)은 영구적으로 및/또는 착탈식으로 이미지 형성 장치(700)에 부착될 수 있다.
이미지 형성 장치(700)는 프린트될 프린트 데이터를 수신할 수 있다. 따라서, 이미지 형성 장치(700)는 프린트 데이터를 저장하거나 이미지 처리에 좀 더 일반적으로 사용되도록 구성된 메모리(720)를 또한 포함할 수 있다. 이미지 형성 장치(700)는 문서 크기의 컨텐츠와 관련된 프린트 데이터로부터 프린터 준비 이미지(printer-ready image)를 형성하도록 구성된 종래의 문서 수준 렌더링 로직(730)을 또한 포함할 수 있다. 본 명세서에서 설명된 예시적인 시스템 및 방법은, 높은 수 준의 지면 배정을 렌더링하라는 요청을 하지 않고 문자, 이미지 및 삽화 등의 구성요소 렌더링을 요청하도록 구성될 수 있다. 따라서 이미지가 텍스트 블록 아래 페이지 하단에 들어맞을 수 있는지 또는 다음 페이지로 넘어가야 하는지를 결정하는 것과 같은 지면 배정과 관련된 렌더링은, 이미지 형성 장치(700)와 같은 장치의 몫으로 남겨둘 수 있다.
렌더링은 관련된 데이터 포맷과 이미징 장치의 유형에 따라 달라질 수 있다. 일반적으로, 페이지 수준 렌더링 로직(730)은 종래의 높은 수준의 데이터를 디스플레이 또는 프린트를 위해 그래픽 이미지(예컨대, 프린터 준비 이미지)로 변환한다. 예를 들면, 한 가지 형태는 HTML을 디스플레이/프린트를 위해 이미지로 변환하는 프로세스이다. 이미지 형성 장치(700)가 렌더링될 필요가 없는 프린터 준비 데이터를 수신하므로 일부 이미지 형성 장치에서는 페이지 수준 렌더링 로직(730)이 나타나지 않을 수 있는 것으로 이해되어야 한다. 일 예시에서, 이미지 형성 장치(700)는 일부 렌더링을 로컬로 수행, 일부 렌더링의 원격 수행을 요청, 및/또는 렌더링되어 제공되는 데이터를 구비할 수 있다. 렌더링된 데이터는, 예컨대 모바일 전화기의 요청으로 원격 렌더링 서버에 의해 렌더링되었을 수 있다.
이미지 형성 장치(700)는 프린트 준비 이미지로부터 프린트 매체 상으로 이미지를 생성하도록 구성된 이미지 형성 메커니즘(740)을 또한 포함할 수 있다. 이미지 형성 메커니즘(740)은 이미지 장치(700)의 유형에 따라 달라질 수 있으며, 레이저 이미지 메커니즘, 다른 토너 기반 이미지 메커니즘, 잉크젯 메커니즘, 디지털 이미지 메커니즘 또는 다른 이미지 재생산 엔진을 포함할 수 있다. 프로세서(750) 는 이미지 형성 장치(700)의 동작을 제어하기 위한 로직과 함께 구현되어 포함될 수 있다. 일 예시에서, 프로세서(750)는 자바 명령어들을 실행할 수 있는 로직을 포함한다. 이미지 형성 장치(700)의 다른 컴포넌트들은 본 명세서에서 설명되지는 않지만, 매체 핸들링과 저장 메커니즘, 센서, 제어기 및 이미지 프로세스에 관련된 다른 컴포넌트들을 포함할 수 있다.
이제 도 8을 참조하면, 본 명세서에서 설명된 모바일 뷰잉을 위하여 각종 컴퓨터 컴포넌트 및/또는 원격 컨텐츠 렌더링과 관련된 로직 사이에 데이터 패킷(800)을 통해 정보가 전송될 수 있다. 일 예시에서, 데이터 패킷(800)은 컨텐츠 항목을 원격 렌더링하라는 요청이 될 수 있다. 데이터 패킷(800)은 패킷의 길이 및 유형과 같은 정보를 포함하는 헤더 필드(810)를 포함한다. 소스 식별자(820)가 헤더 필드(810) 다음에 오는데, 예컨대 패킷(800)이 출발한 컴퓨터 컴포넌트 및/또는 로직의 주소를 포함한다. 소스 식별자(820) 다음으로 패킷(800)은, 예컨대 패킷(800)이 궁극적으로 향하는 컴퓨터 컴포넌트 및/또는 로직의 주소를 보유하는 목적지 식별자(830)를 포함한다. 소스 및 목적지 식별자는, 예컨대 GUID, URL 및 경로 이름 등이 될 수 있다. 패킷(800)의 데이터 필드(840)는 컴퓨터 컴포넌트 및/또는 로직을 수신하도록 의도된 각종 정보를 포함한다. 데이터 패킷(800)은 마지막에 에러 검출 및/또는 정정 필드(850)를 갖는데, 이로써 컴퓨터 및/또는 로직이 패킷(800)을 올바르게 수신하였는지 여부를 결정할 수 있다. 5개의 필드가 소정의 순서로 도시되어 있지만, 다른 순서로 더 많은 수 및/또는 더 적은 수의 필드가 예시 데이터 패킷에 존재할 수 있는 것으로 이해되어야 한다. 나아가 일부 예시에 서, 데이터 패킷(800)은 평문(clear text) 형태로 전송되거나 암호화될 수 있다.
도 8은 또한 데이터 필드(840) 속의 서브필드(860)를 도시한다. 설명된 서브필드(860)는 단지 예시일 뿐이며, 컨텐츠 구성요소의 원격 렌더링에 적절한 다양한 유형의 데이터를 갖춘 더 많은 수 및/또는 더 적은 수의 서브필드가 채택될 수 있는 것으로 이해되어야 한다. 서브필드(860)는, 예컨대 문자 코드, 그림문자 및 이미지의 벡터 그래픽 표시와 같은 렌더링되지 않은 컨텐츠 구성요소를 보유하는 제1 필드(862)를 포함한다. 서브필드(860)는 렌더링되지 않는 컨텐츠 구성요소가 렌더링될 원하는 출력 포맷(예컨대, JPEG)을 저장하는 제2 필드(864)를 또한 포함할 수 있다. 서브필드(860)는, 예컨대 렌더링된 데이터를 렌더링 요청으로 연결 및/또는 수신된 렌더링된 컨텐츠를 원하는 순서로 조합하도록 도모하는 렌더링 요청 식별자를 저장하는 제3 필드(866)를 또한 포함할 수 있다.
이제 도 9를 참조하면, 원격 컨텐츠 렌더링을 위하여 시스템(900)으로의 액세스를 제공하는 API(900)가 도시된다. API(900)는, 예컨대 프로그래머(920) 및/또는 프로세스(930)에 의해 시스템(910)에서 수행되는 처리에 액세스를 얻기 위해 채택된다. 예를 들면, 프로그래머(920)는 시스템(910)에 액세스(예컨대, 시스템 동작 호출, 시스템 동작 감시, 시스템 동작 제어)하도록 프로그램을 작성할 수 있는데, 프로그램 작성은 API(900)의 도움을 받는다. 프로그래머(920)는 시스템(910)의 내부를 이해할 필요가 없으며, 단지 시스템(910)에 대한 인터페이스를 알고 있기만 하면 된다. 이것은 시스템(910)의 기능 자체는 노출되어 있지만, 그 기능을 캡슐화하는 것을 가능하게 한다.
마찬가지로, API(900)는 시스템(910)에 데이터 수치들을 제공 및/또는 시스템(910)으로부터 데이터 수치들을 추출하기 위해 채택될 수 있다. 예를 들면, 원격 렌더링이 요청될 렌더링되지 않은 컨텐츠 구성요소들을 선택하는 프로세스(930)는 렌더링되지 않는 컨텐츠 구성요소(예컨대, 유니코드 캐릭터 코드)를, 예컨대 API(900)에서 제공되는 호출을 사용하여 API(900)를 통해 시스템(910)으로 제공할 수 있다. 따라서 API(900)의 일 예시에서, API의 세트가 컴퓨터 판독가능 매체 상에 저장될 수 있다. 인터페이스들은 모바일 뷰잉을 위한 원격 컨텐츠 렌더링을 위하여 프로그래머, 컴퓨터 컴포넌트 및 로직 등이 시스템(910)으로의 액세스를 얻기 위해 채택될 수 있다. 인터페이스는 렌더링되지 않은 컨텐츠 구성요소를 전달하는 제1 인터페이스(940), 원하는 렌더링된 포맷 데이터를 전달하는 제2 인터페이스(950) 및 렌더링되지 않는 컨텐츠 구성요소로부터 원하는 렌더링된 포맷으로 형성된 렌더링된 컨텐츠 구성요소를 전달하는 제3 인터페이스(960)를 포함할 수 있으며 다만 이에 제한되지 않는다. 따라서 본 명세서에서 설명된 각종 요청 및/또는 수신 로직은 원격 렌더링 서버와 통신하기 위해 API(900)를 채택할 수 있다. 마찬가지로, 본 명세서에서 설명된 각종 요청 및 수신 액션들이 적어도 부분적으로 API(900)와 상호작용으로 수행될 수 있다.
예시적인 시스템 및 방법 등이 예시들을 설명함으로써 도시되었고, 예시들이 상당히 상세하게 설명되었지만, 출원인은 첨부된 청구항의 범위를 그러한 세부로 한정하거나 임의의 제한을 의도하지 않는다. 또한 본 명세서에서 설명된 시스템 및 방법 등을 설명하기 위하여 고려될 수 있는 컴포넌트들 또는 방법들의 모든 조 합을 기술하는 것은 가능하지도 않다. 당업자에게는 추가적인 장점 및 변형들이 자명할 것이다. 따라서 본 발명은 도시 및 설명된 구체적인 세부사항, 표시 장치 및 도시된 예시들로 제한되지 않는다. 따라서 본 명세서는 첨부된 청구항의 범위 내에 속하는 대체, 변형 및 변경들을 포함하는 것으로 의도된다. 나아가 상술한 설명은 본 발명의 범위를 제한하지 않는다. 오히려, 본 발명의 범위는 첨부된 청구항 및 그 균등범위에 의해 결정된다.
상세한 설명 또는 청구항에서 사용된 용어, "포함하다(includes)"나 "포함하는(including)"은, 용어 "포함하는(comprising)"이 청구항에서 일반적인 단어로서 사용될 때 해석되는 것과 유사한 방식으로 포괄적인(inclusive) 것으로 의도된다. 나아가 상세한 설명 또는 청구항에서 사용된 용어, "또는" (예컨대, A 또는 B)에 대해서, "A 또는 B 또는 둘 다"를 (예컨대, A 및/또는 B) 의미하는 것으로 의도된다. 출원인이 "A 또는 B만이며, 둘 다는 아님"을 가리키고자 의도한 경우, "A 또는 B만이며, 둘 다는 아님"이라는 용어가 채택될 것이다. 본 명세서에서 "또는"이라는 용어의 사용은 포괄적이며 배타적이지 않다. Bryan A. Garner의 A Dictionary of Modern Legal Usage 624(1995년 2판)을 참조한다.
본 발명을 통해 지면 배정과 같은 높은 수준의 요청없이도 제한된 리소스의 모바일 장치에서 컨텐츠 렌더링이 가능해진다.

Claims (10)

  1. 원격 렌더링 서버로 렌더링 요청이 이루어질 수 있는 컨텐츠 구성요소를 식별하도록 구성된 식별 로직;
    상기 원격 렌더링 서버로 상기 렌더링 요청을 제공하도록 구성된 요청 로직;
    상기 렌더링 요청에 응답하여 상기 원격 렌더링 서버로부터 상기 컨텐츠 구성요소의 렌더링된 버전을 수신하도록 구성된 수신 로직; 및
    상기 컨텐츠 구성요소의 상기 렌더링된 버전을 출력 로직으로 분배하도록 구성된 분배 로직
    을 포함하는 시스템.
  2. 제1항에 있어서, 상기 시스템은 모바일 전화기와 연동 접속(operably connected)되어 있고, 상기 출력 로직은 상기 모바일 전화기와 관련된 디스플레이 및 프린터와 관련된 프린트 로직 중 하나인 시스템.
  3. 제2항에 있어서, 상기 분배 로직은 상기 모바일 전화기와 관련된 제1 출력 로직 및 상기 프린터와 관련된 제2 출력 로직으로 상기 컨텐츠 구성요소의 상기 렌더링된 버전을 분배하도록 구성되고, 상기 컨텐츠 구성요소는 그림문자(glyph), 폰트 구성요소, 문자, 벡터 그래픽 기반 도면(vector graphics based figure), 테이블, 차트 및 단락 중 하나를 포함하는 시스템.
  4. 제3항에 있어서, 상기 컨텐츠 구성요소는 XHTML 템플릿과 관련된 정적 구성요소(static element) 및 상기 XHTML 템플릿과 관련된 동적 구성요소(dynamic element) 중 하나를 포함하는 시스템.
  5. 제4항에 있어서, 상기 컨텐츠 구성요소의 상기 렌더링된 버전은 블루투스 기본 프린트 프로파일(Bluetooth Basic Print Profile) 방법을 통해 상기 프린터로 제공되는 시스템.
  6. 제1항에 있어서, 상기 식별 로직은 상기 컨텐츠 구성요소를 렌더링하는데 필요한 제1 컴퓨팅 리소스 및 상기 시스템과 관련된 모바일 컴퓨팅 플랫폼 상에서 이용가능한 제2 컴퓨팅 리소스를 비교함으로써 상기 컨텐츠 구성요소를 식별하도록 구성되는 시스템.
  7. 제1항에 있어서, 상기 수신 로직은 상기 컨텐츠 구성요소의 상기 렌더링된 버전을 캐시하도록 구성되고, 상기 식별 로직 또는 상기 요청 로직은 상기 원격 렌더링 서버로 렌더링 요청을 제공하기 전에 캐시된 상태의 렌더링된 컨텐츠 구성요소를 탐색하도록 구성되는 시스템.
  8. 무선 컴퓨팅 장치에서 이용가능한 프린트가능 구성요소들의 세트에서 프린트 가능 구성요소들의 서브세트- 상기 프린트가능 구성요소들의 서브세트는 상기 무선 컴퓨팅 장치로부터 원격 상에 있는 로직에 의해 렌더링될 수 있음 -를 식별하는 단계;
    상기 프린트가능 구성요소들의 서브세트에 대한 원격 렌더링을 요청하는 단계;
    상기 원격 렌더링의 요청에 응답하여 상기 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전을 수신하는 단계; 및
    상기 프린트가능 구성요소들의 서브세트에 대한 상기 렌더링된 버전을 상기 무선 컴퓨팅 장치와 관련된 디스플레이 로직 및 상기 무선 컴퓨팅 장치와 관련된 프린트 로직 중 하나 이상으로 분배하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서, 상기 프린트가능 구성요소들의 서브세트는 상기 무선 컴퓨팅 장치의 전체 문서보다 크기가 더 작고, 상기 프린트가능 구성요소들은 그림문자, 폰트 구성요소, 문자 및 벡터 그래픽 기반 도면 중 하나 이상을 포함하는 방법.
  10. 제9항에 있어서, 상기 프린트가능 구성요소들의 서브세트를 식별하는 단계는 상기 프린트가능 구성요소들의 서브세트를 렌더링하는데 필요한 제1 컴퓨팅 리소스와 상기 프린트가능 구성요소들의 서브세트를 렌더링하는데 이용가능한 제2 컴퓨팅 리소스를 비교하는 단계를 포함하고,
    상기 프린트가능 구성요소들의 서브세트에 대한 원격 렌더링을 요청하는 단계는 IEEE 802.15.1 프로토콜 메시지, IEEE 802.11 프로토콜 메시지, IEEE 802.15.4 프로토콜 메시지 및 휴대폰 메시지 중 하나 이상을 통해 무선 컴퓨터 통신을 전송하는 단계를 포함하고,
    상기 프린트가능 구성요소들의 서브세트에 대한 렌더링된 버전을 수신하는 단계는 상기 렌더링된 버전을 캐시하는 단계를 포함하는 방법.
KR1020050115373A 2004-12-14 2005-11-30 모바일 뷰잉을 위한 원격 컨텐츠 렌더링 KR20060067141A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/011,411 2004-12-14
US11/011,411 US20060129632A1 (en) 2004-12-14 2004-12-14 Remote content rendering for mobile viewing

Publications (1)

Publication Number Publication Date
KR20060067141A true KR20060067141A (ko) 2006-06-19

Family

ID=36013322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050115373A KR20060067141A (ko) 2004-12-14 2005-11-30 모바일 뷰잉을 위한 원격 컨텐츠 렌더링

Country Status (3)

Country Link
US (1) US20060129632A1 (ko)
EP (1) EP1672477A3 (ko)
KR (1) KR20060067141A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008181B1 (ko) * 2009-02-19 2011-01-13 한국과학기술원 Ⅰptv를 위한 컨텐츠 렌더링 시스템 및 방법

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924411B2 (en) 2005-05-31 2014-12-30 Open Text S.A. System and method for the dynamic provisioning of static content
US7860820B1 (en) 2005-05-31 2010-12-28 Vignette Software, LLC System using content generator for dynamically regenerating one or more fragments of web page based on notification of content change
US20060224691A1 (en) * 2005-04-05 2006-10-05 Intel Corporation Transparent rendering of media to remote client
KR100750157B1 (ko) * 2006-01-18 2007-08-21 삼성전자주식회사 화상형성시스템 및 화상형성방법
KR100823265B1 (ko) * 2006-04-13 2008-04-17 삼성전자주식회사 모바일 디바이스에서 XHTML-Print 문서를전송하는 방법 및 장치
KR20080001117A (ko) * 2006-06-29 2008-01-03 삼성전자주식회사 블루투스를 통한 작업요청 정보를 표시하는 프린터 및 이프린터에서의 작업요청 정보 표시 방법
US8761731B2 (en) * 2006-10-10 2014-06-24 Dashwire Incorporation Method and apparatus for providing mobile device information through a computing device
GB2447020A (en) * 2007-03-01 2008-09-03 Sony Comp Entertainment Europe Transmitting game data from an entertainment device and rendering that data in a virtual environment of a second entertainment device
US8065667B2 (en) * 2007-03-20 2011-11-22 Yahoo! Inc. Injecting content into third party documents for document processing
US20080250424A1 (en) * 2007-04-04 2008-10-09 Ms1 - Microsoft Corporation Seamless Window Implementation for Windows Presentation Foundation based Applications
US8478245B2 (en) 2007-08-01 2013-07-02 Phunware, Inc. Method and system for rendering content on a wireless device
US9269332B2 (en) * 2007-09-04 2016-02-23 Apple Inc. Font preloading
US9015692B1 (en) 2007-10-23 2015-04-21 Phunware, Inc. Method and system for customizing content on a server for rendering on a wireless device
CN101626415B (zh) * 2008-07-11 2013-04-24 深圳富泰宏精密工业有限公司 利用手机在蓝牙耳机上显示字符的方法及其手机
TWI425819B (zh) * 2008-08-15 2014-02-01 Chi Mei Comm Systems Inc 利用手機在藍牙耳機上顯示字元的方法及其手機
US20100125655A1 (en) * 2008-11-19 2010-05-20 Uri Elzur Method and system for centralized logic for centrally managed machines
US8687004B2 (en) * 2010-11-01 2014-04-01 Apple Inc. Font file with graphic images
US8407419B2 (en) 2010-11-30 2013-03-26 Open Text S.A. System and method for managing a cache using file system metadata
US8953182B2 (en) * 2011-02-14 2015-02-10 Csr Imaging Us, Lp Font emulation in embedded systems
US9292358B2 (en) 2011-06-13 2016-03-22 Microsoft Technology Licensing, Llc Remotely retrieving information from consumer devices
US8610938B2 (en) 2011-08-08 2013-12-17 Canon Kabushiki Kaisha Remote print preview generation
DE102011054020A1 (de) * 2011-09-28 2013-03-28 Cortado Ag Druckverfahren, Anordnung zur Realisierung des Druckverfahrens sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
US9063682B1 (en) 2013-12-30 2015-06-23 Csr Imaging Us, Lp Managing font metrics for a rendering device
US20150356065A1 (en) * 2014-06-09 2015-12-10 Microsoft Corporation Converting presentation metadata to a browser-renderable format during compilation
US9912651B2 (en) * 2015-10-13 2018-03-06 Dropbox, Inc. Authenticated server views
US20170269893A1 (en) * 2016-03-16 2017-09-21 Google Inc. Remote rendering of locally displayed content
US10528649B2 (en) * 2016-09-29 2020-01-07 Adobe Inc. Recognizing unseen fonts based on visual similarity

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533174A (en) * 1993-10-26 1996-07-02 Digital Equipment Corporation Network font server
US6247050B1 (en) * 1997-09-12 2001-06-12 Intel Corporation System for collecting and displaying performance improvement information for a computer
US6003069A (en) * 1997-12-16 1999-12-14 Lexmark International, Inc. Client/server printer driver system
US6798417B1 (en) * 1999-09-23 2004-09-28 International Business Machines Corporation Just in time graphics dispatching
US20020115477A1 (en) * 2001-02-13 2002-08-22 Raja Singh Portable high speed internet access device with scrolling
HK1024380A2 (en) * 2000-03-28 2000-08-25 Lawrence Wai Ming Mo Internet-based font server
US7274368B1 (en) * 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US7006242B2 (en) * 2000-10-03 2006-02-28 Hewlett-Packard Development Company, L.P. Printing portable-selected information
US7362459B2 (en) * 2000-11-17 2008-04-22 Seiko Epson Corporation Network device and printer
AU2002223875A1 (en) * 2000-11-18 2002-05-27 Sendo International Limited An exchangeable cover for a mobile telephone
US7016062B2 (en) * 2000-11-30 2006-03-21 Ricoh Company, Ltd. Apparatus, method and system for printing from a wireless mobile device over the internet
US20020097408A1 (en) * 2001-01-19 2002-07-25 Chang William Ho Output device for universal data output
US20040019628A1 (en) * 2002-07-09 2004-01-29 Puri Anish N. System for remotely rendering content for output by a printer
US7206806B2 (en) * 2001-05-30 2007-04-17 Pineau Richard A Method and system for remote utilizing a mobile device to share data objects
US7321443B2 (en) * 2001-06-29 2008-01-22 Hewlett-Packard Development Company, L.P. Print device and program product for supporting print by reference methods
US7266616B1 (en) * 2001-08-08 2007-09-04 Pasternak Solutions Llc Method and system for digital rendering over a network
WO2003021978A1 (en) * 2001-08-10 2003-03-13 Strix Systems, Inc. Virtual linking using a wireless device
US20030079134A1 (en) * 2001-10-23 2003-04-24 Xerox Corporation Method of secure print-by-reference
US20030105879A1 (en) * 2001-11-30 2003-06-05 Erlend Olson Wireless network architecture and method
US20030163517A1 (en) * 2002-02-28 2003-08-28 Assaf Charles S. Method and apparatus for decreasing bandwidth for wireless data interchange
JP4141182B2 (ja) * 2002-05-31 2008-08-27 シャープ株式会社 情報処理装置と情報処理方法並びにコンピュータ・ソフトウエア
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
KR100432625B1 (ko) * 2002-08-06 2004-05-22 삼성전자주식회사 휴대폰용 전화기의 폰트 표시방법
DE10248528B4 (de) * 2002-10-14 2006-05-18 Thinprint Gmbh Verfahren und Anordnung zur Ausgabe von Dateien in Kommunikationsnetzwerken, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
US8223355B2 (en) * 2003-06-16 2012-07-17 Hewlett-Packard Development Company, L.P. Cellular telephone protocol adaptive printing
US20060028479A1 (en) * 2004-07-08 2006-02-09 Won-Suk Chun Architecture for rendering graphics on output devices over diverse connections

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008181B1 (ko) * 2009-02-19 2011-01-13 한국과학기술원 Ⅰptv를 위한 컨텐츠 렌더링 시스템 및 방법

Also Published As

Publication number Publication date
US20060129632A1 (en) 2006-06-15
EP1672477A3 (en) 2007-05-30
EP1672477A2 (en) 2006-06-21

Similar Documents

Publication Publication Date Title
KR20060067141A (ko) 모바일 뷰잉을 위한 원격 컨텐츠 렌더링
US8363231B2 (en) Method and apparatus for managing fonts
US20150317118A1 (en) Image processing device
JP2001199105A (ja) 可変データ・パブリッシング印刷装置
US9619440B2 (en) Document conversion apparatus
US20140240735A1 (en) Systems and methods for using a printer driver to create and apply barcodes
US8896857B2 (en) Content receipt via email addresses
US20130107289A1 (en) Rasterization of printing data
TWI448909B (zh) 具有圖形影像之字形檔案
US8699076B2 (en) Image forming apparatus, server, image forming system, and storage medium, outputting superimposed text strings in a variable form page
JP2010176542A (ja) 印刷情報変換装置、印刷装置、印刷システム及びプログラム
JP2006018808A (ja) 出力装置用の埋込みリソース更新を生成するシステムおよび方法
US20050094172A1 (en) Linking font resources in a printing system
US9311040B2 (en) System, control method for same, and image processing apparatus
JP2004342078A (ja) ネットワークにおける印刷ジョブの処理システム
US20080278517A1 (en) System and method for manipulation of document data intercepted through port redirection
JP2014119998A (ja) 出力処理システム及び出力処理方法
US10481844B2 (en) Data communication method and information processing apparatus having multiple print settings
US9147091B2 (en) Printing barcodes from an enterprise resource planning (ERP) system
US20170242641A1 (en) Print client based marking
US20140016150A1 (en) System and method to store embedded fonts
JP2004110131A (ja) 情報処理装置、情報処理方法及び情報処理システム
US9052864B1 (en) Method and apparatus for processing a page description language document
US8055083B2 (en) Portable bitmap rendering systems and methods
US20110296292A1 (en) Efficient application-neutral vector documents

Legal Events

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