JP2014179081A - フォント配信サービス - Google Patents

フォント配信サービス Download PDF

Info

Publication number
JP2014179081A
JP2014179081A JP2014047632A JP2014047632A JP2014179081A JP 2014179081 A JP2014179081 A JP 2014179081A JP 2014047632 A JP2014047632 A JP 2014047632A JP 2014047632 A JP2014047632 A JP 2014047632A JP 2014179081 A JP2014179081 A JP 2014179081A
Authority
JP
Japan
Prior art keywords
font
application
font file
file
service
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
JP2014047632A
Other languages
English (en)
Inventor
E Schwanitz William
イー. シュワニツ,ウィリアム
j russell Steven
ジェイ. ラッセル,スティーブン
R Slater Chadlee
アール. スレイター,チャドリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Celartem Inc
Original Assignee
Celartem Inc
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 Celartem Inc filed Critical Celartem Inc
Publication of JP2014179081A publication Critical patent/JP2014179081A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability

Abstract

【課題】多様なフォント書体を使用してユーザインタフェースおよびコンテンツを設計する手段を開発者に提供するフォントサービスおよびソフトウェア開発キット(SDK)のための方法、システム、およびアーキテクチャ。
【解決手段】SDKは必要に応じてフォントサービスからフォントをダウンロードして、ソフトウェアアプリケーションのユーザインタフェースまたはアプリケーション内のテキストコンテンツで表現されるようにフォントをアクティブ化する。フォントライブラリに配置されるフォントファイルにアクセスするためのクライアント機器についてのユーザアカウント情報または他のデータを包含するサブスクリプションサービスが提供され、対象アプリケーションが機能しているオペレーティングシステム、および/または、対象アプリケーションが機能しているクライアント機器のスクリーン解像度に従い、一つ以上のフォントファイルを最適化する。
【選択図】図2

Description

(関連出願の相互参照)
本出願は、「フォント配信サービス」の名称で2013年3月13日に出願された米国特許出願番号第13/798,498号の優先権を主張し、同出願はその全体が参照により援用される。
本開示の各態様は、アプリケーションでの使用のため一つ以上のフォントを配信することに関連する。例えば、本開示のいくつかの態様は、ソフトウェアアプリケーションのための様々なフォント書体を配信するのに使用されるフォントサービスおよびソフトウェア開発キットに関連する。
デスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット、携帯電話、その他にインストールされるオペレーティングシステムは、プリロードされた限定数のシステムフォントを包含している。ゆえに、これらのオペレーティングシステムで最終的に使用されるアプリケーションの開発者は、アプリケーション内で表現されるユーザインタフェースおよび/または他のテキストコンテンツをコーディングする時に選択するフォントを限定数のみ有する。これらの開発者が選択しうるフォントの数は、アプリケーションが最終的にモバイル機器にインストールされる時には特に制限される。すなわち、これらのモバイル機器での記憶容量はデスクトップ型コンピュータなどと比較してさらに制限されることがあるため、これらの機器は、開発者が選択するためにインストールされるシステムフォントを、さらに制限された数だけ有するのである。
したがって、最終的にモバイル機器にインストールされるアプリケーションに関しては特に、アプリケーションで使用されうる拡張フォントオプションをソフトウェア開発者その他に提供する必要性が残っている。さらに、これらの配信フォントファイルを送信、記憶、アクティブ化するのに必要な帯域幅および/または記憶容量を減少させるため、対象機器にしたがって配信フォントファイルを最適化する必要性が残っている。
以下は、開示のいくつかの態様の基本的な理解を与えるための簡略的な要約を提示する。要約は、開示の広範囲な概要ではない。主要または重要な開示の要素を特定することも、開示の範囲を定めることも意図されていない。以下の要約は、下の説明の前置きとして開示のいくつかの概念を単純な形で提示するに過ぎない。
開示の各態様は、多様なフォント書体を使用してユーザインタフェースおよびコンテンツを設計する手段を開発者その他に提供するフォントサービスおよびソフトウェア開発キット(SDK)のための方法、システム、およびアーキテクチャに関連する。いくつかの実施形態において、SDKは、開発者のアプリケーションでの一つ以上のフォント書体の使用を可能にする。例えば、アプリケーションが起動される時に、SDK(開発者のアプリケーションのコードに含まれる)は、リクエストされたフォントファイルを必要に応じてフォントサービスからダウンロードして、アプリケーション内のユーザインタフェースまたは他のテキストコンテンツがリクエストされたフォントで表現されるようにソフトウェアアプリケーションでこのフォントをアクティブ化する。
別の態様によれば、フォントサービスにサブスクリプションサービスが用意されうる。サブスクリプションサービスは、フォントライブラリに配置された一つ以上のフォントファイルへ1台以上のクライアント機器がアクセスするための許可に関係するアカウント情報または他のデータを包含しうる。いくつかの実施形態において、サブスクリプションサービスは、アプリケーション開発者とフォントサービスとの間のライセンス合意に関する情報を包含する。したがって、いくつかの実施形態では、フォントファイルがクライアント機器へ転送される前に対象アプリケーションの許可(またはその欠如)を判断するため、サブスクリプション情報が参照されうる。
また別の態様によれば、対象アプリケーションが機能しているオペレーティングシステム、および/または対象クライアント機器のディスプレイのスクリーン解像度について、一つ以上のフォントファイルが最適化されうる。フォントファイルの最適化は、フォントファイルを送信するのに必要とされる帯域幅を減少する、フォントファイルを記憶するのに必要とされる局所記憶容量を縮小する、および/またはフォントファイルを使用してテキストコンテンツを表現するのに必要とされる時間を短縮するため、フォントファイルのサイズを縮小することを包含しうる。いくつかの実施形態において、最適化は、オペレーティングシステムおよび/または対象クライアント機器により必要とされないフォントファイルのフォントヒンティング、オープンタイプ特徴、および/または他の属性を削除することを包含しうる。
本発明およびその長所のより完全な理解は、同様の参照番号が同様の特徴を指す添付図面を検討する際に以下の説明を参照することによって得られる。
本開示の一つ以上の態様が実行されうるコンピュータシステムおよび環境の例を図示する。 本開示の一つ以上の態様によるモバイル機器およびフォントサービスの概略図である。 本開示の一つ以上の態様を利用するアプリケーションを起動する方法を示す流れ図である。 本開示の一つ以上の態様による、図3の起動アプリケーションにより使用されるフォントファイルを最適化する方法を示す流れ図である。
開示の各態様は、クライアント機器で機能するアプリケーションにおいてユーザインタフェースおよび/または他の表現テキストコンテンツで最終的に使用される多数のフォントをソフトウェア開発者その他に提供するためのシステム、装置、方法、およびコンピュータ読取可能媒体に関連する。本書で使用されるフォントは、書体の文字の集合体を指し、いくつかの実施形態ではこの特定の書体のために規定されたすべての文字の集合を指しうる。フォントは、オペレーティングシステムにより処理されてアプリケーションで表現されるフォントファイルとして提供されうる。フォントファイルはさらに、ラスタ化グリッドと一致するようにアウトラインフォントの表示を調節するためのオペレーティングシステムへの数学的命令を包含するフォントヒンティング(インストラクティングなど)を包含する。いくつかの実施形態(クライアント機器のディスプレイが低スクリーン解像度を包含する実施形態など)では、フォントヒンティングは明瞭で読み易いテキストを作成するのに重要でありうる。フォントファイルはさらに、当業者には容易に理解されるオープンタイプ特徴を包含しうる。
図1は、開示のいくつかの態様によるアプリケーションにおいてユーザインタフェースまたは他のテキストコンテンツでテキストを表現するためフォントファイルが送信および使用されうるネットワーク環境を図示する。ネットワーク100は、クライアント機器103を含む様々な機器とネットワークサーバ105との間に通信を提供するように構成されうる。通信は、インターネットプロトコル(IP)、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、その他を含む一つ以上の通信プロトコルに適合するとよい。機器103は、パーソナルコンピュータ(PC)103aなどの固定機器とともに、携帯情報端末(PDA)103b、携帯電話103c、ラップトップ型コンピュータ103d、およびタブレット103eなどのモバイル通信機器を含む。ネットワークサーバ105は、ウェブページ、音楽コンテンツ、映像コンテンツ、アプリケーション、その他を含む様々なタイプの情報を記憶および提供するように構成されうる。一つの構成において、ネットワークサーバ105aは一つ以上のフォントサービスを配給するように構成されうる。
一つ以上の態様によれば、フォントサービスおよび/またはネットワークサーバ105bはフォントファイルを記憶するように構成されうる。フォントファイルは様々なフォーマットに従って作成され、当業者には容易に理解されるように様々な命令(フォントヒンティングなど)と属性(オープンタイプ特徴など)とを包含する。したがって、多数の機器(クライアント機器103a〜103eなど)において多数のプラットフォームで単一のフォントファイルが使用されて、各機器が、提供されるフォントヒンティング、オープンタイプ特徴、および/または他の属性を使用して、明瞭で読み易いテキストを対象アプリケーションで表現するとよい。
同様に、クライアント機器103は、最終的にアプリケーション内で使用されてテキストコンテンツを表現する複数のシステムフォントを包含しうる。これらのシステムフォントは、クライアント機器103で機能するアプリケーションが一つ以上のシステムフォントを使用してテキストコンテンツを表現するように、クライアント機器103で大域的アクセスが可能であるとよい。例えば、ソフトウェア開発者その他は、アプリケーションを開発する際に、テキストコンテンツを表示する時にはこれらのシステムフォントのうち一つ以上を参照するコードを含み、対応のアプリケーションは、起動時に、クライアント機器103において、コード化システムフォントを包含するフォントファイルにアクセスしうる。このような例では、アプリケーションのテキストコンテンツが、こうしてこのシステムフォントでディスプレイに表現されるだろう。しかし、ソフトウェア開発者その他が、提供されるシステムフォントの一つ以外のフォントでテキストコンテンツを表現することを希望する場合には、アプリケーションにフォントファイルを提供するか、クライアント機器103で追加フォントファイルをダウンロードするか他の方法でインストールするようにエンドユーザに要求するであろう。例えば、ソフトウェア開発者が提供システムフォントの一つ以外のフォントでテキストコンテンツを表現したいが、プリロードされた追加フォントファイルをクライアント機器103が有していない場合には、テキストコンテンツが最終的に提供システムフォント(デフォルトフォントなど)の一つで表現されるか、テキストコンテンツを表現する前に追加フォントファイルをダウンロードすることなどをクライアント機器103が要求される。
開示の一つ以上の態様によれば、デフォルトシステムフォントとして提供されない一つ以上のフォントをソフトウェア開発者その他が使用してテキストコンテンツをアプリケーションで表現できるように、フォントサービスが提供される。例えば、いくつかの実施形態において、ソフトウェア開発者は、テキストコンテンツを表現する時に使用を希望するフォントを、クライアント機器103でプリロードされないフォントを包含するデータベースから選択し、このフォントをフォントサービスから「レンタル」する。このような実施形態では、テキストコンテンツをデフォルトシステムフォント以外のフォントで表現するため、エンドユーザが多数の追加フォントファイルを購入する、および/またはこれをクライアント機器103にインストールすることを必要とせずに、このフォントサービスは、特定アプリケーションのみによって使用されうる(例えばアプリケーションによりレンタルされる)、システムフォントとして含まれていない所望のフォントを開発者がコード化することを可能にする。
図2は、開示の一つ以上の態様による、フォントサービス(一例としてはフォントレンタルサービス)との通信状態にあるモバイル機器201(一例としてはクライアント機器103)の概略図である。いくつかの実施形態において、フォントサービス203は、ユーザアカウントを準備し、特権アカウント情報をソフトウェア開発キット(SDK)211へ提供し、物理フォントファイルを配給し、フォント配信の前にフォントを最適化し、SDK211によりフォントファイルへの特権アクセスを提供する。モバイル機器201は当該技術で周知のいかなるモバイル機器でもよく、いくつかの実施形態では、PDA103b、携帯電話103c、ラップトップ型コンピュータ103d、またはタブレット103eでありうる。さらに、モバイル機器201は、当該技術で周知の方法(無線、セルラー等)を使用してフォントサービス203との通信状態にあるとよく、いくつかの実施形態では、ネットワーク100を介した通信状態でありうる。モバイル機器201は、オペレーティングシステム205、システムフォント207、一つ以上のアプリケーション209、およびディスプレイ217を包含しうる。アプリケーション209は、何らかのプログラム、ウィジェット、ブラウザ、ソフトウェア等でよく、そのコードがモバイル機器201に記憶され、オペレーティングシステム205により実行されるとディスプレイ217に表示される。いくつかの実施形態において、アプリケーション209はユーザインタフェースおよび/または他のテキストコンテンツを包含しうる。このテキストコンテンツが最終的にディスプレイ217で表現される時には、上記のようにコンテンツが一つ以上のシステムフォント207で表示されうる。これらのシステムフォント207は、モバイル機器201のメモリまたは他の記憶スペースで一つ以上のフォントファイルとして記憶される一つ以上のフォントを包含し、アプリケーションによる大域的な使用が可能である。ゆえに、利用可能なシステムフォント207の数は、モバイル機器201のスペース制約、許諾の制約、および/または他の制限ゆえに、固有の制限を受けうる。
開示のいくつかの実施形態によれば、モバイル機器201はさらに、アプリケーション209に内含されて(ソフトウェア開発者その他によりアプリケーション209のコード内にプログラムされて)、追加フォント(システムフォント207および/またはモバイル機器201で大域的に利用可能な他のフォントに追加されるフォントなど)のレンタルを補助するのに使用されうるSDK211を包含しうる。本書で使用される際のSDK211は、公開されてサードパーティのソフトウェア開発者などに利用可能であるフォントサービス203とのインタフェースに使用されるプログラミングインタフェース、エグザンプル、ドキュメンテーション、その他の集合体を広く指す。
モバイル機器201は、アプリケーション209での使用のためレンタルされたフォントを局所的に記憶するのに使用されるサンドボックス215およびフォント記憶手段213も包含する。本書で使用される際に、サンドボックス215は、アプリケーション209などの作動アプリケーションをモバイル機器201で機能する他のアプリケーションと分離するのに使用されるセキュリティ機構を指す。サンドボックス215は、ディスクおよびメモリのスクラッチスペースなど、ゲストプログラムが機能するための、厳密に管理されたリソース集合を提供しうる。サンドボックス215は、ネットワークアクセス、ホストシステムの点検能力、または入力機器からの読取能力などを可能にしないか、著しく制限しうる。ゆえに、サンドボックス215は仮想化の特定例として当業者には理解されうる。
本発明の一つ以上の態様において、オペレーティングシステム205は、サンドボックス215のアプリケーション209および/またはアプリケーション209の特定コンポーネントを作動させ、こうして、一つ以上のアプリケーション209のリソースへの無許可アクセスを防止するため(例えば、フォント記憶手段213に記憶されたレンタルフォントへ他のアプリケーションがアクセスするのを防止するため)アプリケーション209を隔離する。例えば、アプリケーション209による使用のためにダウンロードされたフォントは、モバイル機器201で機能する他のアプリケーションによるレンタルフォントへのアクセスを防止するようにサンドボックス215に記憶(例えば、サンドボックス215に設けられたフォント記憶手段213に記憶)されうる。したがって、フォントサービス203から取得された各フォントはこうして、モバイル機器201でのアプリケーションによる使用のため大域的な利用が可能であるというよりは、レンタルの理由である特定の使用(図の例ではアプリケーション209での使用)のためのみに有効である。このようにしてモバイル機器201で機能している他のアプリケーションからフォント記憶手段213を隔離することは、フォント許諾およびフォント許諾制約などのために重要でありうる。
図2に図示されているように、SDK211はフォントサービス203のインタフェース219との通信状態にある。インタフェース219はSDK211と通信することで、図3および4を参照してより詳しく記されるように、リクエストされたフォントのダウンロードを補助する。フォントサービス203は、フォントライブラリ221、最適化ツール223、およびサブスクリプションデータベース225を付加的に包含しうる。フォントライブラリ221は、レンタルされて様々なアプリケーション(アプリケーション209など)で使用されるように利用可能な複数のフォントファイルを包含しうる。フォントライブラリ221は一つ以上のネットワークサーバ105などに記憶されうるため、フォントライブラリ221は、モバイル機器201に記憶されるシステムフォント207と同じスペース制約などを受けない。したがって、フォントライブラリ221は、システムフォント207よりも多くのフォントファイル(ゆえにより多くのフォントオプション)を内含しうる。
フォントサービス203は、最適化ツール223を包含しうる。最適化ツール223は、モバイル機器201へ送信する前にフォントライブラリ221からフォントファイルを最適化しうる。例えば、フォントファイルを送信するのに必要とされる帯域幅を縮小する、受信したフォントファイルをモバイル機器201で局所的に記憶するのに必要とされるメモリまたは他の記憶スペースを縮小する、および/またはフォントファイルを使用してモバイル機器201でコンテンツを表現するのに必要とされる時間を短縮するため、この最適化が実施されうる。
最適化ツール223は、何らかの所望の方法を使用してフォントファイルのサイズを縮小しうる。いくつかの実施形態において、最適化ツール223は、対象アプリケーション209のオペレーティングシステム205により必要とされるおよび/またはサポートされることのないフォントヒンティングを削除しうる。本書で使用される際に、フォントヒンティング(インストラクティングとしても知られる)は、ラスタ化グリッドと一致するようにアウトラインフォントの表示を調節するという数学的命令の使用を指す。例えば、低スクリーン解像度では、明瞭で読み易いテキストを作成するのにフォントヒンティングが必要である。ゆえにフォントライブラリ221に記憶されるフォントファイルはフォントヒンティング(インストラクティング)を包含しうるが、対象クライアント機器103は、このようなフォントヒンティングを必要としない、および/またはサポートしなくてもよい。対象クライアント機器103(モバイル機器201など)に使用されるオペレーティングシステム205および/またはディスプレイ217のスクリーン解像度を決定することにより、最適化ツール223はこうして、要求および/またはサポートされない時にフォントファイルから不要なフォントヒンティングその他を削除し、こうして、フォトファイルを送信するのに必要とされる帯域幅、フォントファイルを局所的に記憶するのに必要とされる記憶スペース(メモリ)、および/またはテキストコンテンツをモバイル機器201で表現するのに必要な時間を減少させうる。
他の実施形態において、最適化ツール223は、対象クライアント機器103のオペレーティングシステム205で最終的に使用されないリクエストされたフォントファイルからオープンタイプ特徴を削除することなどに使用されうる。例えば、いくつかのオペレーティングシステム205は、一部または全部のオープンタイプ特徴をサポートおよび/または利用しなくてもよい。このような実施形態において、最適化ツール223は、クライアント機器103(モバイル機器201など)へ送信される前に未使用のオープンタイプ特徴をリクエストされたフォントファイルから削除しうる。ゆえに、上に挙げたフォントヒンティングでのように、最適化ツール223はこうして、フォントファイルを送信するのに必要とされる帯域幅、フォントファイルを局所的に記憶するのに必要とされる記憶スペース(メモリなど)、および/またはテキストコンテンツをクライアント機器103で表現するのに必要な時間を減少させるため、未使用のオープンタイプ特徴を除去することにより、リクエストされたフォントファイルのサイズを縮小させうる。
フォントサービス203はさらに、サブスクリプションデータベース225を包含しうる。サブスクリプションデータベース225は、ユーザアカウント、許可等に関する情報を包含し、いくつかの実施形態では、ユーザがアクセスできるフォントのリストを包含しうる。例えば、いくつかの実施形態では、サードパーティのソフトウェア開発者その他が、自身が開発したアプリケーション(アプリケーション209など)で使用されるフォントライブラリ221からの特定フォントを許諾しうる。したがって、サブスクリプションデータベース225は、クライアント機器103(モバイル機器201など)がソフトウェア開発者により開発されたアプリケーション209を実行する時に、リクエストされたフォントを使用する許可をアプリケーション209が有するかどうかを判断するのにサブスクリプションデータベース225が参照されうるように、ソフトウェア開発者のライセンス合意に関する情報を包含しうる。こうして、いくつかの実施形態では、クライアント機器103(モバイル機器201など)がアプリケーション209を実行する時に、SDK211はインタフェース219を介してフォントサービス203と通信してから、サブスクリプションデータベース225で提供される条件にしたがって許諾フォントファイルおよび/または許諾フォントファイルを使用する許可を提供しうる。しかし、リクエストされたフォントファイルへアクセスする許可をアプリケーション209が得ていない(例えば、ソフトウェア開発者がフォントサービス203についてのサブスクリプションを確立していない、および/またはリクエストされたフォントを含まないサブスクリプションを確立している)ことをサブスクリプションデータベース225が示す場合に、フォントサービス203はフォントファイルへのアクセスを拒否しうる。このような実施形態では、デフォルトシステムフォント207を使用してテキストコンテンツが最終的にディスプレイ217に表現されうる、および/または、リクエストされたフォントへアクセスする許可を得ていないことを示すエラーメッセージがユーザへ返信されうる。
モバイル機器201(または他のクライアント機器103)とフォントサービス203との相互作用は、図3および4を参照するとより容易に理解されるだろう。図3は、SDK211などを介してフォントファイルがダウンロードおよびアクティブ化される時に関与する高レベルロジックの一実施形態を示す。例えば、ステップ301ではアプリケーションが起動を開始する。アプリケーションは何らかのプログラム、ウィジェット、ブラウザ、ソフトウェア等であり、クライアント機器103a〜103eのいずれかなどで起動されうる。いくつかの実施形態では、ステップ301で起動されるアプリケーションは、モバイル機器201で起動されるアプリケーション209でありうる。上記のように、起動されるアプリケーション209は、表示されるアプリケーション209内で使用されるフォントをリクエストするなどのため、フォントサービス203との相互作用を補助するSDK211を包含しうる。ステップ303では、起動アプリケーション209に対応してリクエストされたフォントがサンドボックス215内に記憶されたかどうかを、SDK211が判断しうる。例えば、いくつかの実施形態では、フォントがフォントサービス203から配信されると、続くアプリケーション209(モバイル機器201で機能している他のアプリケーションによってではなく)の使用中に容易にアクセスされうるようにサンドボックス215に局所的に記憶されうる。したがって、ステップ303では、フォントが事前にアクセス(ダウンロードなど)されてサンドボックス215に記憶された場合に、より詳しく記すように、SDK211は単純に、ステップ303でフォントに局所的にアクセスして、ステップ313へ移動する。
しかし、リクエストされたフォントがサンドボックス215に事前に記憶されていない(例えば、これが最初であれば、アプリケーション209が起動されることで、SDK211がこのフォントを事前にリクエストしていない、および/またはSDK211がフォントを局所的に記憶する許可を否定されている)実施形態では、方法はステップ305へ進む。ステップ305で、SDK211はフォントサービス203との接続を確立する。上記のように、SDK211とフォントサービス203との間の接続は、本開示の範囲から逸脱することなく何らかの周知の方法によって達成されうる。単なる例として挙げると、起動されたアプリケーションが例えばモバイル機器201で機能しているアプリケーション209であるような実施形態では、無線インターネット接続および/またはセルラーデータ送信接続を介して、SDK211はフォントサービス203との接続を確立しうる。さらに、図2に図示されているように、フォントサービス203は、SDK211との接続を確立するためのインタフェース219を包含しうる。ステップ305でフォントサービス203への接続が確立されると、SDK211は一つ以上のフォントファイルをフォントサービス203からリクエストしうる。例えば、SDK211は、アプリケーション209でテキストコンテンツを表現する時に使用されるようにサードパーティのソフトウェア開発者その他がプログラムしたフォントと関連するフォントファイルをリクエストしうる。
ステップ307で、SDK211(インタフェース219などを介して)および/またはフォントサービス203は、サブスクリプションデータベース225を参照することなどにより顧客のサブスクリプションにアクセスしうる。やはり、サブスクリプションデータベース225は、フォントライブラリ221内に記憶される一つ以上のフォントにアクセスするための一つ以上のユーザアカウントおよび/または許可に関する情報を包含しうる。いくつかの実施形態において、サブスクリプションデータベース225は、サードパーティである開発者のサブスクリプション、および/または一つ以上のフォントファイルにアクセスするための許可などに関する情報を包含しうる。ステップ309で、SDK211および/またはフォントサービス203は、リクエストされたフォントにユーザがアクセスしたかどうかを判断する。例えば、サードパーティである開発者がそのアプリケーション209を実行するクライアント機器103による使用のため特定のフォントの使用を許諾などした場合に、SDK211および/またはフォントサービス203は、リクエストされたフォントへのアクセスをユーザが有することを(サブスクリプションデータベース225などの参照により)ステップ309で判断しうる。しかし、リクエストされたフォントへのアクセスをユーザが有していない(リクエストされたフォントを包含するサブスクリプション合意をサードパーティの開発者が得ていない)とSDK211および/またはフォントサービス203が判断した場合には、方法はステップ311へ進む。
ステップ311では、リクエストされたフォントの代わりにシステムフォント207(デフォルトフォントなど)が使用される。こうして、クライアント機器103(モバイル機器201など)が、リクエストされたフォントへのアクセスを最終的に拒否された場合には、アプリケーション209でディスプレイ217などに表現されるテキストコンテンツが一つ以上のデフォルトシステムフォント207で表現されうる。いくつかの実施形態では、このデフォルトシステムフォント207へのフォールバックは、オペレーティングシステム205のアプリケーションプログラミングインタフェース(API)方法を呼び出すことなどにより達成されうる。本書で使用される際に、APIは、相互に通信するソフトウェアコンポーネントによりインタフェースとして使用されることを目的とする、ソースコードベースの仕様を指す。APIは、ルーチン、データ構造、オブジェクトクラス、変数、その他を含みうる。他の実施形態では、表現されるコンテンツを表示するためシステムフォント207へアクセスするのではなく、アプリケーション209は、リクエストされたフォントへのアクセスをクライアント機器103が有していないことを示すエラーメッセージまたは他のプロンプトなどを返信しうる。
しかし、ステップ309で、リクエストされたフォントへのアクセスをユーザが有している(例えば、リクエストされたフォントがサードパーティ開発者のサブスクリプションに含まれている)とSDK211および/またはフォントサービス203が判断した場合には、方法は(図3に円「A」で示されているように)図4へ進むことができる。図4は、リクエストされたフォントをフォントサービス203などからモバイル機器201へ配信するのに使用される、開示のいくつかの態様による方法の流れ図である。ステップ401で、SDK211はフォントサービス203へ情報を提供する。いくつかの実施形態において、ステップ401でSDK211からフォントサービス203へ提供される情報は、対象アプリケーション209を作動させるのに使用されるオペレーティングシステム205のバージョン、および/または対象アプリケーション209を表示するのに使用されるディスプレイ217のスクリーン解像度のようなプラットフォーム情報などを包含しうる。
ステップ403で、SDK211および/またはフォントサービス203は、リクエストされたフォントが事前に最適化されているかどうかを判断しうる。上記のように、フォントの最適化は、フォントファイルを送信するのに必要とされる帯域幅、フォントファイルを記憶するのに必要とされる記憶スペース(メモリなど)、および/またはディスプレイ217でフォントを表現するのに必要とされる時間などを減少させるため、フォントファイルのサイズを縮小することを包含しうる。いくつかの実施形態において、最適化は、対象アプリケーション209で作動しているクライアント機器103(モバイル機器201など)のオペレーティングシステム205により必要とされないフォントヒンティングおよび他の特徴などをフォントファイルから除去することを包含しうる。他の実施形態において、最適化は、対象アプリケーション209で作動しているクライアント機器103(モバイル機器201など)のオペレーティングシステム205によりサポートおよび/または要求されていないオープンタイプ特徴などを削除することを包含しうる。いくつかの実施形態において、フォントサービス203は、所与のオペレーティングシステム、スクリーン解像度等のため事前に最適化されているフォントファイルをフォントライブラリ221などに記憶しうる。こうして、ステップ403で、SDK211および/またはフォントサービス203は、リクエストされたフォントファイルが対象のオペレーティングシステム205および/またはディスプレイ217のため事前に最適化されているかどうかを判断しうる。最適化されている場合に、フォントサービス203は、(より詳しく記すように)ステップ407で最適化フォントファイルを供与し、それ以上の動作は行わない。しかし、フォントファイルが事前に最適化されていない(オペレーティングシステム205および/またはディスプレイ217のために最適化されていないなど)場合には、方法はステップ405へ進む。
ステップ405で、SDK211および/またはフォントサービス203は、リクエストされたフォントファイルの実時間最適化を実施する。具体的には、上記のように対象のオペレーティングシステム205および/またはディスプレイ217により要求されていないフォントヒンティング、オープンタイプ特徴、および/または他の特徴をフォントファイルから除去することなどにより、リクエストされたフォントファイルのサイズが縮小されうる。いくつかの実施形態では、フォントサービス203で提供される最適化ツール223を参照することなどにより、ステップ405が実施されうる。ステップ405で必要な実時間最適化が実施されると、方法はステップ407へ進み、ここでフォントサービス203は、対象アプリケーション209のテキストコンテンツを表現する際に使用するための最適化フォントファイルをSDK211などへ供与しうる。
いくつかの実施形態において、SDK211はステップ409で、受信した最適化フォントファイルをサンドボックス215のフォント記憶手段213などに局所的に記憶しうる。これは、オペレーティングシステム205のAPI方法を呼び出すことなどにより達成されうる。このような実施形態において、アプリケーション209が後で起動される時に、始動時間および/またはテキストコンテンツなどを表現するのに必要とされる時間を短縮するため、リクエストされたフォントはサンドボックス215のフォント記憶手段213などで局所的に利用可能である(しかしモバイル機器201で機能している他のアプリケーションなどには利用可能でない)。
ステップ409に続いて(また円「B」で示されているように図3へ戻って)、ステップ313でSDK211は、対象アプリケーション209でフォントをアクティブ化する。本書で使用される際に、アクティブ化は、オペレーティングシステム205がリクエストされたフォントの存在を発見して、このフォントがオペレーティングシステム205自体にインストールされているかのようにフォントを使用しうるように、フォントの状態を変化させる動作を指す。図の実施形態において、ステップ313で、受信されたフォントをSDK211によりアクティブ化すると、(機器で作動しているすべてのアプリケーションに利用可能であるシステムフォント207などの大域的アクティブ化フォントと比較すると)対象アプリケーション209内のみでの受信フォントの使用を可能にする。いくつかの実施形態において、ステップ313でのフォントアクティブ化は、適時フォントアクティブ化を包含しうる。このような実施形態では、対象アプリケーション209がテキストコンテンツを表現するのに必要とする時点(またはほぼその時点)に、必要に応じてフォントアクティブ化が行われうる。
ステップ315では、対象アプリケーション209が起動を終了する。例えば、いくつかの実施形態では、アプリケーション209がディスプレイ217に表示され、そのユーザインタフェースおよび/または他のテキストコンテンツがフォントサービス203から受信したフォント書体で表現される。
本書に記載される方法および特徴はさらに、コンピュータ読取可能命令を記憶することのできるいくつかの数のコンピュータ読取可能媒体を通して実施されうる。使用されうるコンピュータ読取可能媒体の例は、RAM、ROM,EEPROM、フラッシュメモリや他のメモリ技術、CD‐ROM,DVDや他の光ディスク記憶手段、磁気カセット、磁気テープ、磁気記憶手段、その他を含む。
付加的または代替的に、少なくともいくつかの実施形態において、本書に記載される方法および特徴は、一つ以上の集積回路(IC)を通して実施されうる。集積回路は例えば、リードオンリメモリ(ROM)に記憶されるプログラミング命令または他のデータにアクセスするマイクロプロセッサでありうる。このようないくつかの実施形態において、ROMは、本書で説明される方法のうち一つ以上による動作をICに実施させるプログラミング命令を記憶する。少なくともいくつかの他の実施形態では、本書で説明される一つ以上の方法はICに結線接続される。換言すると、ICはこのような事例で、本書で説明される計算および他のオペレーションに専用のゲートおよび他のロジックを有する特定用途向け集積回路(ASIC)である。やはり他の実施形態において、ICは、ROMまたはRAMから読み取られたプログラミング命令の実行に基づいていくつかのオペレーションを実施し、他のオペレーションはICのゲートおよび他のロジックに結線接続されうる。さらに、ICは画像データをディスプレイバッファへ出力しうる。
本書で説明されるように、提供されるシステム、装置、方法、およびコンピュータ読取可能媒体は、対象のユーザ、サードパーティのソフトウェア開発者、その他に多くの長所を与えうる。例えば、提供されるシステム、装置、方法、およびコンピュータ読取可能媒体は、ソフトウェアアプリケーション209のユーザインタフェースおよびテキストコンテンツを設計してコード化する時に、選択可能な多様な高品質フォントを提供しうる。さらに、いくつかの実施形態において、SDK211は、バックグランドスレッドでフォントをダウンロードしてメインスレッドの応答性を維持すること、アプリケーション209のサンドボックス215にフォントを記憶すること、そしてフォントをアクティブ化することなど、サードパーティの開発者のために詳細を処理する。付加的に、いくつかの実施形態では、クライアント機器103のためにフォントが最適化され、フォントをダウンロードするのに必要とされる帯域幅が減少され、クライアント機器103にフォントを記憶するのに必要とされる記憶量が減少され、および/またはテキストコンテンツをアプリケーション209で表現するのに必要とされる時間が短縮されるように、SDK211がサポートされる。いくつかの態様によれば、SDK211は、アプリケーション209が最初に作動する時にフォントのダウンロードを処理して、アプリケーション209の初回ダウンロードのサイズを縮小しうる。(アプリケーション209でリソースをパッケージングするのと対照的に)リソースを初回実行時にロードすることはモバイル機器201のアプリケーション209のために推奨される最善の慣行であるので、クライアント機器103がモバイル機器201などである時には、これは特に有益である。提供されるシステム、装置、方法、およびコンピュータ読取可能媒体は、本開示の利点を挙げられれば当業者には明白であるような他の多くの長所を、対象ユーザ、サードパーティのソフトウェア開発者、その他に与えうる。
様々な特徴を実行する特定例が説明されたが、添付の請求項に提示された開示の趣旨および範囲に内含される上述のシステムおよび方法のいくつかの変形および置換が存在することを、当業者であれば認識するだろう。付加的に、添付の請求項の範囲および趣旨に含まれる多数の他の実施形態、変更形態、変形形態を、当業者は本開示の検討により発案するだろう。
100 ネットワーク
103a パーソナルコンピュータ
103b 携帯情報端末
103c 携帯電話
103d ラップトップ型コンピュータ
103e タブレット
105a,b サーバ
201 モバイル機器
203 フォントサービス
205 オペレーティングシステム
207 システムフォント
209 アプリケーション
211 SDK
213 フォント記憶手段
215 サンドボックス
217 ディスプレイ
219 インタフェース
221 フォントライブラリ
223 最適化ツール
225 サブスクリプションデータベース

Claims (20)

  1. プロセッサによる実行時に、装置が、
    第1フォントがアプリケーションで使用されることについてのリクエストである第1リクエストを、オペレーティングシステムで機能しているアプリケーションから受理し、
    前記第1フォントを包含する第1フォントファイルが前記アプリケーションに対応する固定記憶スペースに配置されているかどうかを判断し、
    前記第1フォントファイルが前記アプリケーションに対応する前記固定記憶スペースに配置されていないとの判断を受けて、
    フォントサービスへの接続を確立し、
    前記第1フォントファイルを前記フォントサービスからリクエストし、
    前記第1フォントファイルを前記フォントサービスから受信し、
    また、
    前記第1フォントを前記アプリケーションでアクティブ化する、
    ようにさせるコンピュータ読取可能命令を記憶する、一つ以上のコンピュータ読取可能媒体。
  2. 前記プロセッサによる実行時に、前記装置が、
    前記アプリケーションによる将来的アクセスのため前記第1フォントファイルを前記固定記憶スペースに記憶する、
    ようにさせる命令をさらに記憶する、請求項1に記載の一つ以上のコンピュータ読取可能媒体。
  3. 前記プロセッサによる実行時に、前記装置が、
    前記第1リクエストの時点より遅い時点に前記第1フォントが前記アプリケーションで使用されることについてのリクエストである第2リクエストを、前記オペレーティングシステムで機能している前記アプリケーションから受信し、
    前記固定記憶スペースから前記第1フォントファイルを検索する、
    ようにさせる命令をさらに記憶する、請求項2に記載の一つ以上のコンピュータ読取可能媒体。
  4. 前記オペレーティングシステムにより使用されていないフォントヒンティングおよびオープンタイプ特徴のうち一つを削除することにより前記第1フォントファイルが最適化される、請求項1に記載の一つ以上のコンピュータ読取可能媒体。
  5. 前記アプリケーションで前記第1フォントをアクティブ化することが、前記アプリケーションのテキストコンテンツを前記第1フォントで表現することを包含する、請求項1に記載の一つ以上のコンピュータ読取可能媒体。
  6. 前記装置がモバイル機器であり、無線インターネット接続とセルラーデータ接続のうち一つを介して前記フォントサービスへの前記接続が確立される、請求項1に記載の一つ以上のコンピュータ読取可能媒体。
  7. 前記アプリケーションがソフトウェア開発キットを包含する、請求項1に記載の一つ以上のコンピュータ読取可能媒体。
  8. 前記フォントサービスへの前記接続が前記ソフトウェア開発キットと前記フォントサービスとの間で確立される、請求項7に記載の一つ以上のコンピュータ読取可能媒体。
  9. 前記第1フォントファイルを前記フォントサービスから受信することが、さらに、前記アプリケーションの開発者のサブスクリプション合意に前記第1フォントファイルが含まれるという前記ソフトウェア開発キットによる判断を受けたものである、請求項8に記載の一つ以上のコンピュータ読取可能媒体。
  10. プロセッサによる実行時に、装置が、
    クライアント機器からの接続を受理し、
    第1フォントファイルがアプリケーションで使用されることについての第1リクエストを前記クライアント機器で受信し、
    前記アプリケーションに対応するサブスクリプションを検索し、
    前記アプリケーションに対応する前記サブスクリプションが前記第1フォントファイルへのアクセスを包含するかどうかを判断し、
    前記アプリケーションに対応する前記サブスクリプションが前記第1フォントファイルへのアクセスを包含するとの判断を受けて、
    前記クライアント機器により使用されるオペレーティングシステムを判断し、
    前記クライアント機器により使用される前記オペレーティングシステムのために前記第1フォントファイルを最適化し、
    前記第1フォントファイルを前記クライアント機器へ送信する、
    ようにさせるコンピュータ読取可能命令を記憶する、一つ以上のコンピュータ読取可能媒体。
  11. 前記第1フォントファイルの最適化が、前記第1フォントファイルのサイズを縮小することを包含する、請求項10に記載の一つ以上のコンピュータ読取可能媒体。
  12. 前記第1フォントファイルの最適化がさらに、前記クライアント機器で使用される前記オペレーティングシステムによって使用されないフォントヒンティングおよびオープンタイプ特徴ファイルのうち一つを削除することを包含する、請求項11に記載の一つ以上のコンピュータ読取可能媒体。
  13. 前記第1フォントファイルの最適化がさらに、前記クライアント機器で使用される前記オペレーティングシステムに対応する前記第1フォントファイルの最適化バージョンをデータベースから検索することを包含する、請求項11に記載の一つ以上のコンピュータ読取可能媒体。
  14. 前記アプリケーションに対応する前記サブスクリプションが前記第1フォントファイルへのアクセスを包含するかどうかの判断が、前記アプリケーションの開発者のサブスクリプション合意に前記第1フォントが含まれるかどうかを判断することを包含する、請求項10に記載の一つ以上のコンピュータ読取可能媒体。
  15. 前記クライアント機器がモバイル機器であり、無線インターネット接続とセルラーデータ接続のうち一つを介して前記クライアント機器からの接続が受理される、請求項10に記載の一つ以上のコンピュータ読取可能媒体。
  16. 少なくとも一つのプロセッサと、
    前記少なくとも一つのプロセッサに動作結合されて、前記少なくとも一つのプロセッサによる実行時に、前記モバイル機器が、
    第1フォントがアプリケーションで使用されることについての第1リクエストを、前記モバイル機器のオペレーティングシステムで機能しているアプリケーションから受信し、
    前記第1フォントを包含する第1フォントファイルが、前記アプリケーションに対応する固定記憶スペースに配置されているかどうかを判断し、
    前記第1フォントファイルが前記固定記憶スペースに配置されていないとの判断を受けて、
    前記アプリケーションと関連するソフトウェア開発キットとフォントサービスとの間に接続を確立し、
    前記フォントサービスから前記第1フォントファイルをリクエストし、
    前記オペレーティングシステムのために最適化された第1フォントファイルを、前記ソフトウェア開発キットにより前記フォントサービスから受信し、
    また、
    前記固定記憶スペースに前記第1フォントファイルを記憶し、
    前記第1フォントを前記アプリケーションでアクティブ化する、
    ようにさせるコンピュータ読取可能命令を記憶するメモリと、
    を包含するモバイル機器。
  17. 前記少なくとも一つのプロセッサによる実行時に、前記モバイル機器が、
    前記第1リクエストの時点より遅い時点で前記第1フォントが前記アプリケーションで使用されることについてのリクエストである第2リクエストを、前記オペレーティングシステムで機能している前記アプリケーションから受信し、
    前記第2リクエストの受信を受けて、前記固定記憶スペースから前記第1フォントファイルを検索する、
    ようにさせるコンピュータ読取可能命令を前記メモリがさらに記憶する、請求項16に記載のモバイル機器。
  18. 前記オペレーティングシステムにより使用されていないフォントヒンティングおよびオープンタイプ特徴のうち一つを削除することにより、前記第1フォントファイルが最適化される、請求項16に記載のモバイル機器。
  19. 前記アプリケーションで前記フォントをアクティブ化することが、前記アプリケーションのテキストコンテンツを前記第1フォントで表現することを包含する、請求項16に記載のモバイル機器。
  20. 前記フォントサービスから前記第1フォントファイルを受信することがさらに、前記アプリケーションの開発者のサブスクリプション合意に前記第1フォントファイルが含まれるという前記ソフトウェア開発キットによる判断を受けたものである、請求項16に記載のモバイル機器。
JP2014047632A 2013-03-13 2014-03-11 フォント配信サービス Pending JP2014179081A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/798,498 2013-03-13
US13/798,498 US20140280693A1 (en) 2013-03-13 2013-03-13 Font delivery service

Publications (1)

Publication Number Publication Date
JP2014179081A true JP2014179081A (ja) 2014-09-25

Family

ID=50280183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014047632A Pending JP2014179081A (ja) 2013-03-13 2014-03-11 フォント配信サービス

Country Status (5)

Country Link
US (1) US20140280693A1 (ja)
EP (1) EP2778949A3 (ja)
JP (1) JP2014179081A (ja)
CN (1) CN104050412A (ja)
CA (1) CA2842063A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10341319B2 (en) * 2016-02-17 2019-07-02 Adobe Inc. Utilizing a customized digital font to identify a computing device
US10095529B2 (en) 2016-06-07 2018-10-09 Microsoft Technology Licensing, Llc Font download on application boot
CN106168901A (zh) * 2016-06-23 2016-11-30 北京奇虎科技有限公司 应用程序字体自定义方法和控制方法及相应装置
CN108153557A (zh) * 2016-12-02 2018-06-12 北大方正集团有限公司 字体传输方法及装置
US10282199B2 (en) * 2017-09-05 2019-05-07 Verizon Patent And Licensing Inc. Selecting a software development kit (SDK) of an application to be activated based on characteristics of the application
CN110674618A (zh) * 2019-09-03 2020-01-10 北京达佳互联信息技术有限公司 一种内容展示方法、装置、设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073147A (en) * 1997-06-10 2000-06-06 Apple Computer, Inc. System for distributing font resources over a computer network
US8271470B2 (en) * 2007-06-09 2012-09-18 Apple Inc. Auto-activation of fonts
US8103847B2 (en) * 2009-04-08 2012-01-24 Microsoft Corporation Storage virtual containers
US8769050B2 (en) * 2009-10-16 2014-07-01 Celartern, Inc. Serving font files in varying formats based on user agent type
US8683006B2 (en) * 2010-07-17 2014-03-25 Adobe Systems Incorporated Method and systems for serving fonts during web browsing sessions
US8959451B2 (en) * 2010-09-24 2015-02-17 Blackberry Limited Launching an application based on data classification
US20130215126A1 (en) * 2012-02-17 2013-08-22 Monotype Imaging Inc. Managing Font Distribution
US20140006598A1 (en) * 2012-06-29 2014-01-02 Nokia Corporation Methods, apparatuses and computer program products for facilitating dynamic origin-based domain allocation
US20140047329A1 (en) * 2012-08-10 2014-02-13 Monotype Imaging Inc. Network Based Font Subset 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
EP2778949A3 (en) 2015-08-19
US20140280693A1 (en) 2014-09-18
CA2842063A1 (en) 2014-09-13
CN104050412A (zh) 2014-09-17
EP2778949A2 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
US11119812B2 (en) Method and device for processing application program page according to a common interface container
KR102159885B1 (ko) 하나 이상의 확장 애플리케이션과 상호작용하는 메시징 애플리케이션
US10083019B2 (en) Providing application functionality for uninstalled applications
US8583619B2 (en) Methods and systems for open source collaboration in an application service provider environment
JP2014179081A (ja) フォント配信サービス
EP2864895B1 (en) Identification of host-compatible downloadable applications
US9058193B2 (en) Methods and systems for providing compatibility of applications with multiple versions of an operating system
US7853253B2 (en) System and method of regulating data traffic between a client device and a server
US20120131470A1 (en) Integrated Application Feature Store
US8856685B2 (en) Method and system for providing web content on a mobile device
CN110990075A (zh) 快应用的启动方法、装置、设备及存储介质
CN106257418B (zh) 用于通过使用辅助应用来评价应用的技术
JP2020529066A (ja) クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
CN110780930A (zh) 启动Android系统的方法、装置、电子设备及存储介质
CN111079125A (zh) 一种应用程序调用第三方库动态提升权限的方法及装置
US8191041B2 (en) Javascript pre-processing framework
US9354849B2 (en) Modification of compiled applications and application management using retrievable policies
KR20090051088A (ko) 네트워크 환경에서의 공간의 개인화
US9785560B2 (en) Scene-isolated internet application
US10025574B1 (en) Packaged installation file based on automatic detection of device capabilities
CN107667343B (zh) 用于加载按需加载资源的系统和方法
US20120271951A1 (en) Control method for providing storage space of application and terminal and server therefor
CN111258477B (zh) 选项卡配置方法、系统、设备及存储介质
KR20080027293A (ko) 데이터 언어에서 다수 언어들의 관리
CN111274551A (zh) 基于编译器的java代码保护方法、装置及电子设备