JP2018508059A - ネットワークベース静的フォントサブセット管理 - Google Patents

ネットワークベース静的フォントサブセット管理 Download PDF

Info

Publication number
JP2018508059A
JP2018508059A JP2017532904A JP2017532904A JP2018508059A JP 2018508059 A JP2018508059 A JP 2018508059A JP 2017532904 A JP2017532904 A JP 2017532904A JP 2017532904 A JP2017532904 A JP 2017532904A JP 2018508059 A JP2018508059 A JP 2018508059A
Authority
JP
Japan
Prior art keywords
font
characters
network asset
imaging device
text content
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2017532904A
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 JP2018508059A publication Critical patent/JP2018508059A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

システムは、命令を格納するよう構成されたメモリを含むコンピューティングデバイスを含む。さらに、システムは、イメージングデバイスにおいて、イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ又は複数のファイルを受信するステップを含む動作を実行するための命令を実行するプロセッサを含む。少なくとも1つのファイルは、ネットワークアセットのテキストコンテンツを提示するためのデータを含む。また、動作は、ネットワークアセットの一部と、ネットワークアセットの該部分に対応するテキストコンテンツとをイメージングデバイスのディスプレイ上に提示するステップを含む。さらに、動作は、ネットワークアセットの一部及び対応するテキストコンテンツが提示されている間、ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示可能かどうかを決定するための動作をイメージングデバイスにおいて実行するステップを含む。【選択図】図2

Description

関連出願の相互参照
本出願は、2014年12月17日に出願された米国特許出願第62/093,139号、2014年12月19日に出願された米国特許出願第62/094,632号、及び2015年1月21日に出願された米国特許出願第14/601,763号について、35USC§119(e)に規定される優先権を主張し、これらの文献の全内容が、参照により本明細書に組み込まれる。
本明細書は、フォントサブセットの管理、及び、プリンタやコンピュータデバイス等のイメージングデバイスへのネットワークを介したフォントサブセットの供給の管理に関する。
インターネット等のコンピュータネットワークによって提供される、絶え間なく拡張する接続性において、テキスト、グラフィックス、オーディオ、ビデオ等の様々な種類のコンテンツが、コンピューティングデバイス上に提示されるアセットに含まれ得る(例えばドキュメント、プレゼンテーション、ウェブサイト、ウェブページ等)。このようなコンテンツを有するアセットの提示は、見る者により楽しい視聴体験を提供し、情報のより効率的な伝達を援助する。しかしながら、この技術の急速な拡大は、かかるコンテンツが途切れずに提示されることを必ずしも許容しない。ユーザデバイスの性能の問題や、ネットワーク帯域、スループット等は提示を妨げ、視聴者のコンテンツを見る能力を制限する可能性がある。
本明細書に記載されるシステム及び技術は、アセットコンテンツを適時に提供し、アセットの提示における遅延を低減することに関する。コンテンツの効率的な提供に加えて、アセットの最初の部分(例えば、1ページ目、ウェブページ等)を提示するために、所定のフォント情報のセットがイメージングデバイス(例えば、プリンタ、コンピュータデバイス等)に提供され得る。この静的なフォント情報セットを提供することにより、初期コンテンツを視聴者に迅速に提示することができ、これにより、初期部分が視聴されている間に他の動作(例えば、アセットの他の部分を提示するためのフォント情報を得る)を実行するための追加の時間を提供することができる。例えば、ウェブサイトを提示するために必要とされる1つ又は複数のフォントが、イメージングデバイス(例えば、タブレットコンピューティングデバイス)において入手できない可能性がある。必要なフォント情報を効率的に提供するために、ウェブサイトの一部(例えば、オープニングウェブページ)を提示するための所定のフォントの文字(font characters)のサブセットを最初にイメージングデバイスに提供することができる。これらの所定のサブセット(例えば、最も頻繁に使用される文字を含む)は、完全に最適ではないが、その部分が見られている間に他の動作を実行するための時間を提供することができる。さらに、初期部分を迅速に提示することにより(最初の部分が見られている間に他の動作を実行できるようにするために)、視聴者が、選択されたアセットの提示が開始するのを待っている間に不満を覚える可能性は低くなる。さらに、初期提示までの遅延を低減することによって、提示されるコンテンツ(例えば、製品、サービスなどの広告)に対する視聴者の関心とともに、視聴体験が改善され得る。
一側面では、コンピューティングデバイス実装方法は、イメージングデバイスにおいて、イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ
又は複数のファイルを受信するステップを含む。少なくとも1つのファイルは、ネットワークアセットのテキストコンテンツを提示するためのデータを含む。また、この方法は、ネットワークアセットの一部と、ネットワークアセットの該部分に対応するテキストコンテンツとをイメージングデバイスのディスプレイ上に提示するステップを含む。さらに、この方法は、ネットワークアセットの一部及び対応するテキストコンテンツが提示されている間、ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示可能かどうかを決定するための動作をイメージングデバイスにおいて実行するステップを含む。
実装形態は、以下の特徴のうちの1つ又は複数を含むことができる。前記ファイルのうちの少なくとも1つは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するためのフォントの文字のセットを表すデータを含み得る。前記ファイル内の前記フォントの文字のセットは、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。前記フォントの文字のセット及び前記フォントの文字のセット内に含まれる各フォントの文字は、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。ネットワークアセットの少なくとも1つの他の部分を提示するための動作を実行するステップは、1つ又は複数の他のファイルをイメージングデバイスで受信するステップを含むことができる。前記他のファイルのうちの少なくとも1つは、前記ネットワークアセットの前記他の部分のテキストコンテンツを提示するための他のフォントの文字のセットを表すデータを含み得る。前記イメージングデバイスにおいて前記1つ又は複数の他のファイルが受信される前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる他のフォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示され得ないと判断された場合、別のフォントの文字のセットに対するリクエストを開始する動作が実行され得る。前記他のフォントの文字のセットがリクエストされる前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる各フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、該フォントの所定の頻繁に使用される文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字、及び該フォントの所定の頻繁に使用される文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、静的URLによって表され得る。前記ネットワークアセットを表す前記1つ又は複数のファイルは、前記イメージングデバイスに存在する前記フォントの文字のセットに基づき、送信のために選択され得る。前記ネットワークアセットを表す前記1つ又は複数のファイルは、コンテンツ配信ネットワークコンポーネントによって提供され得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、フォントサービスプロバイダから提供され得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、広告パブリッシャーから提供され得る。ネットワークアセットを表す前記1つ又は複数のファイルを受信するステップは、フォントサービスプロバイダ及び広告パブリッシャーにおいて実行される動作に基づき得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、データ伝送時間を低減するためにBase64を使用して符号化(encoded)され得る。前記
ソフトウェアエージェントは、静的機能及び動的機能を提供するための部分を含み得る。ネットワークアセットの一部は、広告又は他のタイプのコンテンツを含み得る。前記ソフトウェアエージェントは、フォントサービスプロバイダ、広告パブリッシャー、又は前記ネットワークアセットを表す前記1つ又は複数のファイルによって前記イメージングデバイスに提供され得る。前記ネットワークアセットの前記一部を前記イメージングデバイスの前記ディスプレイ上に提示するステップは、前記ネットワークアセットの前記一部に対応する前記テキストコンテンツを提示するのに適切なフォントの文字が前記イメージングデバイスに存在するまで、提示を遅延するステップを含み得る。ソフトウェアエージェントは、所定の場所のための静的識別子によって取得可能であってもよい。
他の側面では、システムは、命令を格納するよう構成されたメモリを含むコンピューティングデバイスを含む。システムは、イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ又は複数のファイルをイメージングデバイスにおいて、受信するステップを含む動作を実行するための命令を実行するプロセッサも含む。少なくとも1つのファイルは、ネットワークアセットのテキストコンテンツを提示するためのデータを含む。また、動作は、ネットワークアセットの一部と、ネットワークアセットの該部分に対応するテキストコンテンツとをイメージングデバイスのディスプレイ上に提示するステップを含む。さらに、動作は、ネットワークアセットの一部及び対応するテキストコンテンツが提示されている間、ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示可能かどうかを決定するための動作をイメージングデバイスにおいて実行するステップを含む。
実装形態は、以下の特徴のうちの1つ又は複数を含むことができる。前記ファイルのうちの少なくとも1つは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するためのフォントの文字のセットを表すデータを含み得る。前記ファイル内の前記フォントの文字のセットは、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。前記フォントの文字のセット及び前記フォントの文字のセット内に含まれる各フォントの文字は、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。ネットワークアセットの少なくとも1つの他の部分を提示するための動作を実行するステップは、1つ又は複数の他のファイルをイメージングデバイスで受信するステップを含むことができる。前記他のファイルのうちの少なくとも1つは、前記ネットワークアセットの前記他の部分のテキストコンテンツを提示するための他のフォントの文字のセットを表すデータを含み得る。前記イメージングデバイスにおいて前記1つ又は複数の他のファイルが受信される前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる他のフォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示され得ないと判断された場合、別のフォントの文字のセットに対するリクエストを開始する動作が実行され得る。前記他のフォントの文字のセットがリクエストされる前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる各フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、該フォントの所定の頻繁に使用される文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示する
ために必要な各フォントの文字、及び該フォントの所定の頻繁に使用される文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、静的URLによって表され得る。前記ネットワークアセットを表す前記1つ又は複数のファイルは、前記イメージングデバイスに存在する前記フォントの文字のセットに基づく送信のために選択され得る。前記ネットワークアセットを表す前記1つ又は複数のファイルは、コンテンツ配信ネットワークコンポーネントによって提供され得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、フォントサービスプロバイダから提供され得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、広告パブリッシャーから提供され得る。ネットワークアセットを表す前記1つ又は複数のファイルを受信するステップは、フォントサービスプロバイダ及び広告パブリッシャーにおいて実行される動作に基づき得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、データ伝送時間を低減するためにBase64を使用して符号化され得る。前記ソフトウェアエージェントは、静的機能及び動的機能を提供するための部分を含み得る。ネットワークアセットの一部は、広告又は他のタイプのコンテンツを含み得る。前記ソフトウェアエージェントは、フォントサービスプロバイダ、広告パブリッシャー、又は前記ネットワークアセットを表す前記1つ又は複数のファイルによって前記イメージングデバイスに提供され得る。前記ネットワークアセットの前記一部を前記イメージングデバイスの前記ディスプレイ上に提示するステップは、前記ネットワークアセットの前記一部に対応する前記テキストコンテンツを提示するのに適切なフォントの文字が前記イメージングデバイスに存在するまで、提示を遅延するステップを含み得る。ソフトウェアエージェントは、所定の場所のための静的識別子によって取得可能であってもよい。
他の側面では、1つ又は複数のコンピュータ可読媒体は処理装置によって実行可能な命令を格納し、前記命令が実行されると、前記処理装置は、イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ又は複数のファイルを前記イメージングデバイスで受信するステップを含む動作を実行する。前記ファイルのうちの少なくとも1つは、前記ネットワークアセットのテキストコンテンツを提示するためのデータを含む。また、動作は、ネットワークアセットの一部と、ネットワークアセットの該部分に対応するテキストコンテンツとをイメージングデバイスのディスプレイ上に提示するステップを含む。さらに、動作は、ネットワークアセットの一部及び対応するテキストコンテンツが提示されている間、ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示可能かどうかを決定するための動作をイメージングデバイスにおいて実行するステップを含む。
実装形態は、以下の特徴のうちの1つ又は複数を含むことができる。前記ファイルのうちの少なくとも1つは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するためのフォントの文字のセットを表すデータを含み得る。前記ファイル内の前記フォントの文字のセットは、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。前記フォントの文字のセット及び前記フォントの文字のセット内に含まれる各フォントの文字は、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。ネットワークアセットの少なくとも1つの他の部分を提示するための動作を実行するステップは、1つ又は複数の他のファイルをイメージングデバイスで受信するステップを含むことができる。前記他のファイルのうちの少なくとも1つは、前記ネットワークアセットの前記他の部分のテキストコンテンツを提示するための他のフォントの文字のセットを表すデータを含み得る。前記イメージングデバイスにおいて前記1つ又は複数の他のファイルが受信される前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる他の
フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示され得ないと判断された場合、別のフォントの文字セットに対するリクエストを開始する動作が実行され得る。前記他のフォントの文字のセットがリクエストされる前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる各フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能であり得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、該フォントの所定の頻繁に使用される文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字、及び該フォントの所定の頻繁に使用される文字を含み得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、静的URLによって表され得る。前記ネットワークアセットを表す前記1つ又は複数のファイルは、前記イメージングデバイスに存在する前記フォントの文字のセットに基づく送信のために選択され得る。前記ネットワークアセットを表す前記1つ又は複数のファイルは、コンテンツ配信ネットワークコンポーネントによって提供され得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、フォントサービスプロバイダから提供され得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、広告パブリッシャーから提供され得る。ネットワークアセットを表す前記1つ又は複数のファイルを受信するステップは、フォントサービスプロバイダ及び広告パブリッシャーにおいて実行される動作に基づき得る。前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、データ伝送時間を低減するためにBase64を使用して符号化され得る。前記ソフトウェアエージェントは、静的機能及び動的機能を提供するための部分を含み得る。ネットワークアセットの一部は、広告又は他のタイプのコンテンツを含み得る。前記ソフトウェアエージェントは、フォントサービスプロバイダ、広告パブリッシャー、又は前記ネットワークアセットを表す前記1つ又は複数のファイルによって前記イメージングデバイスに提供され得る。前記ネットワークアセットの前記一部を前記イメージングデバイスの前記ディスプレイ上に提示するステップは、前記ネットワークアセットの前記一部に対応する前記テキストコンテンツを提示するのに適切なフォントの文字が前記イメージングデバイスに存在するまで、提示を遅延するステップを含み得る。ソフトウェアエージェントは、所定の場所のための静的識別子によって取得可能であってもよい。
上記及び他の側面及び特徴、並びにこれらの様々な組み合わせは、方法、装置、システム、機能を実行するための手段、プログラム製品、及び他の方法として表現され得る。
他の特徴及び利点が、明細書および特許請求の範囲から明らかになるであろう。
図1は、提示のためにイメージングデバイスに提供され得る例示的なコンテンツを示す。 図2は、インターネットベースのコンピュータネットワークのブロック図である。 図3は、フォントサブセット管理のためにイメージングデバイスに提供されるファイルを示す。 図4は、イメージングデバイスへのフォントサブセット送信を示す。 図5は、フォントサブセット管理のためのネットワークコンポーネントを示す。 図6は、フォントサブセットの例を示す。 図7は、フォントサブセット管理のための動作の例示的なフローチャートである。 図8は、本明細書に記載される技術を実施するために使用され得る例示的なコンピュータデバイス及びモバイルコンピュータデバイスを示す。
図1を参照して、様々な種類のアセットが提示のために生成され得る。例えば、ドキュメント、プレゼンテーション等のアセットが、コンピューティングデバイス(例えば、コンピュータシステム、スマートフォン等)によってローカル又はリモートで生成されることができ、又は、ネットワークアセット(例えば、ウェブページ100)がリモートで生成され、インターネット(又は別の種類のコンピュータネットワーク)を介してアクセス可能であり得る。ウェブページ100のようなネットワークアセットは、適切な識別情報(例えば、URL(uniform resource locator))をウェブブラウザ又は他の種類のアセット提供者に供給することによってアクセスされ得る。例えば、一度アクセスされると、ウェブアセットがパッケージ化され、提示のために対応するアセットプロバイダからイメージングデバイス(例えば、コンピューティングデバイス、プリンタ等)に送信され得る。図示の例では、ウェブページ100のコンテンツは、テキスト及びグラフィックスを含む誕生日パーティー招待状を含み、特定のURL(すなわち、www.invite.com)からアクセスすることができる。さらに、ウェブページ100の一部は、招待の題目(subject)に関連するコンテンツ(例えば、誕生日ケーキを販売するケーキショップ)の広告102を含む。多くの場合、ウェブページ上の同一の場所(real estate)に複数の広告が順番に提示され得る(例えば、ぱっと現れて視聴者の注意を引く)。目を引くウェブページを提供するために、招待状と広告は異なる書体を提供する複数のフォントを使用し、それぞれがスタイリッシュな文字又はグリフ(glyphs)を提供すると考えられる。一般的に、そのようなテキスト及び類似するグラフィックを提示するためには、通常、フォントセットを含む様々な種類のフォントファミリ(Times New Roman、Arial等)が使用され得り、例えば、レギュラー、イタリック体、イタリック体、太字体、太字イタリック体等が含まれ得る。一般に、各フォントはグリフと呼ばれる個別の文字形状のセットを含み、グリフは一般的に、フォントに関連付けられた様々なデザインフィーチャ(例えば、ジオメトリ、線の太さ、セリフ(serifs)、サイズ等)を共有する。かかるフォントを表すために、1つ又は複数の技術を利用することができる。例えば、直線と曲線を用いてグリフの境界を規定するアウトラインベース表現を採用することができる。かかるフォントは、(例えば、様々なイメージングデバイスで提示するために)様々なサイズに拡張可能(scalable)であり得り、また、1つ又は複数のフォーマットで表現され得る。例えば、拡張可能なアウトラインフォントは、多くの言語の様々な活字記号をサポート可能なデータ構造を含むフォーマットで表現され得る。
生成されたアセット(例えば、電子ドキュメント、プレゼンテーション等)は、提示のためにイメージングデバイスに提供され得る。例えば、1つ又は複数の電子ドキュメント(例えば、MS−Wordドキュメント、MS−PowerPointプレゼンテーション、MS−Excelファイル、PDF(portable document format)ファイル等)が、イメージングデバイス(例えば、プリンタ、コンピューティングデバイス等)に提供され得る(例えば、ローカルコンピューティングデバイスから直接送信される、電子メールプロトコル等の1つ又は複数のプロトコルを使用して遠隔送信される等)。また、生成されたアセットにリモートアクセスされてもよい。例えば、アクセスされると、1つ又は複数のコンテンツプロバイダは、ネットワークアセット(例えば、
ウェブページ100)のコンテンツをイメージングデバイスに提供する技術を使用し得る。この構成では、ウェブページ100は、異なる技術を利用し得る1つ又は複数のアセットファイル104で表現され得る。例えば、1つ又は複数のアセットファイル104は、アセットを提示するための命令を含むハイパーテキストマークアップ言語(HTML)ファイルと、HTMLファイルによって提示されるアセットに関する提示セマンティクス(semantics)を提供するカスケーディングスタイルシート(CSS)ファイルとを含むことができる。HTML、CSS、XML用のW3C(World Wide Web Consortium)規格及び他の規格等の規格を実装して、電子コンテンツを表示可能な様々な種類のイメージングデバイス(例えばコンピュータシステム、タブレットコンピューティングデバイス、スマートフォン、PDA(personal digital assistants)、ハンドヘルドコンピュータ、セットトップボックス、HUD(ヘッドアップディスプレイ)、インターネット機器等)上にウェブページ100が適切に表示され得る。このような電子コンテンツの表示は他の形態を取ってもよく、例えば、プリンタのようなイメージングデバイスがウェブページ100のハードコピー提示を生成してもよい。
1つ又は複数のアセットファイル104は、ウェブページのテキストを表示するために使用される1つ又は複数のフォントを参照し得る。例示のために、招待に関連する情報(例えば、時間、日付、場所、イベントの説明、及びメニュー)を提供するために、5つの異なるフォントがウェブページ100で使用されるものとする。テキスト情報の各部分にどのフォントが対するかを受信側イメージングデバイスが知ることができるよう、アセットファイル104は各フォントを呼び出す(例えば、「Times New Roman」フォントで日付を提示する)。アセットファイル104に含まれる命令を受信して実行する際、受信側イメージングデバイスは、テキストを提示するために必要なフォントをローカルに取り出すことができる。しかし、アセットファイル104とともに供給されるフォント情報が各文字を提示するのに十分でない場合が生じ得る。例えば、アセットで使用されるフォントの文字がイメージングデバイスにローカルに存在しない場合がある。かなりの数のイメージングデバイス(例えば、プリンタ、コンピュータシステム等)は、ウェブページの表示に必要とされる可能性がある各フォントのすべての文字をローカルに格納することができないおそれがある。限られたリソース(例えば、メモリ)及び絶え間ない新たなフォントタイプの創作のため、イメージングデバイスはあらゆるフォントでテキストを表示する準備ができないおそれがある。異なる言語に関連付けられたフォントは、多くのイメージングデバイスがすべてのフォントタイプを格納できないという問題を悪化させる。中国語、日本語、韓国語などの言語は、数万(例えば、10,000超)のアルファベット文字を使用する可能性があり、1つの言語の文字を格納するために1MBから20MBのメモリが要求されるおそれがある。このようなメモリ要求は、特に、より弱いオンボードメモリを備えたイメージングデバイス(例えば、プリンタ、携帯電話など)の場合、実用的ではない。そのような状況において、一部のデバイスからは、コンテンツを提示するためにフォント代替技術を使用することができる。例えば、デバイスは、アセットに含まれているがデバイスには存在しないフォントについて、(見た目に基づいて)最も近いフォントによって置き換えることができる。
イメージングデバイスにローカルにすべての潜在的なフォントタイプを格納するというロジックに従って、少数のフォントについてであっても完全な文字セットを格納することは、セットから少数の文字だけが必要な場合(例えば、特定のウェブページ又は他の種類のアセットを提示するために)は、非効率的であり得る。図示の例を参照すると、イベントの日付を提示するには比較的少ない数の「Times New Roman」フォントの文字が必要であり(例えば、「A」、「p」、「r」、「i」、「l」、「2」、「0」、「t」、及び「h」)、完全なフォントの文字セットを送信及び保存することは、イメージングデバイスのメモリの不適当な使用と考えることができ、可能性があるユーザ言
語(例えば、英語、中国語、日本語など)ごとに完全な文字セットが保存されている場合には、確実にそうである。さらに、フォント転送に必要な時間及び帯域幅の消費も問題をもたらし得る。例えば、中国語、日本語、韓国語などの言語に関連付けられたフォントの完全な文字セットを転送するには、かなりの帯域幅と転送時間が必要とされ得る。
大きな文字セットを含むそのようなデータの送信も、アセットの視聴経験を妨げるおそれがある。例えば、受信側イメージングデバイスでそのようなデータが受信されるのを待つことは、アセットの提示を著しく遅延させ、末端視聴者を苛立たせる可能性がある。図に示されるように、ウェブページ100によってイメージングデバイスを提示するために、6つの完全なフォントの文字セット106、108、110、112、114がアセットファイル104と共に提供される。かなりの数のフォントの文字がアセットの送信を遅くすることに加えて(例えば、各文字セットの配信が受信側とソースによって交渉される必要がある場合がある)、各フォントセットを処理することにより、アセットの提示がさらに遅れることがある。例えば、受信側イメージングデバイスは、複数の広告のそれぞれをウェブページの同じ部分にある期間にわたって周期的に提示するために必要なフォントの文字を特定して選択し得る。したがって、さらなる遅延が生じ得り、これは、最初に提示されないアセットの一部(例えば、後に提示される広告)が準備される中で、ウェブページを見るのを待っている末端視聴者をさらにいらだたせるおそれがある。
場合によっては、アセットファイルとともにフォントセットが提供されず、デバイスがローカルに存在するフォントを使用してアセットを提示することがある。例えば、アセットファイル104が提供されたプリンタ118は、アセットファイル内に特定されるが、プリンタから欠落しているフォントを置換することができる。欠落している各フォントを最も近いフォントで置き換えることによって、プリンタは出力を作成することを試み得る。しかし、同様の情報が提示され得るとしても、アセットの全体的な外観及びスタイルが犠牲になる可能性がある。この具体例では、プリンタ118は、ウェブページ100内のオリジナル選択フォントの代わりに(プリンタに保存された)ローカルフォントの文字を含むアセットのプリントアウト120を生成する。この例では、プリントアウトは、プリントアウト120において提示されるテキストの各行について、同じ代替フォント(Times New Roman)を使用した。よって、プリントアウト120には、オリジナルのウェブページ100の全体的な外観及びスタイルがない。
アセットの静的部分(例えば、提示されるイベントの時間、日付などの変化しない部分)への影響に加えて、欠落するフォントは、時間とともに変化するアセットの部分にも影響を及ぼす可能性がある。例えば、周期的に提示される広告のうちの1つ又は複数が、オリジナルの設計通りに現れない可能性がある。図示されるように、ウェブページ100の右下部分に挿入される初期広告102が(所定の期間の後に)サイクルアウトされ、プリントアウト120が作成される際、別の広告122が同じ場所に提示され得る。この別の広告122のフォントの文字をプリンタ118が有さない場合、代替フォントが同様に利用され得り、より魅力的でない広告が生成されるおそれがある。
イメージングデバイスから欠落している適切なフォント情報を提供する1つ又は複数の技術が実装され得る。例えば、特定のフォントの各文字を表すデータを(アセットとともに)送信する代わりに、フォントの文字の一部(サブセットと呼ばれる)を送信して、アセットの最初の部分を提示するのに必要な時間を短縮することができる(例えば、複数ページのウェブサイトのオープニングウェブページ)。このようなフォントサブセットを利用すると、より少ないフォントデータが配信されるので、データ伝送を改善することもできる。したがって、広告及び他のコンテンツの搭載所要時間が低減され、これにより、広告の有効性が向上する可能性がある(例えば、動的に変化する広告、複数ページのウェブサイト上に提示される広告など)。図示の例を参照すると、フォントの文字セット104
〜112の各々を、アセットファイル104とともに、又はファイルを受信した後すぐに提供され得る著しくより小さいフォントサブセットに置き換えることができる。さらに、各フォントサブセットに含まれる文字の選択は、提示時間の速度を上げ、視聴体験を改善することができる。
図2を参照すると、コンピューティング環境200は、タブレットのディスプレイによって提示されるターゲットウェブアセット(例えば、ウェブサイト)を特定するためにユーザが対話(interact)可能なタブレットコンピュータデバイス202を含む。例えば、ユーザが1つ又は複数のウェブページをターゲットにするために、ウェブブラウザ204又は同様なソフトウェアアプリケーションがタブレット202によって実行され得る。特定される際、ウェブブラウザ204の動作は、インターネット206を介して、(例えば、複数のページを含み得る)ターゲットウェブサイトの1つ又は複数のウェブアセットソース208a、b、cにコンテンツを要求することを含み得る。図示のように、この具体例では、ウェブページソース208aにウェブページがリクエストされ、ソースからインターネット206を介してタブレットデバイス202に、対応するアセットファイル210(例えば、HTMLファイル、CSSファイルなど)が送信される。ある構成では、1つ又は複数のウェブアセットファイル210は、アセットを提示するための命令を含むハイパーテキストマークアップ言語(HTML)ファイルと、HTMLファイルによって提供されるアセットに関する提示セマンティクスを提供するカスケーディングスタイルシート(CSS)ファイルとを含む。一部の構成では、複数のソースからコンテンツ、ファイルなどが提供されてもよい。例えば、ウェブサイトのウェブページはウェブアセットソース208aによって提供される一方、1つ又は複数の広告が広告パブリッシャー208b(「アドパブリッシャー」と呼ばれる)によって提供されてもよい。このようなマルチソース構成では、アセットとともに提示するために、様々なタイプの広告を提供することができる。例えば、静的な広告、又は時間の経過とともに動的に変化する広告がアドパブリッシャー208bによって提供されてもよい。
この構成では、コンピューティング環境200は、さらに、ターゲットアセットを提示するタブレットコンピューティングデバイス202にフォント情報(例えば、フォントサブセット)を提供するフォントサービスプロバイダ214を含む。タブレットデバイス202のニーズに対応するために、所定のフォントサブセット、新しく作成されたフォントサブセットなどがフォントサービスプロバイダ214によって提供され得る。説明のために、この例では、適切なフォント情報をイメージングデバイス(例えば、タブレット202)に提供するためにフォントファイル216が使用されるが、他の技術を使用することもできる。フォントサブセットなどのフォント情報の提供に加えて、フォントサービスプロバイダ214は他の動作を実行してもよい。例えば、フォントサブセット生成と共に、フォントサービスプロバイダ214は、リクエストを出しているコンピューティングデバイスに完全なフォントの文字のセットが提供されるべきか否かを決定可能であり得る。例えば、フォントサービスプロバイダ214は所定の規則を使用することにより、フォントサブセットを送るべきか否かを決定することができる。このような規則の1つは、完全な中国語文字セットの大きなサイズを理由に、特定の言語(例えば、中国語)に関連付けられたフォントの文字のセットについてサブセットが作成されるべきであることを示し得る。かかる決定には静的な規則を使用することができるが、サブセット決定は動的に実行されてもよい。
適切なフォント情報(例えば、サブセット)を提供するために、フォントサービスプロバイダ214は、通常、フォントサービスプロバイダに関してローカル又はリモートで格納され得る1つ又は複数のフォントライブラリへのアクセスを必要とする。図中、フォントライブラリ218は、記憶装置220(例えば、1つ又は複数のハードドライブ、CD−ROMなど)にオンサイトで記憶されているものとして示されている。サーバ222に
よってアクセス可能なフォントライブラリ218は、適切なフォント情報(例えば、完全なフォントセット、フォントサブセットなど)を生成するために使用され得る。単一の記憶装置220に格納されているものとして示されているところ、フォントサービスプロバイダ214は、(例えば、異なるフォントスタイル、言語などの)アクセス可能なフォントセットの集合を保持するために、多数の記憶技術及びデバイスを使用することができる。また、フォントサービスプロバイダ214は、必要な情報を収集するために別々の場所でフォント情報(例えば、フォントセット)にアクセスしてもよい。例えば、フォント、フォントの文字、フォントサブセットなどを特定する際、サーバ222を使用して、(例えば、インターネット206を介して)フォントサービスプロバイダ214の外部の1つ又は複数のソースから必要な情報が収集され得る。
フォント情報(例えば、完全なフォントセット、フォントサブセットなど)を生成し、イメージングデバイス(例えば、タブレット202)に提供することに加えて、フォントサービスプロバイダ214は、他の機能を提供することができる。例えば、将来のリクエストのために、特定のアセット(例えば、ウェブページ及びウェブサイト)に関連するフォント及びフォントサブセットが追跡(tracked)されてもよい。あるシナリオでは、特定のウェブページを提示するために、1つ又は複数のフォントサブセット(例えば、フォントファイル216に含まれる)が作成され得る。フォントサブセットとウェブページとの間の関連性は、(例えば、サーバ222によって)特定されて後の検索のために記憶されてもよい。したがって、将来、(例えば、別のコンピューティングデバイス上で)ウェブページを提示するために必要なサブセットが迅速に特定され、リクエストを出しているコンピューティングデバイスに提供される。ある構成では、フォントデータベース224がフォントサービスプロバイダ214(例えば、記憶装置220)に記憶され、フォントデータベース224は、例えばウェブページとフォントサブセット(フォント)との間の様々な関連付けを表す記録を含む。
一部の構成では、フォントサービスプロバイダ214の機能(又は一部)は、1つ又は複数の他のコンポーネントによって提供されてもよい。例えば、フォント情報(例えば、フォントサブセット)の提供は、広告パブリッシャー208b又は他のシステムコンポーネントによって実行されてもよい。広告パブリッシャー208bは、動的に変化する広告コンテンツを含み得る広告を管理することに加えて、イメージングデバイス(例えば、タブレットコンピューティングデバイス202など)において広告を提示するために必要な1つ又は複数のフォントの文字サブセットを含むフォントファイルを送信する等の1つ又は複数の技術を使用して、フォント情報を提供し得る。同様に、ウェブアセットソース208aなどの他のコンポーネントが、フォントサブセットの作成、配信、記憶、管理などのフォントサービスプロバイダの機能を実行することができる。
図3を参照して、送信される特定のフォントサブセットを決定する1つ又は複数の技術が使用され得る。多くの場合、単一のサブセット又は少数の(a few)サブセットが、ウェブサイトのウェブページなどのアセットのテキストに関するニーズをサポートすることができる。したがって、場合によっては、文字が予め選択され、フォントサブセットが予め定められ得る。これらのサブセットに含める文字の決定は、様々な選択技術に基づ気得る。例えば、かかるアセット(例えば、ウェブページ)において過去に使用され、頻繁に現れる文字は、類似のアセット(例えば、他のウェブページ)などの他のアセットの提示をサポートするサブセットに含めることができる。ラテンアルファベットに基づく英語のような西洋のスクリプトの場合、これらのフォントの頻繁に使用される文字が(例えば、フォントサービスプロバイダ214で)分類され、アセットの提示をサポートするために最初に提供され得る。頻繁に出現する文字の使用と同様に、他のタイプの選択基準を使用することもできる。例えば、アセット(例えば、ウェブページ、広告など)によって使用されている文字そのものをフォントサブセットに挿入することができる。よって、必
要な各フォントの文字が、アセットを提示するためにイメージングデバイスに送信される。一部の構成では、これらの文字そのものは、アセットによって最初に使用される文字に対応する。例えば、ウェブサイトの最初のウェブページによって使用される文字は、第1のフォントサブセット(タブレット202に提供される)に含まれ、他のウェブページ(例えば、ウェブサイトの第2のウェブページ)において使用される文字は、1つ又は複数の後続するフォントサブセットに含まれ得る。一部の構成では、使用される文字そのものと、頻繁に使用されるフォントの文字との組み合わせが、イメージングデバイスに提供される初期フォントサブセットに含まれてもよい。典型的には、そのようなフォントサブセットは、フォントサービスプロバイダ(図2に示すフォントサービスプロバイダ214など)によって作成、管理、送信などされる。しかし、他のソース(例えば、アセットソース、アドパブリッシャーなど)が同様に、かかるサブセットを管理して受信側イメージングデバイスに送信してもよい。
かかるフォントサブセットを送信するために1つ又は複数の技術を使用することができる。例えば、初期フォントサブセット(例えば、頻繁に使用される文字、必要とされる文字そのもの、出現の可能性が高い文字と必要とされる文字そのものの組み合わせなどを含む)がイメージングデバイス(例えば、タブレット202)に提供され得る。この例に示されるように、アセットファイル210は、初期フォントサブセットへのアクセスを提供するHTMLファイル及びCSSファイル(HTML/CSS 300と示される)を含む。例えば、初期フォントサブセットにアクセスするためにHTML/CSS300にURLを含めることができる。さらに、他の機能とともに、アセットを提示するためにイメージングデバイスが必要とするフォントの文字を決定するために、実行可能な命令がアセットファイル210(または別の1つ又は複数のファイル)によって提供されてもよい(アセットファイル210の中に表される)。例えば、アセットが必要とする個々のフォント、フォントの文字等を特定し、これらのフォント、フォントの文字等のうちの1つ又は複数がタブレットコンピュータデバイス202から欠落している(例えば、メモリ、ローカルストレージデバイスなどに存在しない)かどうかを判定することが可能なソフトウェアエージェント302が含まれ得る。図示の例では、ソフトウェアエージェント302は、実行されると、提示されるアセットのドキュメントオブジェクトモデル(DOM)304をチェックするJavaScript命令で実現することができる。DOM304は、アセットファイル210によって表されるアセットの要素のツリー構造表現と考えることができる。アセットが提示のために準備されているときにDOMツリー304をチェックすることによって、エージェント302は、アセットによって使用されるフォントの文字コードなどの情報が欠落しているかどうかを判定することができる。フォント情報が欠落していると判定された場合、ソフトウェアエージェント302単独で、又はタブレットコンピューティングデバイス202(場合によっては他のコンピューティングデバイス)と協働して、例えば、欠落しているフォントを特定するための情報を収集するために、1つ又は複数の動作が実行され得る。例えば、ソフトウェアエージェント302は、アセットを提示するために提供される初期フォントサブセットを超える適切なフォントサブセットを得るために送られるリクエストを開始することができる。
ソフトウェアエージェントは、不足しているフォント情報を決定するための命令を含むとともに、(例えば、フォントサービスプロバイダ214から)タブレットデバイス202に潜在的に提供され得るフォントサブセットを特定するデータを含む(又はデータへのアクセスが提供される)。提供され得るフォントサブセットの認識に加えて、ソフトウェアエージェント302によって取得可能なデータにおいて、潜在的サブセットに含まれる各文字が特定され得る。したがって、ソフトウェアエージェント302は、初期フォントサブセットに含まれるフォントの文字(例えば、HTML/CSS300から取得可能)、及び、後続のフォントサブセットとして送信され得る他のフォントサブセットに含まれるフォントの文字を認識する。この情報を用いて、ソフトウェアエージェント302は、
アセットを提示するために必要な特定の1つ又は複数のフォントサブセットを効率的に特定することができる。ある構成では、文字コードが初期フォントサブセットに存在しないと判定されると、ソフトウェアエージェントは、ソフトウェアエージェントが認識している他の所定のフォントサブセットのうちの1つによって、これらの欠落した文字コードのいずれかが提供され得るか否かを判定することができる。特定されると、そのような後続のフォントサブセットを取得するために、1つ又は複数の技術が使用され得る。例えば、1つ又は複数のこのような他のサブセットが特定される場合、ソフトウェアエージェント302は、必要なフォントの文字を提供するために適切なフォントサブセットが取得されるよう、情報をDOMツリー304に挿入する動作を実行することができる。欠落しているフォントの文字の特定は、初期アセット部分(例えば、ウェブサイトの最初のウェブページ)の提示においても起こり得る。例えば、ソフトウェアエージェント302は、イメージングデバイスに存在するフォントの文字によっては適切な文字が網羅されないことを決定し得る(例えば、1つ又は複数の必要なフォントの文字が初期フォントサブセット、イメージングデバイスのローカルストレージ等から欠落している)。欠落しているフォントの文字の決定に応じて、ソフトウェアエージェント302は、必要な各フォントの文字を適切にサポートするために、1つ又は複数のサブセットのリクエストを(例えば、フォントサービスプロバイダに)送信することを開始し得る。一部の構成では、ソフトウェアエージェント302は、欠けているフォントの文字を特定し、サブセットを動的に生成することをリクエストし得る。ソフトウェアエージェントは、一部の構成では、必要な文字サポートを得るための特定のサブセットを特定し得る。必要なフォントの文字が得られている間、イメージングデバイスは、フォントの文字データを受け取る準備をする動作を実行してもよい。例えば、アセットの最初の部分の提示は、必要なフォントの文字がイメージング装置に存在するまで延期されてもよい。したがって、ソフトウェアエージェント302によって開始されたリクエストが満たされるまで(例えば、フォントサービスプロバイダが、欠落しているフォントの文字を送信するまで)、アセットはイメージングデバイス上に表示されない可能性がある。
このようなソフトウェアエージェントは、実質的に自律的に実行可能なソフトウェアモジュールと考えることができる。例えば、タブレットコンピューティングデバイス202に提供されると、ソフトウェアエージェント302は、ユーザインタラクション(interaction)をさほど要さずに動作することができる。いくらか柔軟に動作することにより、ソフトウェアエージェントは、アセット提示に必要なフォント、フォントの文字、文字コードなどを適応的に特定し、このフォント情報を、(例えば、フォントサービスプロバイダ214によって)提供され得る所定のフォントサブセットのフォントデータと比較することができる。DOMツリーを操作するなどの他の機能も、ソフトウェアエージェントによって同様に実行されてもよい。また、ソフトウェアエージェント302は、かかる決定を行うためにDOMツリー304を調査するのと同様に、必要なフォント情報を特定するために、アセットファイル210(例えば、HTMLファイル、CSSファイルなど)の他の部分にいくらか持続性の態様でアクセス(例えば、スキャン)することができる。ソフトウェアエージェント302は、実質的に連続的にその動作を実行し得る。1つ又は複数のソースがソフトウェアエージェントを提供してもよい。例えば、ウェブサイトの1つ又は複数のサーバ等のアセットソース(例えば、ウェブアセットソース208a)がエージェント、エージェントへのアクセス等を提供し得る。また、フォントサービスプロバイダがソフトウェアエージェントのソースでもあってもよく、例えば、フォントサービスプロバイダでリクエストを受信すると、エージェントが提供され得る。他のタイプのソースがエージェントを提供してもよい。例えば、広告パブリッシャー(例えば、図2に示すアドパブリッシャー208b)、イメージングデバイスにおける広告の提示を援助するためにエージェントを提供し得る。一部の構成では、対応するソースにおいてソフトウェアエージェントにアクセスするために、変化しない(例えば、静的な)識別子を使用することができる。例えば、静的なユニフォームリソースロケータ(URL)が、ソー
ス(例えば、フォント・サービス・プロバイダ)に位置するソフトウェアエージェントに割り当てられ得る。複数のソースがソフトウェアエージェントを提供する状況では、ソフトウェアエージェントの対応する部分へのアクセスを提供するために、各ソースにおいて静的URLを使用することができる。あるアーキテクチャでは、ソフトウェアエージェントは、ソース(例えば、フォントサービスプロバイダ、アドパブリッシャーなど)における静的URLによって提供され、ソフトウェアエージェントのためのデータを得るために、静的URLに関連するデータフラグメント(例えば、ハッシュパラメータ)が使用されてもよい。ソフトウェアエージェント(例えば、JavaScriptで実装される)は、他のファイル、データなどへのアクセスを得るために(例えば、他のJavaScriptファイルをダウンロードするために)使用され得る。このようなエージェントは、イメージングデバイスで実行される機能と協働して動作することができる。例えば、ウェブブラウザ動作が、フォントサービスプロバイダによって提供されるネットワークアセット(例えば、HTML/CSSファイル)の1つ又は複数のファイルに含まれるJavaScriptコードから実行されるエージェント動作とともに動作し得る。視聴経験を向上させるために(そして、視聴者のいらだちを軽減するために)、ソフトウェアエージェント302の一部の動作は、アセットの一部の提示と並行して実行されてもよい。例えば、最初のフォントサブセット(ウェブサイトのオープニングウェブページを提示するのに必要なフォントの文字そのものを含む)がアセットの該当部分を提示するために使用される間に、ソフトウェアエージェントは、他の部分(例えば、ウェブサイトの後続のウェブページ)を提示するのに必要な1つ又は複数の他のフォントサブセットを識別し、バックグラウンドで取得することができる。フォントサブセット、サブセットに含まれる文字などを認識するソフトウェアエージェント302は、初期サブセットによって提供される文字以外に必要とされる他のサブセットを取得し得る(例えば、フォントサービスプロバイダ214から)。したがって、1つの部分(例えば、ウェブサイトのオープニングウェブページ)が提示されている間に並行して、1つ又は複数の後続サブセットを取得することができ、それにより、アセットを提示するための追加文字を収集するが、アセットの部分を提示における遅延に起因する視聴者のいらだちを低減することができる。
図4を参照すると、一連の動作は、タブレットコンピューティングデバイス202が、アセットを提示するために並行して動作を実行する様子を図式的に示す。グラフィック400に関連する動作に関して、(ウェブブラウザ204を介して)提示されるアセットが選択されると、フォントサービスプロバイダ214に位置するサーバ222からタブレットコンピューティングデバイス202に初期フォントサブセット402が提供される(矢印404によって示されるように)。受信後、初期フォントサブセット402はウェブブラウザ204のキャッシュ(cache)406に記憶され、これにより、初期フォントサブセットに比較的迅速にアクセスすることができる(そして、近い将来にサブセットを再度ダウンロードする必要がなくなる)。アセットの最初の部分(例えば、ターゲットウェブサイトの最初のウェブページ、初期広告など)を効率的に提示するために、初期フォントサブセットの内容は、この初期部分を提示するために必要な文字そのものを表す文字データを含み得る。この構成では、この初期フォントサブセット402の内容は予め準備されており、サブセットは(フォントサービスプロバイダ214)におけるサブセットコレクション408に格納され、必要に応じてアクセスすることができる。サブセットを管理するために、この例では、フォントサブセットデータベース410が使用され、適切なサブセットをコレクション408から取り出すことができる。初期フォントサブセット402として使用される場合、フォントサブセットデータベース410は、サブセットを、アセットの初期部分(例えば、オープニングウェブページ)に関連するものとして特定することができる。効率性は下がるが、一部の構成では、アセットの最初の部分を提示するための適切なフォントの文字を提供するために、初期フォントサブセットが動的に生成されてもよい。例えば、必要な文字そのもののフォントサブセットを予め定める代わりに、(例えば、アセットファイルを提供される)ソフトウェアエージェントは、アセットのD
OMツリーを調査し、必要なフォントの文字を特定し、そのサブセットの生成及び送信のリクエストを開始することができる(フォントサービスプロバイダ214のサーバ222に対して)。
一部の構成では、この予め定められたフォントサブセット(静的と見なすことができる)は、アセット(又はアセットの一部)を表すデータとともに提供される。例えば、初期フォントサブセット402は、対象のアセットのHTMLファイル及びCSSファイル(例えば、HTML/CSSファイル300)とともに送信することができる。初期フォントサブセットがアセットの最初の部分を提示するのに必要なフォントの文字そのものを含む場合、ソフトウェアエージェントは、この最初の部分を提示するために欠けている文字をチェックする必要はない。むしろ、ソフトウェアエージェントは、最初の部分が提示されている間、アセットの他の部分を提示するのに必要なフォントの文字のチェックに集中することができる。
前述したように、初期サブセットは、アセットの最初の部分(例えば、オープニングウェブページ、初期広告など)によって必要とされるフォントの文字そのものを含むことができる。アセットファイルを提供されるソフトウェアエージェントは、この初期サブセットの内容を認識している(例えば、データにアクセスすることによってサブセット及び含まれている文字を特定することができる)。一部の構成では、初期フォントサブセットに他の文字セットが含まれていてもよい。例えば、頻繁に使用される文字(又は発生する可能性が高い文字)として特定されるフォントの文字が含まれてもよく、場合によっては、これらの頻繁に使用される文字が、初期アセット部分に必要なフォントの文字そのものと組み合わせて提供されてもよい。したがって、初期アセット部分を遅滞なく提示するよう、フォントの文字が最初に提供され、さらに、後に提示されるアセット部分のためのフォントの文字が提供され得る。そのような頻繁に使用される文字を特定するために、1つ又は複数の技術を使用することができる。例えば、具体的な文字(例えば、文字「e」)の履歴使用データを使用して、初期サブセットのメンバーシップが定められてもよい。類似するアセット(例えば、特定の種類のウェブサイト、広告などで使用される文字)に対するキャラクターの使用頻度を、メンバーシップの規定に使用することも可能である。フォントの文字サブセットを定めるにあたり、他のタイプの選択基準、ファクタなどが利用されてもよい。
初期フォントサブセット402がキャッシュ406に存在し、アセットの初期部分を提示するために使用されている状況において、ソフトウェアエージェントは、アセットの他の部分を提示するために適切な文字情報がタブレット202に存在するか否かを判断することができる。例えば、ソフトウェアエージェントがアセットのDOMツリーを調査することによって、必要なフォントの文字が欠落しているか否かを判断することができる。追加の文字が必要な場合、ソフトウェアエージェントは、必要なフォント情報を取得するための動作を実行し得る。例えば、ソフトウェアエージェントは、必要に応じて1つ又は複数の適切なフォントサブセットが取得できるよう、アセットのDOMツリーを操作し得る。このようなDOMツリーの操作は、jQuery動作を使用する等、1つ又は複数の技術によって実行され得る。上記と同様に、ソフトウェアエージェントは、呼び出し可能なフォントサブセット及びサブセットの文字を認識及び特定することができるので、大きな助けを要することなく後続のサブセットを特定することができる。一部の例では、グラフィック401に示すように、ソフトウェアエージェントは、(矢印414で示すように)フォントサービスプロバイダ214のサーバ222へのリクエスト412の送信を開始することができる。フォントサービスプロバイダに格納されたフォントサブセット218が認識されているところ、ソフトウェアエージェントからの要求は、他のアセット部分を提示するのに必要なフォントの文字を含む1つ又は複数のサブセットを特定するデータを含み得る。リクエストが提供されると、(矢印418によって示されるように)後続フォン
トサブセット416がタブレットコンピューティングデバイス202に送信される。
1つ又は複数のタイプのイベントが、1つ又は複数の後続フォントサブセットのためのリクエスト412の送信(又は実行される他の動作)のきっかけとなり得る。例えば、イメージングデバイス(例えば、タブレットコンピューティングデバイス202)のユーザとの異なるインタラクションが、アセットの他の部分のための後続フォントサブセットの収集を開始し得る。あるシナリオでは、タブレットデバイス上に提示されるべきウェブページの上側部分にあるテキストのために初期フォントサブセットが提供され得る。あるユーザインタラクション(例えば、スクロールコントロール、提示されたページの別の部分を動かす動作など)が、まだデバイスのディスプレイ上に提示されていないページの他の部分のためのリクエスト送信を開始し得る。他のタイプのインタラクションがきっかけのイベントであってもよい。例えば、ユーザーがディスプレイ上のある場所(例えば、ディスプレイの境界)上にポインティングデバイスを配置する(例えば、グラフィカルカーソルをホバリングする)ことによって、リクエスト送信が開始されてもよい。提示されるコンテンツにおける変更が、1つ又は複数の後続フォントサブセットのためのリクエスト送信のきっかけとなってもよい。例えば、ソフトウェアエージェント(例えば、ソフトウェアエージェント302)又は他のタイプのプロセスが、提示コンテンツの潜在的変化を監視することができる。広告を提示するなどのアプリケーションでは、(ディスプレイの一部に提示される)広告を切り替えることにより、ユーザは、多くの広告を素早く見ることができる(また、視聴者の目を引くことができる可能性がある)。広告の変更は、ユーザインタラクション(例えば、提示された広告の上でポインティングデバイスをクリックすること)によっても起こり得る。このような場合、イベントハンドラなどのプロセスが(例えば、ソフトウェアエージェント、スタンド・アローン・ソフトウェア・アプリケーションなどに組み込まれる)、広告提示の変化を検知し(例えば、「フラッシュ広告」、ユーザインタラクションなどを検出)、ソフトウェアエージェントと協力して(例えば、ソフトウェアエージェントに通知する)、後続のフォントサブセットが必要であることを検知し、適切な動作を開始し得る(例えば、リクエストを送信する)。ある構成では、イベントハンドラは、提示されるアセットのHTMLに関連する要素を監視して、要素のいずれかにおけるコンテンツの潜在的変化を検知することができる。
かかる後続フォントサブセットに含まれる文字は、様々なファクタに基づ気得る。例えば、後続フォントサブセット416において、1つ又は複数の完全なフォントの文字のセットが送られてもよい。フォントの文字が既にロードされ、デバイスによって使用されている状況において、完全なフォントサブセットをバックグラウンドでロードすることができ、よって、アセットの最初の部分の提示には大きく影響しない。後に送信されるフォントサブセットは、それぞれの文字が以前に送信された(例えば、初期フォントサブセット402において提供された)フォントサブセットで欠落している文字であるよう作成され、これにより、送信の冗長性を低減することができる。
完全なフォントセットを送る代わりに、他のタイプの後続フォントサブセットが送信されてもよい。例えば、リクエスト412は、以前に送信された頻出文字のフォントサブセットとは異なる、二番目の頻度のフォントの文字のセットを含むサブセットを特定し得る。このようなフォントサブセット(二番目の頻度のフォントの文字のサブセット)を受け取ると、ソフトウェアエージェントは、アセットのDOMツリーを調べて、アセットによって使用される追加のフォントの文字のうち、まだデバイス上に存在しないものがあるかどうかを判断し得る。決定された文字がまだ欠落している場合、タブレットコンピューティングデバイス202からフォントサービスプロバイダ214にさらなるリクエストが送信され得る。したがって、先に供給されたサブセットがアセットを提示するために使用されている間に、フォントサブセットがバックグラウンドで漸増するよう提供され得る。このような漸増フォントサブセット技術として利用可能な例は、2009年6月22日に出
願された米国特許出願第12/457,792号(“Font Data Streaming”)に記載されており、参照によりその全体が本明細書に組み込まれる。
一部の例では、初期フォントサブセットによって提供されるフォントの文字がすでにデバイスに存在する(そして、再送されるべきではない)ことを前提に、後続フォントサブセット416は、アセットの別の部分を提示するために必要なフォントの文字そのものを含むことができる。このようなシナリオは、アセットの後続部分に必要なフォントの文字が既知の場合に発生し得る。例えば、ウェブページは、最初、1つのフォントの文字サブセットを必要とする1つの広告を提示し得る。ある期間(例えば、数秒)の経過後、第1の広告の代わりに別の広告がウェブページ上に提示され得る。この第2の広告は、最初に提供されたフォントの文字の一部を使用するものの、追加の文字も必要とし得る。第2の広告は既知であるので(例えば、タブレットデバイスに送信される前に広告パブリッシャーによって特定される)、第2の広告を提示するのに必要なフォントの文字のみを含むように、後続フォントサブセットを決定及び準備することができる(初期フォントサブセットが既にデバイスに存在することを前提に)。したがって、後続フォントサブセットは、他のアセット部分を提示するのに必要なフォントの文字そのもののみを含むことができる。場合によっては、必要に応じて、必要なフォントの文字そのもののみを含むフォントサブセットが生成され得る。例えば、リクエスト412が(例えば、第2の広告を提示するために)必要な文字を特定し、その時点で、フォントサービスプロバイダ214のサーバ222によってサブセットが生成されてもよい。
他の例では、後続フォントサブセットは、フォントの文字のセットの組み合わせを含むことができる。例えば、サブセットは、初期フォントサブセットがすでにタブレットコンピューティングデバイスに存在することを前提に、初期フォントサブセットから欠落している文字と、最も頻繁に発生する文字とを含むことができる。ある例示的なシナリオでは、初期フォントサブセット402は、ウェブサイトの第1のウェブページを提示するために必要な文字そのものを含むことができる。デバイス202に提供され、第1のウェブページを提示するために使用されている間、リクエスト412がサーバ222に送信され、2つのサブセット、すなわち、ウェブサイトの第2のページを提示するための(初期フォントサブセットには存在しない)フォントの文字を含むサブセット、及び最も頻繁に出現するフォントの文字(同様に、初期フォントサブセットには存在しない)を含むサブセットが特定され得る。この2つの文字セットの組み合わせを含むことにより、後続フォントサブセット416は、第2のウェブページを提示するために必要な文字そのものを提供するだけでなく、デバイスに存在するフォントの文字を漸次的に補給し、過去に頻繁に使用されたフォントの文字が他のウェブページに再度使用されると推測することによって、他のウェブページを効率的に提示することを可能にする。
図5を参照して、ユーザーデバイスがフォントサブセットを管理する動作(例えば、所定のサブセットを初期フォントサブセットとして特定する、後続フォントサブセットを特定する)を実行することに加えて、デバイスにかかるフォントサブセットを効率的に提供するために他の技術が使用されてもよい。例えば、ネットワーク環境500のような様々なネットワークアーキテクチャが、フォントサブセットの使用を最適化するために利用されてもよい。図示されるように、様々なタイプの記憶装置が、アクセス及び使用を援助するために、フォントサブセットを戦略的に格納することができる。上記したように、アセット(例えば、ウェブサイトのウェブページ)の部分提示等の動作のための比較的素早いアクセスのために、ユーザデバイス(例えば、タブレットコンピューティングデバイス202)に位置する1つ又は複数のキャッシュ(例えば、ウェブブラウザ204のキャッシュ406)がフォントサブセットを保存し得る。一部のアーキテクチャでは、格納されたサブセットの可用性が高くなるよう、高性能スキームを使用するコンテンツデリバリネットワーク(CDN)などのネットワーク技術を採用することができる。一般的に、CDN
は、1つ又は複数のネットワーク(例えば、インターネット206)に接続された複数のデータセンターに配備された大規模なサーバの分布であり得る。サーバは、一般的に複数の場所に分散している(CDNの)ノードに含まれる。このようなノードを使用することにより、CDNは、フォントサブセットのロード時間を短縮するとともに、フォントサブセット及び他のタイプのコンテンツのグローバルな利用可能性を増大させることができる。CDNに含まれるノードの数は、各ノードに存在するサーバの数とともに変化することができ、比較的小さなネットワークから、数千のノードを含むことができるグローバルネットワークまで考えられる。図示されるように、CDNサーバ502、504、506、508のコレクションが様々な場所に分散され、インターネット206に接続されている。各CDNサーバは、1つ又は複数のキャッシュ(CDNサーバ502に含まれるキャッシュ510によって図示されている)を含む。これらのCDNサーバのキャッシュに様々なフォントサブセットを格納することにより、タブレットコンピューティングデバイス202などのユーザデバイスは、初期フォントサブセットなどの1つ又は複数のフォントサブセットへのアクセスを比較的早く取得し、受け取ることができる。フォントサブセットに加えて、様々な広告を表すデータなどの他のタイプのコンテンツが、迅速なアクセスのためにCDNサーバによって格納されてもよい。
また、フォントサブセット及び他のタイプのコンテンツの送信、格納などのために他のネットワーキングアーキテクチャを使用することも可能である。例えば、リモートサーバ512によって図示されるように、より効率が悪いリモート配置されたサーバを利用することができる。CDNノードと比較すると、このようなデバイスは、他のデバイス及び位置(例えば、タブレットコンピューティングデバイス220)にデータを提供するのがより遅いと考えられる。このようなリモートサーバは、クラウドコンピューティングアーキテクチャのコンポーネントであり得り、フォント配布のための次善のネットワークスキームを使用し得る。例えば、フォントサービスプロバイダ、広告パブリッシャーなどのエンティティは、様々な機能のためにそのようなサーバを使用する可能性があり、よって、CDNノードなどのデータ配信のために調整されていない可能性がある。このようなリモートサーバは、通常、所定のフォントサブセット又は他のコンテンツ(例えば、過去に生成された広告)を格納するために使用されない可能性がある。むしろ、これらのデバイスは主に、コンテンツの作成などの他のタスクに使用され得る。例えば、必要なサブセットが以前に生成されていない場合、リモートサーバ512(フォントサービスプロバイダに位置し得る)を使用して、サブセットを動的に生成することができる。生成されたサブセットは、リクエストを出しているデバイス(例えば、タブレットコンピューティングデバイス202)に送信され得る。ウェブブラウザ204のキャッシュ406に格納されると、このサブセットは迅速にアクセス可能である。さらに、新たに生成されたウェブサイトが、CDNノードに存在するサーバ502、504、506、508の1つ又は複数のキャッシュに格納されてもよい。したがって、ネットワーク環境500によって、異なるレベルのコンテンツ利用可能性を提供する複数のタイプのアクセスポイントが提供される。データの格納に加えて、ネットワーク環境500によって他の機能が提供されてもよい。例えば、CDNノード、リモートサーバ512などの1つ又は複数のコンポーネントによって、環境内の複数の場所に重複したフォントサブセットが格納されているかどうかをチェックする(そして、それらを削除する)動作が実行されてもよい。また、イメージングデバイスに存在するソフトウェアエージェント(例えば、JavaScript)を更新する動作が含まれてもよい。フォントサブセットが変更されたり、新しいサブセットが作成されたり、削除されたりする状況において、所定のフォンサブセット、サブセットに含まれるフォントの文字等に関して適応性を維持するために、ソフトウェアエージェントを更新する必要がある。
アーキテクチャ設計と同様に、フォントサブセットの送信を援助するために他の技術を使用することができる。例えば、異なるデータ伝送スキームが利用されてもよい。例えば
、初期フォントサブセットが1つの形式を使用する一方、後続サブセットは異なる形式を使用してもよい(あるいは、場合によっては同等な形式)。多くの場合、初期フォントサブセットは、リクエストを出すイメージングデバイスによって受信されたアセットファイルにおいて特定される。例えば、初期フォントサブセットは、タブレットコンピューティングデバイス202に提供されるCSSファイル又はHTMLファイルに埋め込むことができる。フォントサブセットを埋め込むために、1つ又は複数の技術を適用することができる。例えば、ASCIIフォーマットのバイナリデータを表すBase64などの符号化方式を使用することができる。このようなバイナリデータをBase64を使用して埋め込むと、ファイルのサイズが大きくなる可能性がある(例えば、埋め込まれたバイナリデータのためにCSSファイルのサイズが大きくなる可能性がある)。しかし、このようなデータを埋め込んでも、ファイルのサイズが大きく増加することはない。さらに、送信されるファイルの数を減らすことで、データ送信時間を短縮することができる。通常、ネットワークを介して送信される各ファイルの送信者と受信者の間で交渉が行われる。多くの場合、この交渉を実行するのに必要な時間は、ファイルサイズの増加に起因する遅延よりもはるかにデータ伝送プロセスを遅らせる。このように、多数のファイルにおける送信交渉に起因してもたらされる長い遅延よりむしろ、(例えファイルサイズが増大しても)少数のファイルにおける送信交渉に起因する短い遅延がもたらされる。しかし、より多くのファイルを送信することによって、フォントサブセット送信が改善され得る状況が起こり得る。このようなファイルは、バイナリファイル、テキストファイル(例えば、Base64表現を含む)などを含み得る。データ変換技術を使用して、データをある形式から別の形式に変換してもよく、例えば、バイナリデータがテキスト表現に変換されてもよい。さらに、使用されるネットワークアーキテクチャに基づき、サブセットファイルは、1つ又は複数のソースから提供され得る。例えば、初期フォントサブセットファイルはフォントサービスプロバイダ、広告パブリッシャー等によって提供され得る一方、かかるファイルは、あるソース(例えば、フォントサービスプロバイダ)から、エンドユーザデバイス(例えば、タブレットコンピューティングデバイス202)にフォントサブセットを供給する前にファイルを変換する別のソース(例えば、広告パブリッシャー)に送信されてもよい。異なる伝送方式、アーキテクチャなどを使用することにより、初期及び後続フォントサブセットの伝送を最適化することができる。
データ伝送及び効率性をさらに最適化するために、他のフォーマット技法を利用することもできる。例えば、フォントサブセットにアクセスするために、変化しない(例えば、静的な)識別子を使用することができる。ある構成では、静的なユニフォームリソースロケータ(URL)を各フォントサブセット(CDN、フォントサービスプロバイダ内に格納されている)に割り当てることができる。URLの不変な性質は、さまざまな利点を提供し得る。例えば、識別子の定常的な性質は、誤った識別子が使用される可能性又は誤ったフォントサブセットが提供される可能性を低減する。通常、1つ又は複数のパラメータに基づき時間とともに変化する動的URLと比較して、静的URLは有効性を維持し、通常、最初に割り当てられたフォントサブセット(又は他のコンテンツ)を提供しながら、長期にわたって使用可能である。
イメージングデバイスへのフォントサブセットの送信を援助するために、他の技術が使用されてもよい。例えば、その全体が参照により本明細書に援用される米国特許出願第13/629,593号(“Network Based Font Management for Imaging Devices”)に記載されているように、(例えば、接続されたネットワークの)環境条件、データ伝送特性(例えば、チャネル容量など)などを(例えば、イメージングデバイス、リモートサーバなどによって)監視し、データ伝送のために使用してもよい。データ伝送を最適化するために、様々なファイルタイプ、構造なども利用され得る。例えば、バイナリデータファイル、テキストベースファイルなどが、フォントサブジェクトを送信するために使用され得る。場合によっては、バイナリフ
ァイルが送信され、イメージングデバイスにおいて受信された後、含まれるデータがテキストに変換されてもよい。他の構成では、他の形式(例えば、テキストファイル、JavaScriptファイルなど)で送信されるファイルがフォントサブセット送信のために使用されてもよい。
上述したように、次善なフォントサブセット(例えば、必要とされる文字そのもののサブセットではなく頻繁に使用されるフォントの文字のサブセット)を使用することによって、イメージングデバイスによって必要とされる前に、サブセットを準備して格納することができる(例えば、イメージング装置のブラウザキャッシュ、素早くアクセス可能なCDNのキャッシュ等)。したがって、使用前に数百又は数千ものフォントサブセットを作成して(迅速なアクセスのために)保存することができる。さらに、最も使用される可能性が高いフォントの文字を含めることによって、必要とされる各文字がイメージングデバイスに提供される初期サブセットに存在する確率が高まる。一部の構成では、初期サブセットにフォントの文字が提供された後、初期サブセットに存在しない必要なフォントの文字が動的に取得され得る。例えば、1つ又は複数のサブセットを受信して残りの文字を得るために、1つ又は複数のリクエストがイメージングデバイスによって送信され得る。状況によっては、ソフトウェアエージェントは、必要とされる追加のフォントサブセットを特定することができる。他の状況では、リクエストが必要なフォントの文字を特定し、サブセットが動的に生成され(例えば、フォントサービスプロバイダにおいて)、要求しているイメージングデバイスに送信され得る。さらに、冗長性を最小限に抑えつつ、必要に応じてフォントの文字を漸増的に得るために、両技術を別々に、協調させて、又は他の技法とともに等の態様で使用することができる。
図6を参照して、最初に送られるフォントサブセットは、アセットにおいて最も使用される可能性が高い様々な文字を含むことができる。一部の構成では、最初に送られるフォントサブセットは、含まれる文字に関して比較的基本的なものであってもよい。図示されるように、基本サブセット600は、フォントについて最も頻繁に使用される比較的少数の文字及び記号を含む。より広範なサブセットが最初に送信されてもよい。例えば、基本サブセットの文字とともに、アセットにおいてそれほど頻繁に使用されない追加文字を含む拡張フォントサブセット602が送信されてもよい。送信される初期フォントサブセットを決定する1つ又は複数の技術が使用され得る。例えば、イメージングデバイスに提供されるソフトウェアエージェント(例えば、JavaScriptコード)が、提示されるアセットをレビューして(例えば、アセットのDOMツリーを調査する)アセットによって最初に使用される(例えば、ウェブサイトの最初のウェブページ上の)文字を決定することができる。送信される可能性があるサブセットが認識されるところ、ソフトウェアエージェントは、配信される適切な基本フォントサブセット、又はより拡張されたフォントサブセットを特定することができる。様々な機構によって、ソフトウェアエージェントがそのような決定をするのを援助することができる。例えば、提示されるアセットのテキストコンテンツに基づいて1つ又は複数のフラグ(例えば、言語フラグ)が設定され、ソフトウェアエージェントは、フラグの条件に基づいて適切なフォントサブセットを特定してもよい。例えば、比較的基本的かつ静的なフォントサブセットが最初に送信され、次に本質的に静的である拡張フォントサブセットが送信されてもよい。このような基本的フォントサブセット及び拡張フォントサブセットは他の条件に依存してもよく、例えば、どの文字が基本的サブセット及び拡張サブセットに含まれるべきかの決定において、言語(例えば、英語、中国語など)がファクタとなってもよい。
相対的に準最適なフォントの文字のサブセットを送信することによってアセットの提示を補助する他の技術が使用されてもよい。例えば、最初のサブセットが提供された後に、1つ又は複数の文字の欠落が発見され得る。このようなシナリオは動的な広告において、(必要なフォントの文字がすべて存在する)1つの広告から(1つ又はいくつかのフォン
トの文字が存在しない可能性のある)別の広告に切り替わるときに生じ得る。リクエスト及びダウンロード可能な潜在的フォントサブセットが認識されるところ、イメージングデバイスのソフトウェアエージェントは、1つ又は複数の欠落文字を含む最小のサブセットを決定することを試み得る。状況によっては、ソフトウェアエージェントは、完全に異なるフォントのサブセットが最適であると判断し得る(例えば、正しいフォントで欠落している文字を含む比較的小さなサブセットが事前に準備されておらず、該当文字を含む別のフォントの特定されたサブセットがCDNノードから素早く取得することができる)。そのような場合、異なるフォントのサブセットが取得されてもよい。ソフトウェアエージェントは、ローカルに格納されたフォント及びフォントサブセットの中から探すこともできる。例えば、あるフォントの文字が最初の(または後続の)フォントサブセット内に見つからない場合、イメージングデバイスのシステムに格納された別のフォント(例えば、タブレットコンピュータデバイスのシステムメモリ内のフォールバックフォント)にアクセスして、欠落している1つ又は複数の文字を取得してもよい。したがって、ソフトウェアエージェントは、限られた数の欠落文字を取得するために異なるフォントに切り替えることが最適であると判断し、特定の文字についてこの異なるフォントを使用するためにアセットのDOMツリーを調整し得る。ローカルに存在しているフォントの使用は、アセットの様々な部分の提示のためにも利用され得る。例えば、イメージングデバイスに存在するフォールバックフォントが認識されるところ、例えば、アセットを提示するために本来企図されていた1つ又は複数の他のフォントの代わりに、ローカルフォントを使用するようにアセットを調整することができる(例えば、そのDOMツリーを操作する)。同様に、フォント又は他の条件がフォントの切り替えを起こし得り、同様に、提示の効率性が向上され得る。
適切なフォントサブセットの選択と同様に、イメージングデバイスの環境に基づき、異なる実行可能命令が選択されてもよい。例えば、イメージングデバイスによって実行されるブラウザに基づき、異なるJavaScriptが提供されてもよい。したがって、使用されるブラウザに応じて、異なるソフトウェアエージェントが提供され得る。ある構成では、複数のタイプのブラウザと動作するマルチセグメントJavaScriptが生成されてもよい(例えば、ブラウザごとにセグメント)。ブラウザタイプが知られると(例えば、ブラウザを実行するイメージングデバイスとの通信を介して)、JavaScriptの適切なセグメントを特定し、JavaScriptの残りのセグメントを除去することができる。ブラウザが必要とするJavaScriptの部分だけを選択的に提供することによって、必要なメモリを減らし、データ伝送を増やすことができる。
性能を向上させるために、1つ又は複数の他の技術を使用することもできる。例えば、パフォーマンスを最適化するために、ソフトウェアエージェントの機能が他のプロセスに分散されてもよい。ある構成では、アセット部分(例えば、ウェブサイトのページ)を監視する、適切なフォントが存在するかどうかを判断するなどの動作を実行するために、JavaScriptの一部がブラウザ(又は各ブラウザタイプ)に組み込まれ得る。この部分はむしろ静的なコア機能と考えることができ、一度提供され、必要に応じて何度も実行可能である。機能のより動的に変化する部分(例えば、時間依存性、アセット内容依存性など)は、必要に応じて提供する(例えば、ダウンロードする)ことができる。例えば、フォント自体と同様に、初期静的フォントサブセットの数は、ネットワークを介したそれらの分布とともに経時的に増加し得る(例えば、異なる広告のためのCDNノードに格納されるなど)。したがって、そのような動的に変化する情報を管理するために、1つ又は複数のファイル(例えば、JavaScriptファイル)がイメージングデバイスに送信され、フォントサブセット及び関連情報に関する適切な更新が提供され得る。このようなコア部分及び動的部分を利用するために、上記の技術を用いることができる。例えば、これらの部分、これらの部分によって使用されるデータ等にアクセスするために、静的識別子(例えば、静的URL)が使用されてもよい。
図7を参照すると、フローチャート700は、イメージングデバイスによって実行されるプロセス(例えば、図3に示されるエージェント302)の動作を表す。このような動作は、典型的には、単一のコンピューティングデバイス(例えば、タブレットコンピューティングデバイス202)によって実行されるが、複数のコンピューティングデバイスによって動作が実行されてもよい。単一のサイト(例えば、イメージングデバイスの位置)で実行されることに加えて、動作の実行が2つ以上の場所に分散されもよい。
実行される動作は、イメージングデバイスにおいて、イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表示する1つ又は複数のファイルを受信するステップ702を含み得る。少なくとも1つのファイルは、ネットワークアセットのテキストコンテンツを提示するためのデータを含む。例えば、タブレットコンピューティングデバイスが、1つ又は複数のソースからネットワークアセット(例えば、ウェブサイト、ウェブページなど)などのアセットを表すデータを受信することができる。また、動作は、ネットワークアセットの一部と、ネットワークアセットの該部分に対応するテキストコンテンツとをイメージングデバイスのディスプレイ上に提示するステップ704を含む。例えば、ウェブサイトの最初の部分(例えば、ウェブサイトのオープニングページ)のテキストコンテンツが提示され得る。さらに、動作は、ネットワークアセットの一部及び対応するテキストコンテンツが提示されている間、ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、イメージングデバイスに存在するフォントの文字を使用してディスプレイ上に提示可能かどうかを決定するための動作をイメージングデバイスにおいて実行するステップ706を含む。例えば、アセットの最初の部分が提示されている間、イメージングデバイスによって実行されるソフトウェアエージェントが、ウェブサイトの後続部分(他のウェブページ)を提示するために追加のフォントサブセットが必要かどうかを並列して判断することができる。必要なフォントサブセットに対する応答を開始できると同時に、ソフトウェアエージェントは必要なサブセットを特定することができる。
図8は、本明細書に記載される技術を実施するために使用され得る例示的なコンピュータデバイス800及び例示的なモバイルコンピュータデバイス850の例を示す。例えば、ソフトウェアエージェント302(図3に示される)の動作の一部又は全てが、コンピュータデバイス800及び/又はモバイルコンピュータデバイス850によって実行されてもよい。コンピューティングデバイス800は、例えば、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、及び他の適切なコンピュータを含む様々な形態のデジタルコンピュータを表す。コンピューティングデバイス850は、例えば、パーソナルデジタルアシスタント、タブレットコンピューティングデバイス、携帯電話、スマートフォン、及び他の同様のコンピューティングデバイスを含む、様々な形態のモバイルデバイスを表す。ここに示されるコンポーネント、それらの接続及び関係、並びにそれらの機能は単なる例に過ぎず、本文献で記載及び/又は請求される技術の実装を限定するものではない。
コンピューティングデバイス800は、プロセッサ802、メモリ804、記憶装置806、メモリ804及び高速拡張ポート810に接続する高速インターフェース808、並びに低速バス814及び記憶装置806に接続する低速インターフェース812を含む。コンポーネント802、804、806、808、810、及び812はそれぞれ、様々なバスを使用して相互接続され、共通のマザーボード上に、又は他の適切な方法で実装され得る。プロセッサ802は、コンピューティングデバイス800において実行される命令を処理することができる。命令は、例えば、高速インターフェース808に結合されたディスプレイ816を含む外部入出力装置上のGUI用のグラフィカルデータを表示するための、メモリ804又は記憶装置806に格納された命令を含む。他の実施形態では
、複数のメモリ及びタイプのメモリとともに、複数のプロセッサ及び/又は複数のバスを適宜に使用することができる。また、複数のコンピューティングデバイス800が接続され、各デバイスが必要な動作の部分を提供してもよい(例えば、サーババンク、ブレードサーバのグループ、又はマルチプロセッサシステムとして)。
メモリ804は、コンピューティングデバイス800内にデータを格納する。一実施形態では、メモリ1304は1つ又は複数の揮発性メモリユニットである。他の実施形態では、メモリ804は1つ又は複数の不揮発性メモリユニットである。また、メモリ804は、例えば、磁気ディスク又は光ディスクを含む他の形態のコンピュータ可読媒体であってもよい。メモリ804は非一時的であってもよい。
記憶装置806は、コンピューティングデバイス800のために大容量ストレージを提供することができる。一実施形態では、記憶装置806は、例えば、フロッピーディスク装置、ハードディスク装置、光ディスク装置、又はテープ装置、フラッシュメモリ又は他の同様なソリッドステートメモリ装置、又はストレージエリアネットワーク又は他の構成内の複数のデバイス等のデバイスアレイ等を含むコンピュータ可読媒体であり得り、又はかかる構成を含み得る。コンピュータプログラム製品がデータキャリアとして具現化されてもよい。また、コンピュータプログラム製品は、実行されると、例えば上記方法等の1つ又は複数の方法を実行する命令を含むことができる。データキャリアは、例えば、メモリ804、記憶装置806、プロセッサ802上のメモリなどを含む、コンピュータ又は機械可読媒体である。
高速コントローラ808は、コンピューティングデバイス800のために帯域幅を消費する(bandwidth−intensive)動作を管理し、低速コントローラ812は、帯域幅をさほど消費しない動作を管理する。このような機能の割り当ては一例に過ぎない。一実施形態では、高速コントローラ808は、メモリ804、ディスプレイ816(例えば、グラフィックプロセッサ又はアクセラレータを介して)、及び、様々な拡張カード(不図示)を受け入れることができる高速拡張ポート810に結合される。この実装では、低速コントローラ812は、記憶装置806及び低速拡張ポート814に結合される。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット、無線イーサネット)を含み得る低速拡張ポートは、例えば、キーボード、ポインティングデバイス、スキャナ、又は、例えばネットワークアダプタを介してスイッチ若しくはルータを含むネットワーキングデバイスを含む1つ又は複数の入出力デバイスに結合され得る。
コンピューティングデバイス800は、図示されるように、いくつかの異なる形態で実装することができる。例えば、標準サーバ820として実装することもできるし、そのようなサーバのグループとして実装することもできる。また、ラックサーバシステム824の一部として実装することもできる。加えて又は代わりに、例えば、ラップトップコンピュータ822を含むパーソナルコンピュータに実装することができる。一部の例では、コンピューティングデバイス800からのコンポーネントが、例えばデバイス850を含むモバイルデバイス(不図示)内の他のコンポーネントと組み合わされてもよい。このようなデバイスは、それぞれ、1つ又は複数のコンピューティングデバイス800、850を含み得り、システム全体は、互いに通信する複数のコンピューティングデバイス800、850から構成され得る。
コンピューティングデバイス850は、プロセッサ852、メモリ864、例えばディスプレイ854、通信インターフェース866、及びトランシーバ868等を含む入出力デバイスを含む。さらに、デバイス850には、追加ストレージを提供するために、例えばマイクロドライブ又は他の装置を含む記憶装置を設けることもできる。コンポーネント
850、852、864、854、866、及び868はそれぞれ、様々なバスを使用して相互接続され、コンポーネントのうちのいくつかが共通のマザーボード上に実装されたり、又は他の適切な方法で実装され得る。
プロセッサ852は、メモリ864に格納された命令を含む、コンピューティングでビアス850内の命令を実行することができる。プロセッサは、別個の複数のアナログ及びびデジタルプロセッサを含む複数のチップのチップセットとして実装することができる。プロセッサは、例えば、デバイス850の他のコンポーネントの調整のために、例えば、ユーザインターフェースの制御、デバイス850によって実行されるアプリケーション、及びデバイス850による無線通信等を提供することができる。
プロセッサ852は、制御インターフェース858、及びディスプレイ854に結合されたディスプレイインターフェース856を介してユーザと通信することができる。ディスプレイ854は、例えば、TFT LCD(Thin−Film−Transistor Liquid Crystal Display)若しくはOLED(Organic Light Emitting Diode)ディスプレイ、又は他の適切なディスプレイ技術とすることができる。ディスプレイインターフェース856は、ディスプレイ854を駆動してユーザにグラフィカルデータ及び他のデータを提示するための適切な回路を含み得る。制御インターフェース858は、ユーザからコマンドを受け取り、プロセッサ852への提出のためにそれらを変換することができる。さらに、デバイス850が他のデバイスと近距離通信できるよう、外部インターフェース862はプロセッサ842と通信することができる。外部インターフェース862は、例えば、一部の実装形態では有線通信を提供し、また、他の実装形態では無線通信を提供し得り、複数のインターフェースも使用することも可能である。
メモリ864は、コンピューティングデバイス850内にデータを格納する。メモリ864は、1つ又は複数のコンピュータ可読媒体、1つ又は複数の揮発性メモリユニット、又は1つ又は複数の不揮発性メモリユニットのうちの1つ又は複数として実装することができる。さらに、拡張メモリ874が提供され、例えば、SIMM(Single In
Line Memory Module)カードインターフェース等の拡張インターフェース872を介してデバイス850に接続され得る。このような拡張メモリ874は、デバイス850のための追加のストレージスペースを提供し、又はデバイス850のためのアプリケーション若しくは他のデータを保存し得る。具体的には、拡張メモリ874は、上述のプロセスを実行又は補完するための命令を含み得り、また、セキュアデータを含んでもよい。したがって、例えば、拡張メモリ874は、デバイス850のセキュリティモジュールとして提供することができ、デバイス850の安全な使用を可能にする命令でプログラミングされ得る。さらに、追加データとともに、セキュアアプリケーションがSIMMカードを介して提供されてもよく、例えば、SIMMカード上にハッキングできない態様で識別データが設けられてもよい。
メモリは、例えば、後述するように、フラッシュメモリ及び/又はNVRAMメモリを含むことができる。ある実施形態では、コンピュータプログラム製品がデータキャリアとして具現化されてもよい。コンピュータプログラム製品は、実行されると、例えば上記方法等の1つ又は複数の方法を実行する命令を含む。データキャリアは、例えば、メモリ864、拡張メモリ874、及び/又は、プロセッサ852上のメモリを含む、例えば、トランシーバ868又は外部インターフェース862を介して受け取り可能なコンピュータ可読媒体又は機械可読媒体である。
デバイス850は、必要に応じてデジタル信号処理回路を含み得る通信インターフェース866を介して無線で通信してもよい。通信インターフェース866は、例えば、GS
Mボイスコール、SMS、EMS、又はMMSメッセージング、CDMA、TDMA、PDC、WCDMA、CDMA2000、又はGPRSを含む様々なモード又はプロトコルの通信を提供することができる。このような通信は、例えば、無線周波数トランシーバ868を介して行うことができる。さらに、例えば、Bluetooth(登録商標)、WiFi、又は他の同様なトランシーバ(不図示)を使用する等により、短距離通信が行われ得る。さらに、GPS(グローバルポジショニングシステム)受信モジュール870は、デバイス850上で動作するアプリケーションによって適切に使用され得る、追加のナビゲーション及び位置関連無線データをデバイス850に提供することができる。カメラ、マイクロフォン、コンパス、アクセラレータ(姿勢検出用)などのセンサ及びモジュールがデバイスに含まれてもよい。
また、デバイス850は、ユーザからの発話データを受信し、それを使用可能なデジタルデータに変換することができるオーディオコーデック860を使用して、音声通信することができる。オーディオコーデック860は、同様に、例えば、デバイス850のハンドセット内のスピーカを通じて等の手段により、ユーザのために可聴音を生成することができる。このような音声は、音声電話からの音声を含むことができ、記録された音声(例えば、音声メッセージ、音楽ファイルなど)を含むことができ、また、デバイス850上で動作するアプリケーションによって生成される音声を含むことができる。
コンピューティングデバイス850は、図示されるように、いくつかの異なる形態で実装することができる。例えば、コンピュータデバイス850は携帯電話880として実施することができる。また、スマートフォン882、パーソナルデジタルアシスタント、又は他の同様のモバイルデバイスの一部として実施することもできる。
本明細書に記載されるシステム及び技術の様々な実装形態が、デジタル電子回路、集積回路、特別に設計されたASIC(application specific integrated circuits)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせとして実現され得る。これらの様々な実装形態は、記憶システム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスとデータ及び命令を送受信できるよう結合された少なくとも1つのプログラム可能なプロセッサ等のプログラム可能なシステム上で実行及び/又は解釈可能な1つ又は複数のコンピュータプログラムとしての実装を含み得る。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高水準手続き型かつ/又はオブジェクト指向プログラミング言語で、及び/又はアセンブリ/機械言語で実装され得る。本明細書で使用する機械可読媒体及びコンピュータ可読媒体という用語は、機械命令を受信する機械可読媒体を含むプログラマブルプロセッサに機械命令及び/又はデータを供給するために使用されるコンピュータプログラム製品、装置及び/又はデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。
ユーザとのインタラクションを提供するために、本明細書に記載されるシステム及び技術は、ユーザにデータを表示するための表示装置(例えば、CRT(ブラウン管)又はLCD(液晶ディスプレイ)モニタ)、並びにユーザがコンピュータに入力を提供することを可能にするキーボード及びポインティングデバイス(例えば、マウス又はトラックボール)を有するコンピュータ上に実装され得る。他の種類の装置を使用して、ユーザとのインタラクションを提供することもできる。例えば、ユーザに提供されるフィードバックは、感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)の形態であり得り、ユーザからの入力は、音響、発話、又は触覚入力を含
む形態で受け取られ得る。
本明細書に記載されるシステム及び技術は、バックエンドコンポーネント(例えば、データサーバとして)を含むコンピューティングシステム、又はミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むコンピューティングシステム、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、ユーザが本明細書に記載されるシステム及び技術の実装形態とインタラクトすることを可能にするユーザーインターフェイス又はウェブブラウザを有するクライアントコンピュータ)、又はかかるバックエンド、ミドルウェア、又はフロントエンドコンポーネントの組み合わせを含むコンピュータシステム内に実装されてもよい。システムのコンポーネントは、デジタルデータ通信のある形態又は媒体(例えば、通信ネットワーク)によって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及びインターネットが含まれる。
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般的に互いに離れて位置しており、典型的には通信ネットワークを介してインタラクトする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
一部の実施態様では、本明細書に記載されるエンジンは、単一の又は組み合わされたエンジンに分離され、組み合わされ、又は組み込まれ得る。図示されるエンジンは、本明細書に記載されるシステムを、図示されるソフトウェアアーキテクチャに限定するものではない。
多数の実施形態が記載されてきた。しかし、本明細書に記載されるプロセス及び技術の趣旨及び範囲から逸脱することなく、様々な変更を行うことができることが理解されよう。さらに、図示される論理フローは、所望の結果を達成するために示された特定の順番又は逐次的な順番を必要としない。さらに、記載されるフローとは異なるステップが設けられたり、ステップが排除されてもよく、また、記載されたシステムに他のコンポーネントを追加したり、コンポーネントを排除したりすることも可能である。したがって、添付の特許請求の範囲には他の実施形態が含まれる。

Claims (66)

  1. コンピューティングデバイス実装方法であって、
    イメージングデバイスにおいて、前記イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ又は複数のファイルを受信するステップであって、前記ファイルのうちの少なくとも1つは、前記ネットワークアセットのテキストコンテンツを提示するためのデータを含む、ステップと、
    前記ネットワークアセットの一部と、前記ネットワークアセットの前記一部に対応するテキストコンテンツとを前記イメージングデバイスの前記ディスプレイ上に提示するステップと、
    前記ネットワークアセットの前記一部及び前記対応するテキストコンテンツが提示されている間、前記ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、前記イメージングデバイスに存在するフォントの文字を使用して前記ディスプレイ上に提示可能かどうかを決定するための動作を前記イメージングデバイスにおいて実行するステップとを含む、方法。
  2. 前記ファイルのうちの少なくとも1つは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するためのフォントの文字のセットを表すデータを含む、請求項1に記載のコンピューティングデバイス実装方法。
  3. 前記ファイル内の前記フォントの文字のセットは、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項2に記載のコンピューティングデバイス実装方法。
  4. 前記フォントの文字のセット及び前記フォントの文字のセット内に含まれる各フォントの文字は、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項1に記載のコンピューティングデバイス実装方法。
  5. 前記ネットワークアセットの少なくとも1つの他の部分を提示するための動作を実行するステップは、前記イメージングデバイスにおいて1つ又は複数の他のファイルを受信するステップを含み、前記他のファイルのうちの少なくとも1つは、前記ネットワークアセットの前記他の部分のテキストコンテンツを提示するための他のフォントの文字のセットを表すデータを含む、請求項1に記載のコンピューティングデバイス実装方法。
  6. 前記イメージングデバイスにおいて前記1つ又は複数の他のファイルが受信される前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる他のフォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項5に記載のコンピューティングデバイス実装方法。
  7. 前記ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツを、前記イメージングデバイスに存在するフォントの文字を使用して前記ディスプレイ上に提示することができないと判断された場合、他のフォントの文字のセットに対するリクエストを開始するための動作が実行され、前記他のフォントの文字のセットがリクエストされる前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる各フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項1に記載のコンピューティングデバイス実装方法。
  8. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォ
    ントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字を含む、請求項2に記載のコンピューティングデバイス実装方法。
  9. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、該フォントの所定の頻繁に使用される文字を含む、請求項2に記載のコンピューティングデバイス実装方法。
  10. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字、及び該フォントの所定の頻繁に使用される文字を含む、請求項2に記載のコンピューティングデバイス実装方法。
  11. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、静的URLによって表される、請求項2に記載のコンピューティングデバイス実装方法。
  12. 前記ネットワークアセットを表す前記1つ又は複数のファイルは、前記イメージングデバイスに存在する前記フォントの文字のセットに基づき、送信のために選択される、請求項1に記載のコンピューティングデバイス実装方法。
  13. 前記ネットワークアセットを表す前記1つ又は複数のファイルは、コンテンツ配信ネットワークコンポーネントによって提供される、請求項1に記載のコンピューティングデバイス実装方法。
  14. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、フォントサービスプロバイダから提供される、請求項2に記載のコンピューティングデバイス実装方法。
  15. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、広告パブリッシャーから提供される、請求項2に記載のコンピューティングデバイス実装方法。
  16. ネットワークアセットを表す前記1つ又は複数のファイルを受信するステップは、フォントサービスプロバイダ及び広告パブリッシャーにおいて実行される動作に基づく、請求項1に記載のコンピューティングデバイス実装方法。
  17. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、データ伝送時間を低減するためにBase64を使用して符号化される、請求項2に記載のコンピューティングデバイス実装方法。
  18. 前記ソフトウェアエージェントは、静的機能及び動的機能を提供するための部分を含む、請求項3に記載のコンピューティングデバイス実装方法。
  19. 前記ネットワークアセットの一部は広告を含む、請求項1に記載のコンピューティングデバイス実装方法。
  20. 前記ソフトウェアエージェントは、フォントサービスプロバイダ、広告パブリッシャー、又は前記ネットワークアセットを表す前記1つ又は複数のファイルによって前記イメージングデバイスに提供される、請求項3に記載のコンピューティングデバイス実装方法。
  21. 前記ネットワークアセットの前記一部を前記イメージングデバイスの前記ディスプレイ上に提示するステップは、前記ネットワークアセットの前記一部に対応する前記テキストコンテンツを提示するのに適切なフォントの文字が前記イメージングデバイスに存在するまで、提示を遅延するステップを含む、請求項1に記載のコンピューティングデバイス実装方法。
  22. コンピューティングデバイスを含むシステムであって、
    前記コンピューティングデバイスは、
    命令を記憶するように構成されたメモリと、
    前記命令を実行して動作を実行するプロセッサであって、前記動作は、
    イメージングデバイスにおいて、前記イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ又は複数のファイルを受信するステップであって、前記ファイルのうちの少なくとも1つは、前記ネットワークアセットのテキストコンテンツを提示するためのデータを含む、ステップと、
    前記ネットワークアセットの一部と、前記ネットワークアセットの前記一部に対応するテキストコンテンツとを前記イメージングデバイスの前記ディスプレイ上に提示するステップと、
    前記ネットワークアセットの前記一部及び前記対応するテキストコンテンツが提示されている間、前記ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、前記イメージングデバイスに存在するフォントの文字を使用して前記ディスプレイ上に提示可能かどうかを決定するための動作を前記イメージングデバイスにおいて実行するステップとを含む、プロセッサとを含むシステム。
  23. 前記ファイルのうちの少なくとも1つは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するためのフォントの文字のセットを表すデータを含む、請求項22に記載のシステム。
  24. 前記ファイル内の前記フォントの文字のセットは、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項23に記載のシステム。
  25. 前記フォントの文字のセット及び前記フォントの文字のセット内に含まれる各フォントの文字は、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項22に記載のシステム。
  26. 前記ネットワークアセットの少なくとも1つの他の部分を提示するための動作を実行するステップは、前記イメージングデバイスにおいて1つ又は複数の他のファイルを受信するステップを含み、前記他のファイルのうちの少なくとも1つは、前記ネットワークアセットの前記他の部分のテキストコンテンツを提示するための別のフォントの文字のセットを表すデータを含む、請求項22に記載のシステム。
  27. 前記イメージングデバイスにおいて前記1つ又は複数の他のファイルが受信される前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる他のフォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項26に記載のシステム。
  28. 前記ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツを、前記イメージングデバイスに存在するフォントの文字を使用して前記ディスプレイ上に提示することができないと判断された場合、他のフォントの文字のセットに対するリクエストを
    開始するための動作が実行され、前記他のフォントの文字のセットがリクエストされる前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる各フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項22に記載のシステム。
  29. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字を含む、請求項23に記載のシステム。
  30. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、該フォントの所定の頻繁に使用される文字を含む、請求項23に記載のシステム。
  31. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字、及び該フォントの所定の頻繁に使用される文字を含む、請求項23に記載のシステム。
  32. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、静的URLによって表される、請求項23に記載のシステム。
  33. 前記ネットワークアセットを表す前記1つ又は複数のファイルは、前記イメージングデバイスに存在する前記フォントの文字のセットに基づき、送信のために選択される、請求項22に記載のシステム。
  34. 前記ネットワークアセットを表す前記1つ又は複数のファイルは、コンテンツ配信ネットワークコンポーネントによって提供される、請求項22に記載のシステム。
  35. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、フォントサービスプロバイダから提供される、請求項23に記載のシステム。
  36. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、広告パブリッシャーから提供される、請求項23に記載のシステム。
  37. ネットワークアセットを表す前記1つ又は複数のファイルを受信するステップは、フォントサービスプロバイダ及び広告パブリッシャーにおいて実行される動作に基づく、請求項22に記載のシステム。
  38. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、データ伝送時間を低減するためにBase64を使用して符号化される、請求項23に記載のシステム。
  39. 前記ソフトウェアエージェントは、静的機能及び動的機能を提供するための部分を含む、請求項24に記載のシステム。
  40. 前記ネットワークアセットの一部は広告を含む、請求項22に記載のシステム。
  41. 前記ソフトウェアエージェントは、フォントサービスプロバイダ、広告パブリッシャー
    、又は前記ネットワークアセットを表す前記1つ又は複数のファイルによって前記イメージングデバイスに提供される、請求項24に記載のシステム。
  42. 前記ネットワークアセットの前記一部を前記イメージングデバイスの前記ディスプレイ上に提示するステップは、前記ネットワークアセットの前記一部に対応する前記テキストコンテンツを提示するのに適切なフォントの文字が前記イメージングデバイスに存在するまで、提示を遅延するステップを含む、請求項22に記載のシステム。
  43. 処理装置によって実行可能な命令を格納する1つ又は複数のコンピュータ可読媒体であって、前記命令が実行されると、前記処理装置は、
    イメージングデバイスにおいて、前記イメージングデバイスのディスプレイ上に提示可能なネットワークアセットを表す1つ又は複数のファイルを受信するステップであって、前記ファイルのうちの少なくとも1つは、前記ネットワークアセットのテキストコンテンツを提示するためのデータを含む、ステップと、
    前記ネットワークアセットの一部と、前記ネットワークアセットの前記一部に対応するテキストコンテンツとを前記イメージングデバイスの前記ディスプレイ上に提示するステップと、
    前記ネットワークアセットの前記一部及び前記対応するテキストコンテンツが提示されている間、前記ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツが、前記イメージングデバイスに存在するフォントの文字を使用して前記ディスプレイ上に提示可能かどうかを決定するための動作を前記イメージングデバイスにおいて実行するステップとを含む動作を実行する、コンピュータ可読媒体。
  44. 前記ファイルのうちの少なくとも1つは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するためのフォントの文字のセットを表すデータを含む、請求項43に記載のコンピュータ可読媒体。
  45. 前記ファイル内の前記フォントの文字のセットは、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項44に記載のコンピュータ可読媒体。
  46. 前記フォントの文字のセット及び前記フォントの文字のセット内に含まれる各フォントの文字は、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項43に記載のコンピュータ可読媒体。
  47. 前記ネットワークアセットの少なくとも1つの他の部分を提示するための動作を実行するステップは、前記イメージングデバイスにおいて1つ又は複数の他のファイルを受信するステップを含み、前記他のファイルのうちの少なくとも1つは、前記ネットワークアセットの前記他の部分のテキストコンテンツを提示するための別のフォントの文字のセットを表すデータを含む、請求項44に記載のコンピュータ可読媒体。
  48. 前記イメージングデバイスにおいて前記1つ又は複数の他のファイルが受信される前に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる他のフォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項47に記載のコンピュータ可読媒体。
  49. 前記ネットワークアセットの少なくとも1つの他の部分のテキストコンテンツを、前記イメージングデバイスに存在するフォントの文字を使用して前記ディスプレイ上に提示することができないと判断された場合、他のフォントの文字のセットに対するリクエストを開始するための動作が実行され、前記他のフォントの文字のセットがリクエストされる前
    に、前記他のフォントの文字のセット及び前記他のフォントの文字のセット内に含まれる各フォントの文字が、前記イメージングデバイスによって実行されるソフトウェアエージェントによって特定可能である、請求項43に記載のコンピュータ可読媒体。
  50. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字を含む、請求項44に記載のコンピュータ可読媒体。
  51. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、該フォントの所定の頻繁に使用される文字を含む、請求項44に記載のコンピュータ可読媒体。
  52. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、前記ネットワークアセットの前記一部のテキストコンテンツを提示するために必要な各フォントの文字、及び該フォントの所定の頻繁に使用される文字を含む、請求項44に記載のコンピュータ可読媒体。
  53. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、静的URLによって表される、請求項44に記載のコンピュータ可読媒体。
  54. 前記ネットワークアセットを表す前記1つ又は複数のファイルは、前記イメージングデバイスに存在する前記フォントの文字のセットに基づき、送信のために選択される、請求項43に記載のコンピュータ可読媒体。
  55. 前記ネットワークアセットを表す前記1つ又は複数のファイルは、コンテンツ配信ネットワークコンポーネントによって提供される、請求項43に記載のコンピュータ可読媒体。
  56. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、フォントサービスプロバイダから提供される、請求項44に記載のコンピュータ可読媒体。
  57. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するフォントのセットを表す前記データは、広告パブリッシャーから提供される、請求項44に記載のコンピュータ可読媒体。
  58. ネットワークアセットを表す前記1つ又は複数のファイルを受信するステップは、フォントサービスプロバイダ及び広告パブリッシャーにおいて実行される動作に基づく、請求項43に記載のコンピュータ可読媒体。
  59. 前記ネットワークアセットの前記一部のテキストコンテンツを提示するための前記フォントの文字のセットは、データ伝送時間を低減するためにBase64を使用して符号化される、請求項44に記載のコンピュータ可読媒体。
  60. 前記ソフトウェアエージェントは、静的機能及び動的機能を提供するための部分を含む、請求項45に記載のコンピュータ可読媒体。
  61. 前記ネットワークアセットの一部は広告を含む、請求項43に記載のコンピュータ可読
    媒体。
  62. 前記ソフトウェアエージェントは、フォントサービスプロバイダ、広告パブリッシャー、又は前記ネットワークアセットを表す前記1つ又は複数のファイルによって前記イメージングデバイスに提供される、請求項45に記載のコンピュータ可読媒体。
  63. 前記ネットワークアセットの前記一部を前記イメージングデバイスの前記ディスプレイ上に提示するステップは、前記ネットワークアセットの前記一部に対応する前記テキストコンテンツを提示するのに適切なフォントの文字が前記イメージングデバイスに存在するまで、提示を遅延するステップを含む、請求項43に記載のコンピュータ可読媒体。
  64. 前記ソフトウェアエージェントは、所定の場所のための静的識別子によって取得可能である、請求項3に記載のコンピューティングデバイス実装方法。
  65. 前記ソフトウェアエージェントは、所定の場所のための静的識別子によって取得可能である、請求項24に記載のシステム。
  66. 前記ソフトウェアエージェントは、所定の場所のための静的識別子によって取得可能である、請求項45に記載のコンピュータ可読媒体。
JP2017532904A 2014-12-17 2015-12-16 ネットワークベース静的フォントサブセット管理 Pending JP2018508059A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462093139P 2014-12-17 2014-12-17
US62/093,139 2014-12-17
US201462094632P 2014-12-19 2014-12-19
US62/094,632 2014-12-19
US14/601,763 2015-01-21
US14/601,763 US20160182606A1 (en) 2014-12-17 2015-01-21 Network Based Static Font Subset Management
PCT/US2015/066145 WO2016100541A1 (en) 2014-12-17 2015-12-16 Network based static font subset management

Publications (1)

Publication Number Publication Date
JP2018508059A true JP2018508059A (ja) 2018-03-22

Family

ID=56127553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017532904A Pending JP2018508059A (ja) 2014-12-17 2015-12-16 ネットワークベース静的フォントサブセット管理

Country Status (4)

Country Link
US (1) US20160182606A1 (ja)
EP (1) EP3234803A4 (ja)
JP (1) JP2018508059A (ja)
WO (1) WO2016100541A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615709B2 (en) 2010-04-29 2013-12-24 Monotype Imaging Inc. Initiating font subsets
US20130215126A1 (en) * 2012-02-17 2013-08-22 Monotype Imaging Inc. Managing Font Distribution
US9817615B2 (en) 2012-12-03 2017-11-14 Monotype Imaging Inc. Network based font management for imaging devices
US9317777B2 (en) 2013-10-04 2016-04-19 Monotype Imaging Inc. Analyzing font similarity for presentation
US9998477B2 (en) 2015-03-31 2018-06-12 Comcast Cable Communications, Llc Digital content access control
US10115215B2 (en) 2015-04-17 2018-10-30 Monotype Imaging Inc. Pairing fonts for presentation
US11537262B1 (en) 2015-07-21 2022-12-27 Monotype Imaging Inc. Using attributes for font recommendations
US11334750B2 (en) 2017-09-07 2022-05-17 Monotype Imaging Inc. Using attributes for predicting imagery performance
US10909429B2 (en) 2017-09-27 2021-02-02 Monotype Imaging Inc. Using attributes for identifying imagery for selection
WO2019089578A1 (en) 2017-10-30 2019-05-09 Monotype Imaging Inc. Font identification from imagery
US11704380B1 (en) * 2020-06-17 2023-07-18 Amazon Technologies, Inc. Supply of image assets for presentation at a mobile device
US11977830B2 (en) * 2022-09-13 2024-05-07 International Business Machines Corporation Demand-based deployment of font server to an edge device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012071A (en) * 1996-01-29 2000-01-04 Futuretense, Inc. Distributed electronic publishing system
US6191780B1 (en) * 1998-03-25 2001-02-20 Arachnid, Inc. Customizable multimedia segment structures
US6313920B1 (en) * 1998-08-17 2001-11-06 Microsoft Corporation System and method for remote printing using incremental font subsetting
US20080086694A1 (en) * 2006-09-11 2008-04-10 Rockwell Automation Technologies, Inc. Multiple language development environment using shared resources
JP2008165264A (ja) * 2006-12-26 2008-07-17 Dynacomware Taiwan Inc ネットワークを利用して多様なフォントを用いたアジアWebページ文書を編集するためのシステム及び方法
US8646548B2 (en) * 2008-09-05 2014-02-11 Thrubit, Llc Apparatus and system to allow tool passage ahead of a bit
US8464318B1 (en) * 2008-11-24 2013-06-11 Renen Hallak System and method for protecting web clients and web-based applications
US8856647B2 (en) * 2009-02-20 2014-10-07 Microsoft Corporation Font handling for viewing documents on the web
US20100231598A1 (en) * 2009-03-10 2010-09-16 Google Inc. Serving Font Glyphs
US8494287B2 (en) * 2010-02-02 2013-07-23 Oracle International Corporation Character identification through glyph data matching
US8683006B2 (en) * 2010-07-17 2014-03-25 Adobe Systems Incorporated Method and systems for serving fonts during web browsing sessions
US20120066590A1 (en) * 2010-09-10 2012-03-15 Jeffrey Harris Systems and Methods for Enhanced Font Management
US9817615B2 (en) * 2012-12-03 2017-11-14 Monotype Imaging Inc. Network based font management for imaging devices

Also Published As

Publication number Publication date
US20160182606A1 (en) 2016-06-23
WO2016100541A1 (en) 2016-06-23
EP3234803A4 (en) 2018-08-29
EP3234803A1 (en) 2017-10-25

Similar Documents

Publication Publication Date Title
JP2018508059A (ja) ネットワークベース静的フォントサブセット管理
US10924574B2 (en) Systems and methods for managing loading priority or sequencing of fragments of a web object
US9817615B2 (en) Network based font management for imaging devices
JP6097214B2 (ja) フォントサブセットの開始
EP2849086A2 (en) Font management for editing electronic documents
US9846649B1 (en) Providing files with cacheable portions
US11233841B2 (en) Systems and methods for configuration-based optimization by an intermediary
US20140047329A1 (en) Network Based Font Subset Management
US20210141585A1 (en) Computerized system and method for generating and dynamically updating a dashboard of multiple processes and operations across platforms
US20140136957A1 (en) Supporting Scalable Fonts
US9569865B2 (en) Supporting color fonts
US9275018B2 (en) Techniques for analyzing web pages to determine font subsets
TW201539322A (zh) 自客戶側應用程式之傳送資料壓縮序列化
US9706006B2 (en) System and method of context aware adaption of content for a mobile device
US20140281916A1 (en) Supporting Font Character Kerning
US20170147543A1 (en) Enabling legacy web applications for mobile devices
US10261979B2 (en) Method and apparatus for rendering a screen-representation of an electronic document
US10769351B2 (en) Rendering based on a document object model
US9497251B2 (en) Serving of web pages according to web site launch times
US12039220B2 (en) Computerized system and method for generating and dynamically updating a dashboard of multiple processes and operations across platforms
KR20130060612A (ko) 모바일 컨텐츠 파일 생성을 위한 언어 표현 방법 및 그 기록매체, 모바일 컨텐츠 파일 관리방법 및 그 기록매체, 모바일 컨텐츠 서버, 모바일 단말