(57)【要約】      （修正有）【課題】多様なフォント書体を使用してユーザインタフェースおよびコンテンツを設計する手段を開発者に提供するフォントサービスおよびソフトウェア開発キット（ＳＤＫ）のための方法、システム、およびアーキテクチャ。【解決手段】ＳＤＫは必要に応じてフォントサービスからフォントをダウンロードして、ソフトウェアアプリケーションのユーザインタフェースまたはアプリケーション内のテキストコンテンツで表現されるようにフォントをアクティブ化する。フォントライブラリに配置されるフォントファイルにアクセスするためのクライアント機器についてのユーザアカウント情報または他のデータを包含するサブスクリプションサービスが提供され、対象アプリケーションが機能しているオペレーティングシステム、および／または、対象アプリケーションが機能しているクライアント機器のスクリーン解像度に従い、一つ以上のフォントファイルを最適化する。【選択図】図２
2014179081.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによる実行時に、装置が、
第１フォントがアプリケーションで使用されることについてのリクエストである第１リクエストを、オペレーティングシステムで機能しているアプリケーションから受理し、
前記第１フォントを包含する第１フォントファイルが前記アプリケーションに対応する固定記憶スペースに配置されているかどうかを判断し、
前記第１フォントファイルが前記アプリケーションに対応する前記固定記憶スペースに配置されていないとの判断を受けて、
フォントサービスへの接続を確立し、
前記第１フォントファイルを前記フォントサービスからリクエストし、
前記第１フォントファイルを前記フォントサービスから受信し、
また、
前記第１フォントを前記アプリケーションでアクティブ化する、
ようにさせるコンピュータ読取可能命令を記憶する、一つ以上のコンピュータ読取可能媒体。
【請求項２】
前記プロセッサによる実行時に、前記装置が、
前記アプリケーションによる将来的アクセスのため前記第１フォントファイルを前記固定記憶スペースに記憶する、
ようにさせる命令をさらに記憶する、請求項１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項３】
前記プロセッサによる実行時に、前記装置が、
前記第１リクエストの時点より遅い時点に前記第１フォントが前記アプリケーションで使用されることについてのリクエストである第２リクエストを、前記オペレーティングシステムで機能している前記アプリケーションから受信し、
前記固定記憶スペースから前記第１フォントファイルを検索する、
ようにさせる命令をさらに記憶する、請求項２に記載の一つ以上のコンピュータ読取可能媒体。
【請求項４】
前記オペレーティングシステムにより使用されていないフォントヒンティングおよびオープンタイプ特徴のうち一つを削除することにより前記第１フォントファイルが最適化される、請求項１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項５】
前記アプリケーションで前記第１フォントをアクティブ化することが、前記アプリケーションのテキストコンテンツを前記第１フォントで表現することを包含する、請求項１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項６】
前記装置がモバイル機器であり、無線インターネット接続とセルラーデータ接続のうち一つを介して前記フォントサービスへの前記接続が確立される、請求項１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項７】
前記アプリケーションがソフトウェア開発キットを包含する、請求項１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項８】
前記フォントサービスへの前記接続が前記ソフトウェア開発キットと前記フォントサービスとの間で確立される、請求項７に記載の一つ以上のコンピュータ読取可能媒体。
【請求項９】
前記第１フォントファイルを前記フォントサービスから受信することが、さらに、前記アプリケーションの開発者のサブスクリプション合意に前記第１フォントファイルが含まれるという前記ソフトウェア開発キットによる判断を受けたものである、請求項８に記載の一つ以上のコンピュータ読取可能媒体。
【請求項１０】
プロセッサによる実行時に、装置が、
クライアント機器からの接続を受理し、
第１フォントファイルがアプリケーションで使用されることについての第１リクエストを前記クライアント機器で受信し、
前記アプリケーションに対応するサブスクリプションを検索し、
前記アプリケーションに対応する前記サブスクリプションが前記第１フォントファイルへのアクセスを包含するかどうかを判断し、
前記アプリケーションに対応する前記サブスクリプションが前記第１フォントファイルへのアクセスを包含するとの判断を受けて、
前記クライアント機器により使用されるオペレーティングシステムを判断し、
前記クライアント機器により使用される前記オペレーティングシステムのために前記第１フォントファイルを最適化し、
前記第１フォントファイルを前記クライアント機器へ送信する、
ようにさせるコンピュータ読取可能命令を記憶する、一つ以上のコンピュータ読取可能媒体。
【請求項１１】
前記第１フォントファイルの最適化が、前記第１フォントファイルのサイズを縮小することを包含する、請求項１０に記載の一つ以上のコンピュータ読取可能媒体。
【請求項１２】
前記第１フォントファイルの最適化がさらに、前記クライアント機器で使用される前記オペレーティングシステムによって使用されないフォントヒンティングおよびオープンタイプ特徴ファイルのうち一つを削除することを包含する、請求項１１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項１３】
前記第１フォントファイルの最適化がさらに、前記クライアント機器で使用される前記オペレーティングシステムに対応する前記第１フォントファイルの最適化バージョンをデータベースから検索することを包含する、請求項１１に記載の一つ以上のコンピュータ読取可能媒体。
【請求項１４】
前記アプリケーションに対応する前記サブスクリプションが前記第１フォントファイルへのアクセスを包含するかどうかの判断が、前記アプリケーションの開発者のサブスクリプション合意に前記第１フォントが含まれるかどうかを判断することを包含する、請求項１０に記載の一つ以上のコンピュータ読取可能媒体。
【請求項１５】
前記クライアント機器がモバイル機器であり、無線インターネット接続とセルラーデータ接続のうち一つを介して前記クライアント機器からの接続が受理される、請求項１０に記載の一つ以上のコンピュータ読取可能媒体。
【請求項１６】
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサに動作結合されて、前記少なくとも一つのプロセッサによる実行時に、前記モバイル機器が、
第１フォントがアプリケーションで使用されることについての第１リクエストを、前記モバイル機器のオペレーティングシステムで機能しているアプリケーションから受信し、
前記第１フォントを包含する第１フォントファイルが、前記アプリケーションに対応する固定記憶スペースに配置されているかどうかを判断し、
前記第１フォントファイルが前記固定記憶スペースに配置されていないとの判断を受けて、
前記アプリケーションと関連するソフトウェア開発キットとフォントサービスとの間に接続を確立し、
前記フォントサービスから前記第１フォントファイルをリクエストし、
前記オペレーティングシステムのために最適化された第１フォントファイルを、前記ソフトウェア開発キットにより前記フォントサービスから受信し、
また、
前記固定記憶スペースに前記第１フォントファイルを記憶し、
前記第１フォントを前記アプリケーションでアクティブ化する、
ようにさせるコンピュータ読取可能命令を記憶するメモリと、
を包含するモバイル機器。
【請求項１７】
前記少なくとも一つのプロセッサによる実行時に、前記モバイル機器が、
前記第１リクエストの時点より遅い時点で前記第１フォントが前記アプリケーションで使用されることについてのリクエストである第２リクエストを、前記オペレーティングシステムで機能している前記アプリケーションから受信し、
前記第２リクエストの受信を受けて、前記固定記憶スペースから前記第１フォントファイルを検索する、
ようにさせるコンピュータ読取可能命令を前記メモリがさらに記憶する、請求項１６に記載のモバイル機器。
【請求項１８】
前記オペレーティングシステムにより使用されていないフォントヒンティングおよびオープンタイプ特徴のうち一つを削除することにより、前記第１フォントファイルが最適化される、請求項１６に記載のモバイル機器。
【請求項１９】
前記アプリケーションで前記フォントをアクティブ化することが、前記アプリケーションのテキストコンテンツを前記第１フォントで表現することを包含する、請求項１６に記載のモバイル機器。
【請求項２０】
前記フォントサービスから前記第１フォントファイルを受信することがさらに、前記アプリケーションの開発者のサブスクリプション合意に前記第１フォントファイルが含まれるという前記ソフトウェア開発キットによる判断を受けたものである、請求項１６に記載のモバイル機器。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、「フォント配信サービス」の名称で２０１３年３月１３日に出願された米国特許出願番号第１３／７９８，４９８号の優先権を主張し、同出願はその全体が参照により援用される。
【０００２】
本開示の各態様は、アプリケーションでの使用のため一つ以上のフォントを配信することに関連する。例えば、本開示のいくつかの態様は、ソフトウェアアプリケーションのための様々なフォント書体を配信するのに使用されるフォントサービスおよびソフトウェア開発キットに関連する。
【背景技術】
【０００３】
デスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット、携帯電話、その他にインストールされるオペレーティングシステムは、プリロードされた限定数のシステムフォントを包含している。ゆえに、これらのオペレーティングシステムで最終的に使用されるアプリケーションの開発者は、アプリケーション内で表現されるユーザインタフェースおよび／または他のテキストコンテンツをコーディングする時に選択するフォントを限定数のみ有する。これらの開発者が選択しうるフォントの数は、アプリケーションが最終的にモバイル機器にインストールされる時には特に制限される。すなわち、これらのモバイル機器での記憶容量はデスクトップ型コンピュータなどと比較してさらに制限されることがあるため、これらの機器は、開発者が選択するためにインストールされるシステムフォントを、さらに制限された数だけ有するのである。
【０００４】
したがって、最終的にモバイル機器にインストールされるアプリケーションに関しては特に、アプリケーションで使用されうる拡張フォントオプションをソフトウェア開発者その他に提供する必要性が残っている。さらに、これらの配信フォントファイルを送信、記憶、アクティブ化するのに必要な帯域幅および／または記憶容量を減少させるため、対象機器にしたがって配信フォントファイルを最適化する必要性が残っている。
【発明の概要】
【課題を解決するための手段】
【０００５】
以下は、開示のいくつかの態様の基本的な理解を与えるための簡略的な要約を提示する。要約は、開示の広範囲な概要ではない。主要または重要な開示の要素を特定することも、開示の範囲を定めることも意図されていない。以下の要約は、下の説明の前置きとして開示のいくつかの概念を単純な形で提示するに過ぎない。
【０００６】
開示の各態様は、多様なフォント書体を使用してユーザインタフェースおよびコンテンツを設計する手段を開発者その他に提供するフォントサービスおよびソフトウェア開発キット（ＳＤＫ）のための方法、システム、およびアーキテクチャに関連する。いくつかの実施形態において、ＳＤＫは、開発者のアプリケーションでの一つ以上のフォント書体の使用を可能にする。例えば、アプリケーションが起動される時に、ＳＤＫ（開発者のアプリケーションのコードに含まれる）は、リクエストされたフォントファイルを必要に応じてフォントサービスからダウンロードして、アプリケーション内のユーザインタフェースまたは他のテキストコンテンツがリクエストされたフォントで表現されるようにソフトウェアアプリケーションでこのフォントをアクティブ化する。
【０００７】
別の態様によれば、フォントサービスにサブスクリプションサービスが用意されうる。サブスクリプションサービスは、フォントライブラリに配置された一つ以上のフォントファイルへ１台以上のクライアント機器がアクセスするための許可に関係するアカウント情報または他のデータを包含しうる。いくつかの実施形態において、サブスクリプションサービスは、アプリケーション開発者とフォントサービスとの間のライセンス合意に関する情報を包含する。したがって、いくつかの実施形態では、フォントファイルがクライアント機器へ転送される前に対象アプリケーションの許可（またはその欠如）を判断するため、サブスクリプション情報が参照されうる。
【０００８】
また別の態様によれば、対象アプリケーションが機能しているオペレーティングシステム、および／または対象クライアント機器のディスプレイのスクリーン解像度について、一つ以上のフォントファイルが最適化されうる。フォントファイルの最適化は、フォントファイルを送信するのに必要とされる帯域幅を減少する、フォントファイルを記憶するのに必要とされる局所記憶容量を縮小する、および／またはフォントファイルを使用してテキストコンテンツを表現するのに必要とされる時間を短縮するため、フォントファイルのサイズを縮小することを包含しうる。いくつかの実施形態において、最適化は、オペレーティングシステムおよび／または対象クライアント機器により必要とされないフォントファイルのフォントヒンティング、オープンタイプ特徴、および／または他の属性を削除することを包含しうる。
【０００９】
本発明およびその長所のより完全な理解は、同様の参照番号が同様の特徴を指す添付図面を検討する際に以下の説明を参照することによって得られる。
【図面の簡単な説明】
【００１０】
【図１】本開示の一つ以上の態様が実行されうるコンピュータシステムおよび環境の例を図示する。
【図２】本開示の一つ以上の態様によるモバイル機器およびフォントサービスの概略図である。
【図３】本開示の一つ以上の態様を利用するアプリケーションを起動する方法を示す流れ図である。
【図４】本開示の一つ以上の態様による、図３の起動アプリケーションにより使用されるフォントファイルを最適化する方法を示す流れ図である。
【発明を実施するための形態】
【００１１】
開示の各態様は、クライアント機器で機能するアプリケーションにおいてユーザインタフェースおよび／または他の表現テキストコンテンツで最終的に使用される多数のフォントをソフトウェア開発者その他に提供するためのシステム、装置、方法、およびコンピュータ読取可能媒体に関連する。本書で使用されるフォントは、書体の文字の集合体を指し、いくつかの実施形態ではこの特定の書体のために規定されたすべての文字の集合を指しうる。フォントは、オペレーティングシステムにより処理されてアプリケーションで表現されるフォントファイルとして提供されうる。フォントファイルはさらに、ラスタ化グリッドと一致するようにアウトラインフォントの表示を調節するためのオペレーティングシステムへの数学的命令を包含するフォントヒンティング（インストラクティングなど）を包含する。いくつかの実施形態（クライアント機器のディスプレイが低スクリーン解像度を包含する実施形態など）では、フォントヒンティングは明瞭で読み易いテキストを作成するのに重要でありうる。フォントファイルはさらに、当業者には容易に理解されるオープンタイプ特徴を包含しうる。
【００１２】
図１は、開示のいくつかの態様によるアプリケーションにおいてユーザインタフェースまたは他のテキストコンテンツでテキストを表現するためフォントファイルが送信および使用されうるネットワーク環境を図示する。ネットワーク１００は、クライアント機器１０３を含む様々な機器とネットワークサーバ１０５との間に通信を提供するように構成されうる。通信は、インターネットプロトコル（ＩＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、その他を含む一つ以上の通信プロトコルに適合するとよい。機器１０３は、パーソナルコンピュータ（ＰＣ）１０３ａなどの固定機器とともに、携帯情報端末（ＰＤＡ）１０３ｂ、携帯電話１０３ｃ、ラップトップ型コンピュータ１０３ｄ、およびタブレット１０３ｅなどのモバイル通信機器を含む。ネットワークサーバ１０５は、ウェブページ、音楽コンテンツ、映像コンテンツ、アプリケーション、その他を含む様々なタイプの情報を記憶および提供するように構成されうる。一つの構成において、ネットワークサーバ１０５ａは一つ以上のフォントサービスを配給するように構成されうる。
【００１３】
一つ以上の態様によれば、フォントサービスおよび／またはネットワークサーバ１０５ｂはフォントファイルを記憶するように構成されうる。フォントファイルは様々なフォーマットに従って作成され、当業者には容易に理解されるように様々な命令（フォントヒンティングなど）と属性（オープンタイプ特徴など）とを包含する。したがって、多数の機器（クライアント機器１０３ａ〜１０３ｅなど）において多数のプラットフォームで単一のフォントファイルが使用されて、各機器が、提供されるフォントヒンティング、オープンタイプ特徴、および／または他の属性を使用して、明瞭で読み易いテキストを対象アプリケーションで表現するとよい。
【００１４】
同様に、クライアント機器１０３は、最終的にアプリケーション内で使用されてテキストコンテンツを表現する複数のシステムフォントを包含しうる。これらのシステムフォントは、クライアント機器１０３で機能するアプリケーションが一つ以上のシステムフォントを使用してテキストコンテンツを表現するように、クライアント機器１０３で大域的アクセスが可能であるとよい。例えば、ソフトウェア開発者その他は、アプリケーションを開発する際に、テキストコンテンツを表示する時にはこれらのシステムフォントのうち一つ以上を参照するコードを含み、対応のアプリケーションは、起動時に、クライアント機器１０３において、コード化システムフォントを包含するフォントファイルにアクセスしうる。このような例では、アプリケーションのテキストコンテンツが、こうしてこのシステムフォントでディスプレイに表現されるだろう。しかし、ソフトウェア開発者その他が、提供されるシステムフォントの一つ以外のフォントでテキストコンテンツを表現することを希望する場合には、アプリケーションにフォントファイルを提供するか、クライアント機器１０３で追加フォントファイルをダウンロードするか他の方法でインストールするようにエンドユーザに要求するであろう。例えば、ソフトウェア開発者が提供システムフォントの一つ以外のフォントでテキストコンテンツを表現したいが、プリロードされた追加フォントファイルをクライアント機器１０３が有していない場合には、テキストコンテンツが最終的に提供システムフォント（デフォルトフォントなど）の一つで表現されるか、テキストコンテンツを表現する前に追加フォントファイルをダウンロードすることなどをクライアント機器１０３が要求される。
【００１５】
開示の一つ以上の態様によれば、デフォルトシステムフォントとして提供されない一つ以上のフォントをソフトウェア開発者その他が使用してテキストコンテンツをアプリケーションで表現できるように、フォントサービスが提供される。例えば、いくつかの実施形態において、ソフトウェア開発者は、テキストコンテンツを表現する時に使用を希望するフォントを、クライアント機器１０３でプリロードされないフォントを包含するデータベースから選択し、このフォントをフォントサービスから「レンタル」する。このような実施形態では、テキストコンテンツをデフォルトシステムフォント以外のフォントで表現するため、エンドユーザが多数の追加フォントファイルを購入する、および／またはこれをクライアント機器１０３にインストールすることを必要とせずに、このフォントサービスは、特定アプリケーションのみによって使用されうる（例えばアプリケーションによりレンタルされる）、システムフォントとして含まれていない所望のフォントを開発者がコード化することを可能にする。
【００１６】
図２は、開示の一つ以上の態様による、フォントサービス（一例としてはフォントレンタルサービス）との通信状態にあるモバイル機器２０１（一例としてはクライアント機器１０３）の概略図である。いくつかの実施形態において、フォントサービス２０３は、ユーザアカウントを準備し、特権アカウント情報をソフトウェア開発キット（ＳＤＫ）２１１へ提供し、物理フォントファイルを配給し、フォント配信の前にフォントを最適化し、ＳＤＫ２１１によりフォントファイルへの特権アクセスを提供する。モバイル機器２０１は当該技術で周知のいかなるモバイル機器でもよく、いくつかの実施形態では、ＰＤＡ１０３ｂ、携帯電話１０３ｃ、ラップトップ型コンピュータ１０３ｄ、またはタブレット１０３ｅでありうる。さらに、モバイル機器２０１は、当該技術で周知の方法（無線、セルラー等）を使用してフォントサービス２０３との通信状態にあるとよく、いくつかの実施形態では、ネットワーク１００を介した通信状態でありうる。モバイル機器２０１は、オペレーティングシステム２０５、システムフォント２０７、一つ以上のアプリケーション２０９、およびディスプレイ２１７を包含しうる。アプリケーション２０９は、何らかのプログラム、ウィジェット、ブラウザ、ソフトウェア等でよく、そのコードがモバイル機器２０１に記憶され、オペレーティングシステム２０５により実行されるとディスプレイ２１７に表示される。いくつかの実施形態において、アプリケーション２０９はユーザインタフェースおよび／または他のテキストコンテンツを包含しうる。このテキストコンテンツが最終的にディスプレイ２１７で表現される時には、上記のようにコンテンツが一つ以上のシステムフォント２０７で表示されうる。これらのシステムフォント２０７は、モバイル機器２０１のメモリまたは他の記憶スペースで一つ以上のフォントファイルとして記憶される一つ以上のフォントを包含し、アプリケーションによる大域的な使用が可能である。ゆえに、利用可能なシステムフォント２０７の数は、モバイル機器２０１のスペース制約、許諾の制約、および／または他の制限ゆえに、固有の制限を受けうる。
【００１７】
開示のいくつかの実施形態によれば、モバイル機器２０１はさらに、アプリケーション２０９に内含されて（ソフトウェア開発者その他によりアプリケーション２０９のコード内にプログラムされて）、追加フォント（システムフォント２０７および／またはモバイル機器２０１で大域的に利用可能な他のフォントに追加されるフォントなど）のレンタルを補助するのに使用されうるＳＤＫ２１１を包含しうる。本書で使用される際のＳＤＫ２１１は、公開されてサードパーティのソフトウェア開発者などに利用可能であるフォントサービス２０３とのインタフェースに使用されるプログラミングインタフェース、エグザンプル、ドキュメンテーション、その他の集合体を広く指す。
【００１８】
モバイル機器２０１は、アプリケーション２０９での使用のためレンタルされたフォントを局所的に記憶するのに使用されるサンドボックス２１５およびフォント記憶手段２１３も包含する。本書で使用される際に、サンドボックス２１５は、アプリケーション２０９などの作動アプリケーションをモバイル機器２０１で機能する他のアプリケーションと分離するのに使用されるセキュリティ機構を指す。サンドボックス２１５は、ディスクおよびメモリのスクラッチスペースなど、ゲストプログラムが機能するための、厳密に管理されたリソース集合を提供しうる。サンドボックス２１５は、ネットワークアクセス、ホストシステムの点検能力、または入力機器からの読取能力などを可能にしないか、著しく制限しうる。ゆえに、サンドボックス２１５は仮想化の特定例として当業者には理解されうる。
【００１９】
本発明の一つ以上の態様において、オペレーティングシステム２０５は、サンドボックス２１５のアプリケーション２０９および／またはアプリケーション２０９の特定コンポーネントを作動させ、こうして、一つ以上のアプリケーション２０９のリソースへの無許可アクセスを防止するため（例えば、フォント記憶手段２１３に記憶されたレンタルフォントへ他のアプリケーションがアクセスするのを防止するため）アプリケーション２０９を隔離する。例えば、アプリケーション２０９による使用のためにダウンロードされたフォントは、モバイル機器２０１で機能する他のアプリケーションによるレンタルフォントへのアクセスを防止するようにサンドボックス２１５に記憶（例えば、サンドボックス２１５に設けられたフォント記憶手段２１３に記憶）されうる。したがって、フォントサービス２０３から取得された各フォントはこうして、モバイル機器２０１でのアプリケーションによる使用のため大域的な利用が可能であるというよりは、レンタルの理由である特定の使用（図の例ではアプリケーション２０９での使用）のためのみに有効である。このようにしてモバイル機器２０１で機能している他のアプリケーションからフォント記憶手段２１３を隔離することは、フォント許諾およびフォント許諾制約などのために重要でありうる。
【００２０】
図２に図示されているように、ＳＤＫ２１１はフォントサービス２０３のインタフェース２１９との通信状態にある。インタフェース２１９はＳＤＫ２１１と通信することで、図３および４を参照してより詳しく記されるように、リクエストされたフォントのダウンロードを補助する。フォントサービス２０３は、フォントライブラリ２２１、最適化ツール２２３、およびサブスクリプションデータベース２２５を付加的に包含しうる。フォントライブラリ２２１は、レンタルされて様々なアプリケーション（アプリケーション２０９など）で使用されるように利用可能な複数のフォントファイルを包含しうる。フォントライブラリ２２１は一つ以上のネットワークサーバ１０５などに記憶されうるため、フォントライブラリ２２１は、モバイル機器２０１に記憶されるシステムフォント２０７と同じスペース制約などを受けない。したがって、フォントライブラリ２２１は、システムフォント２０７よりも多くのフォントファイル（ゆえにより多くのフォントオプション）を内含しうる。
【００２１】
フォントサービス２０３は、最適化ツール２２３を包含しうる。最適化ツール２２３は、モバイル機器２０１へ送信する前にフォントライブラリ２２１からフォントファイルを最適化しうる。例えば、フォントファイルを送信するのに必要とされる帯域幅を縮小する、受信したフォントファイルをモバイル機器２０１で局所的に記憶するのに必要とされるメモリまたは他の記憶スペースを縮小する、および／またはフォントファイルを使用してモバイル機器２０１でコンテンツを表現するのに必要とされる時間を短縮するため、この最適化が実施されうる。
【００２２】
最適化ツール２２３は、何らかの所望の方法を使用してフォントファイルのサイズを縮小しうる。いくつかの実施形態において、最適化ツール２２３は、対象アプリケーション２０９のオペレーティングシステム２０５により必要とされるおよび／またはサポートされることのないフォントヒンティングを削除しうる。本書で使用される際に、フォントヒンティング（インストラクティングとしても知られる）は、ラスタ化グリッドと一致するようにアウトラインフォントの表示を調節するという数学的命令の使用を指す。例えば、低スクリーン解像度では、明瞭で読み易いテキストを作成するのにフォントヒンティングが必要である。ゆえにフォントライブラリ２２１に記憶されるフォントファイルはフォントヒンティング（インストラクティング）を包含しうるが、対象クライアント機器１０３は、このようなフォントヒンティングを必要としない、および／またはサポートしなくてもよい。対象クライアント機器１０３（モバイル機器２０１など）に使用されるオペレーティングシステム２０５および／またはディスプレイ２１７のスクリーン解像度を決定することにより、最適化ツール２２３はこうして、要求および／またはサポートされない時にフォントファイルから不要なフォントヒンティングその他を削除し、こうして、フォトファイルを送信するのに必要とされる帯域幅、フォントファイルを局所的に記憶するのに必要とされる記憶スペース（メモリ）、および／またはテキストコンテンツをモバイル機器２０１で表現するのに必要な時間を減少させうる。
【００２３】
他の実施形態において、最適化ツール２２３は、対象クライアント機器１０３のオペレーティングシステム２０５で最終的に使用されないリクエストされたフォントファイルからオープンタイプ特徴を削除することなどに使用されうる。例えば、いくつかのオペレーティングシステム２０５は、一部または全部のオープンタイプ特徴をサポートおよび／または利用しなくてもよい。このような実施形態において、最適化ツール２２３は、クライアント機器１０３（モバイル機器２０１など）へ送信される前に未使用のオープンタイプ特徴をリクエストされたフォントファイルから削除しうる。ゆえに、上に挙げたフォントヒンティングでのように、最適化ツール２２３はこうして、フォントファイルを送信するのに必要とされる帯域幅、フォントファイルを局所的に記憶するのに必要とされる記憶スペース（メモリなど）、および／またはテキストコンテンツをクライアント機器１０３で表現するのに必要な時間を減少させるため、未使用のオープンタイプ特徴を除去することにより、リクエストされたフォントファイルのサイズを縮小させうる。
【００２４】
フォントサービス２０３はさらに、サブスクリプションデータベース２２５を包含しうる。サブスクリプションデータベース２２５は、ユーザアカウント、許可等に関する情報を包含し、いくつかの実施形態では、ユーザがアクセスできるフォントのリストを包含しうる。例えば、いくつかの実施形態では、サードパーティのソフトウェア開発者その他が、自身が開発したアプリケーション（アプリケーション２０９など）で使用されるフォントライブラリ２２１からの特定フォントを許諾しうる。したがって、サブスクリプションデータベース２２５は、クライアント機器１０３（モバイル機器２０１など）がソフトウェア開発者により開発されたアプリケーション２０９を実行する時に、リクエストされたフォントを使用する許可をアプリケーション２０９が有するかどうかを判断するのにサブスクリプションデータベース２２５が参照されうるように、ソフトウェア開発者のライセンス合意に関する情報を包含しうる。こうして、いくつかの実施形態では、クライアント機器１０３（モバイル機器２０１など）がアプリケーション２０９を実行する時に、ＳＤＫ２１１はインタフェース２１９を介してフォントサービス２０３と通信してから、サブスクリプションデータベース２２５で提供される条件にしたがって許諾フォントファイルおよび／または許諾フォントファイルを使用する許可を提供しうる。しかし、リクエストされたフォントファイルへアクセスする許可をアプリケーション２０９が得ていない（例えば、ソフトウェア開発者がフォントサービス２０３についてのサブスクリプションを確立していない、および／またはリクエストされたフォントを含まないサブスクリプションを確立している）ことをサブスクリプションデータベース２２５が示す場合に、フォントサービス２０３はフォントファイルへのアクセスを拒否しうる。このような実施形態では、デフォルトシステムフォント２０７を使用してテキストコンテンツが最終的にディスプレイ２１７に表現されうる、および／または、リクエストされたフォントへアクセスする許可を得ていないことを示すエラーメッセージがユーザへ返信されうる。
【００２５】
モバイル機器２０１（または他のクライアント機器１０３）とフォントサービス２０３との相互作用は、図３および４を参照するとより容易に理解されるだろう。図３は、ＳＤＫ２１１などを介してフォントファイルがダウンロードおよびアクティブ化される時に関与する高レベルロジックの一実施形態を示す。例えば、ステップ３０１ではアプリケーションが起動を開始する。アプリケーションは何らかのプログラム、ウィジェット、ブラウザ、ソフトウェア等であり、クライアント機器１０３ａ〜１０３ｅのいずれかなどで起動されうる。いくつかの実施形態では、ステップ３０１で起動されるアプリケーションは、モバイル機器２０１で起動されるアプリケーション２０９でありうる。上記のように、起動されるアプリケーション２０９は、表示されるアプリケーション２０９内で使用されるフォントをリクエストするなどのため、フォントサービス２０３との相互作用を補助するＳＤＫ２１１を包含しうる。ステップ３０３では、起動アプリケーション２０９に対応してリクエストされたフォントがサンドボックス２１５内に記憶されたかどうかを、ＳＤＫ２１１が判断しうる。例えば、いくつかの実施形態では、フォントがフォントサービス２０３から配信されると、続くアプリケーション２０９（モバイル機器２０１で機能している他のアプリケーションによってではなく）の使用中に容易にアクセスされうるようにサンドボックス２１５に局所的に記憶されうる。したがって、ステップ３０３では、フォントが事前にアクセス（ダウンロードなど）されてサンドボックス２１５に記憶された場合に、より詳しく記すように、ＳＤＫ２１１は単純に、ステップ３０３でフォントに局所的にアクセスして、ステップ３１３へ移動する。
【００２６】
しかし、リクエストされたフォントがサンドボックス２１５に事前に記憶されていない（例えば、これが最初であれば、アプリケーション２０９が起動されることで、ＳＤＫ２１１がこのフォントを事前にリクエストしていない、および／またはＳＤＫ２１１がフォントを局所的に記憶する許可を否定されている）実施形態では、方法はステップ３０５へ進む。ステップ３０５で、ＳＤＫ２１１はフォントサービス２０３との接続を確立する。上記のように、ＳＤＫ２１１とフォントサービス２０３との間の接続は、本開示の範囲から逸脱することなく何らかの周知の方法によって達成されうる。単なる例として挙げると、起動されたアプリケーションが例えばモバイル機器２０１で機能しているアプリケーション２０９であるような実施形態では、無線インターネット接続および／またはセルラーデータ送信接続を介して、ＳＤＫ２１１はフォントサービス２０３との接続を確立しうる。さらに、図２に図示されているように、フォントサービス２０３は、ＳＤＫ２１１との接続を確立するためのインタフェース２１９を包含しうる。ステップ３０５でフォントサービス２０３への接続が確立されると、ＳＤＫ２１１は一つ以上のフォントファイルをフォントサービス２０３からリクエストしうる。例えば、ＳＤＫ２１１は、アプリケーション２０９でテキストコンテンツを表現する時に使用されるようにサードパーティのソフトウェア開発者その他がプログラムしたフォントと関連するフォントファイルをリクエストしうる。
【００２７】
ステップ３０７で、ＳＤＫ２１１（インタフェース２１９などを介して）および／またはフォントサービス２０３は、サブスクリプションデータベース２２５を参照することなどにより顧客のサブスクリプションにアクセスしうる。やはり、サブスクリプションデータベース２２５は、フォントライブラリ２２１内に記憶される一つ以上のフォントにアクセスするための一つ以上のユーザアカウントおよび／または許可に関する情報を包含しうる。いくつかの実施形態において、サブスクリプションデータベース２２５は、サードパーティである開発者のサブスクリプション、および／または一つ以上のフォントファイルにアクセスするための許可などに関する情報を包含しうる。ステップ３０９で、ＳＤＫ２１１および／またはフォントサービス２０３は、リクエストされたフォントにユーザがアクセスしたかどうかを判断する。例えば、サードパーティである開発者がそのアプリケーション２０９を実行するクライアント機器１０３による使用のため特定のフォントの使用を許諾などした場合に、ＳＤＫ２１１および／またはフォントサービス２０３は、リクエストされたフォントへのアクセスをユーザが有することを（サブスクリプションデータベース２２５などの参照により）ステップ３０９で判断しうる。しかし、リクエストされたフォントへのアクセスをユーザが有していない（リクエストされたフォントを包含するサブスクリプション合意をサードパーティの開発者が得ていない）とＳＤＫ２１１および／またはフォントサービス２０３が判断した場合には、方法はステップ３１１へ進む。
【００２８】
ステップ３１１では、リクエストされたフォントの代わりにシステムフォント２０７（デフォルトフォントなど）が使用される。こうして、クライアント機器１０３（モバイル機器２０１など）が、リクエストされたフォントへのアクセスを最終的に拒否された場合には、アプリケーション２０９でディスプレイ２１７などに表現されるテキストコンテンツが一つ以上のデフォルトシステムフォント２０７で表現されうる。いくつかの実施形態では、このデフォルトシステムフォント２０７へのフォールバックは、オペレーティングシステム２０５のアプリケーションプログラミングインタフェース（ＡＰＩ）方法を呼び出すことなどにより達成されうる。本書で使用される際に、ＡＰＩは、相互に通信するソフトウェアコンポーネントによりインタフェースとして使用されることを目的とする、ソースコードベースの仕様を指す。ＡＰＩは、ルーチン、データ構造、オブジェクトクラス、変数、その他を含みうる。他の実施形態では、表現されるコンテンツを表示するためシステムフォント２０７へアクセスするのではなく、アプリケーション２０９は、リクエストされたフォントへのアクセスをクライアント機器１０３が有していないことを示すエラーメッセージまたは他のプロンプトなどを返信しうる。
【００２９】
しかし、ステップ３０９で、リクエストされたフォントへのアクセスをユーザが有している（例えば、リクエストされたフォントがサードパーティ開発者のサブスクリプションに含まれている）とＳＤＫ２１１および／またはフォントサービス２０３が判断した場合には、方法は（図３に円「Ａ」で示されているように）図４へ進むことができる。図４は、リクエストされたフォントをフォントサービス２０３などからモバイル機器２０１へ配信するのに使用される、開示のいくつかの態様による方法の流れ図である。ステップ４０１で、ＳＤＫ２１１はフォントサービス２０３へ情報を提供する。いくつかの実施形態において、ステップ４０１でＳＤＫ２１１からフォントサービス２０３へ提供される情報は、対象アプリケーション２０９を作動させるのに使用されるオペレーティングシステム２０５のバージョン、および／または対象アプリケーション２０９を表示するのに使用されるディスプレイ２１７のスクリーン解像度のようなプラットフォーム情報などを包含しうる。
【００３０】
ステップ４０３で、ＳＤＫ２１１および／またはフォントサービス２０３は、リクエストされたフォントが事前に最適化されているかどうかを判断しうる。上記のように、フォントの最適化は、フォントファイルを送信するのに必要とされる帯域幅、フォントファイルを記憶するのに必要とされる記憶スペース（メモリなど）、および／またはディスプレイ２１７でフォントを表現するのに必要とされる時間などを減少させるため、フォントファイルのサイズを縮小することを包含しうる。いくつかの実施形態において、最適化は、対象アプリケーション２０９で作動しているクライアント機器１０３（モバイル機器２０１など）のオペレーティングシステム２０５により必要とされないフォントヒンティングおよび他の特徴などをフォントファイルから除去することを包含しうる。他の実施形態において、最適化は、対象アプリケーション２０９で作動しているクライアント機器１０３（モバイル機器２０１など）のオペレーティングシステム２０５によりサポートおよび／または要求されていないオープンタイプ特徴などを削除することを包含しうる。いくつかの実施形態において、フォントサービス２０３は、所与のオペレーティングシステム、スクリーン解像度等のため事前に最適化されているフォントファイルをフォントライブラリ２２１などに記憶しうる。こうして、ステップ４０３で、ＳＤＫ２１１および／またはフォントサービス２０３は、リクエストされたフォントファイルが対象のオペレーティングシステム２０５および／またはディスプレイ２１７のため事前に最適化されているかどうかを判断しうる。最適化されている場合に、フォントサービス２０３は、（より詳しく記すように）ステップ４０７で最適化フォントファイルを供与し、それ以上の動作は行わない。しかし、フォントファイルが事前に最適化されていない（オペレーティングシステム２０５および／またはディスプレイ２１７のために最適化されていないなど）場合には、方法はステップ４０５へ進む。
【００３１】
ステップ４０５で、ＳＤＫ２１１および／またはフォントサービス２０３は、リクエストされたフォントファイルの実時間最適化を実施する。具体的には、上記のように対象のオペレーティングシステム２０５および／またはディスプレイ２１７により要求されていないフォントヒンティング、オープンタイプ特徴、および／または他の特徴をフォントファイルから除去することなどにより、リクエストされたフォントファイルのサイズが縮小されうる。いくつかの実施形態では、フォントサービス２０３で提供される最適化ツール２２３を参照することなどにより、ステップ４０５が実施されうる。ステップ４０５で必要な実時間最適化が実施されると、方法はステップ４０７へ進み、ここでフォントサービス２０３は、対象アプリケーション２０９のテキストコンテンツを表現する際に使用するための最適化フォントファイルをＳＤＫ２１１などへ供与しうる。
【００３２】
いくつかの実施形態において、ＳＤＫ２１１はステップ４０９で、受信した最適化フォントファイルをサンドボックス２１５のフォント記憶手段２１３などに局所的に記憶しうる。これは、オペレーティングシステム２０５のＡＰＩ方法を呼び出すことなどにより達成されうる。このような実施形態において、アプリケーション２０９が後で起動される時に、始動時間および／またはテキストコンテンツなどを表現するのに必要とされる時間を短縮するため、リクエストされたフォントはサンドボックス２１５のフォント記憶手段２１３などで局所的に利用可能である（しかしモバイル機器２０１で機能している他のアプリケーションなどには利用可能でない）。
【００３３】
ステップ４０９に続いて（また円「Ｂ」で示されているように図３へ戻って）、ステップ３１３でＳＤＫ２１１は、対象アプリケーション２０９でフォントをアクティブ化する。本書で使用される際に、アクティブ化は、オペレーティングシステム２０５がリクエストされたフォントの存在を発見して、このフォントがオペレーティングシステム２０５自体にインストールされているかのようにフォントを使用しうるように、フォントの状態を変化させる動作を指す。図の実施形態において、ステップ３１３で、受信されたフォントをＳＤＫ２１１によりアクティブ化すると、（機器で作動しているすべてのアプリケーションに利用可能であるシステムフォント２０７などの大域的アクティブ化フォントと比較すると）対象アプリケーション２０９内のみでの受信フォントの使用を可能にする。いくつかの実施形態において、ステップ３１３でのフォントアクティブ化は、適時フォントアクティブ化を包含しうる。このような実施形態では、対象アプリケーション２０９がテキストコンテンツを表現するのに必要とする時点（またはほぼその時点）に、必要に応じてフォントアクティブ化が行われうる。
【００３４】
ステップ３１５では、対象アプリケーション２０９が起動を終了する。例えば、いくつかの実施形態では、アプリケーション２０９がディスプレイ２１７に表示され、そのユーザインタフェースおよび／または他のテキストコンテンツがフォントサービス２０３から受信したフォント書体で表現される。
【００３５】
本書に記載される方法および特徴はさらに、コンピュータ読取可能命令を記憶することのできるいくつかの数のコンピュータ読取可能媒体を通して実施されうる。使用されうるコンピュータ読取可能媒体の例は、ＲＡＭ、ＲＯＭ，ＥＥＰＲＯＭ、フラッシュメモリや他のメモリ技術、ＣＤ‐ＲＯＭ，ＤＶＤや他の光ディスク記憶手段、磁気カセット、磁気テープ、磁気記憶手段、その他を含む。
【００３６】
付加的または代替的に、少なくともいくつかの実施形態において、本書に記載される方法および特徴は、一つ以上の集積回路（ＩＣ）を通して実施されうる。集積回路は例えば、リードオンリメモリ（ＲＯＭ）に記憶されるプログラミング命令または他のデータにアクセスするマイクロプロセッサでありうる。このようないくつかの実施形態において、ＲＯＭは、本書で説明される方法のうち一つ以上による動作をＩＣに実施させるプログラミング命令を記憶する。少なくともいくつかの他の実施形態では、本書で説明される一つ以上の方法はＩＣに結線接続される。換言すると、ＩＣはこのような事例で、本書で説明される計算および他のオペレーションに専用のゲートおよび他のロジックを有する特定用途向け集積回路（ＡＳＩＣ）である。やはり他の実施形態において、ＩＣは、ＲＯＭまたはＲＡＭから読み取られたプログラミング命令の実行に基づいていくつかのオペレーションを実施し、他のオペレーションはＩＣのゲートおよび他のロジックに結線接続されうる。さらに、ＩＣは画像データをディスプレイバッファへ出力しうる。
【００３７】
本書で説明されるように、提供されるシステム、装置、方法、およびコンピュータ読取可能媒体は、対象のユーザ、サードパーティのソフトウェア開発者、その他に多くの長所を与えうる。例えば、提供されるシステム、装置、方法、およびコンピュータ読取可能媒体は、ソフトウェアアプリケーション２０９のユーザインタフェースおよびテキストコンテンツを設計してコード化する時に、選択可能な多様な高品質フォントを提供しうる。さらに、いくつかの実施形態において、ＳＤＫ２１１は、バックグランドスレッドでフォントをダウンロードしてメインスレッドの応答性を維持すること、アプリケーション２０９のサンドボックス２１５にフォントを記憶すること、そしてフォントをアクティブ化することなど、サードパーティの開発者のために詳細を処理する。付加的に、いくつかの実施形態では、クライアント機器１０３のためにフォントが最適化され、フォントをダウンロードするのに必要とされる帯域幅が減少され、クライアント機器１０３にフォントを記憶するのに必要とされる記憶量が減少され、および／またはテキストコンテンツをアプリケーション２０９で表現するのに必要とされる時間が短縮されるように、ＳＤＫ２１１がサポートされる。いくつかの態様によれば、ＳＤＫ２１１は、アプリケーション２０９が最初に作動する時にフォントのダウンロードを処理して、アプリケーション２０９の初回ダウンロードのサイズを縮小しうる。（アプリケーション２０９でリソースをパッケージングするのと対照的に）リソースを初回実行時にロードすることはモバイル機器２０１のアプリケーション２０９のために推奨される最善の慣行であるので、クライアント機器１０３がモバイル機器２０１などである時には、これは特に有益である。提供されるシステム、装置、方法、およびコンピュータ読取可能媒体は、本開示の利点を挙げられれば当業者には明白であるような他の多くの長所を、対象ユーザ、サードパーティのソフトウェア開発者、その他に与えうる。
【００３８】
様々な特徴を実行する特定例が説明されたが、添付の請求項に提示された開示の趣旨および範囲に内含される上述のシステムおよび方法のいくつかの変形および置換が存在することを、当業者であれば認識するだろう。付加的に、添付の請求項の範囲および趣旨に含まれる多数の他の実施形態、変更形態、変形形態を、当業者は本開示の検討により発案するだろう。
【符号の説明】
【００３９】
１００  ネットワーク
１０３ａ  パーソナルコンピュータ
１０３ｂ  携帯情報端末
１０３ｃ  携帯電話
１０３ｄ  ラップトップ型コンピュータ
１０３ｅ  タブレット
１０５ａ，ｂ  サーバ
２０１  モバイル機器
２０３  フォントサービス
２０５  オペレーティングシステム
２０７  システムフォント
２０９  アプリケーション
２１１  ＳＤＫ
２１３  フォント記憶手段
２１５  サンドボックス
２１７  ディスプレイ
２１９  インタフェース
２２１  フォントライブラリ
２２３  最適化ツール
２２５  サブスクリプションデータベース
【図１】
2014179081.tif 000003
【図２】
2014179081.tif 000004
【図３】
2014179081.tif 000005
【図４】
2014179081.tif 000006
【外国語明細書】
2014179081000001.pdf