(57)【要約】  未承認フォントのリンクを防止するための、方法、コンピュータ読取り可能な媒体、装置が開示される。フォントファイルの要求が受信されうる。前記要求が有効であるかが判断されうる。当該判断は、セキュリティートークンおよび／またはリファラ文字列に基づいて行なわれうる。前記要求が有効であると判断された場合、前記フォントファイルに含まれる少なくとも１つのグリフにおける少なくとも１つのポイントを含みうる第１のウォーターマークが、前記フォントファイルに組み込まれうる。顧客を特定する少なくとも１つのテーブルを含みうる第２のウォーターマークが、前記フォントファイルに組み込まれうる。当該フォントファイルが要求者に対して提供されうる。【選択図】図２
2013519963.tif 000002
【特許請求の範囲】
【請求項１】
フォントファイルの要求を受け取り、
前記要求が有効であるかを判断し、
前記要求が有効であると判断された場合、前記フォントファイルに含まれる少なくとも１つのグリフにおける少なくとも１つのポイントを含む第１のウォーターマークを、前記フォントファイルに組み込み、
前記フォントファイルを提供する、方法。
【請求項２】
さらに、顧客を特定する少なくとも１つのテーブルを含む第２のウォーターマークを、前記フォントファイルに組み込む、請求項１に記載の方法。
【請求項３】
前記要求が有効であるかの判断は、セキュリティトークンの評価を含む、請求項１に記載の方法。
【請求項４】
前記セキュリティトークンに基づいて前記第１のウォーターマークを組み込む、請求項３に記載の方法。
【請求項５】
前記要求が有効であるかの判断は、リファラ文字列の評価を含む、請求項１に記載の方法。
【請求項６】
さらに、ネットワークにおいて少なくとも１つのウェブサイトをサーチし、
前記フォントファイルに不正にリンクしている少なくとも１つのウェブサイトを判断する、請求項２に記載の方法。
【請求項７】
前記第１のウォーターマークおよび前記第２のウォーターマークに基づいて、前記フォントファイルに不正にリンクしている少なくとも１つのウェブサイトを判断する、請求項６に記載の方法。
【請求項８】
コンピュータ読取り可能な指令群が格納されている、少なくとも１つのコンピュータ読取り可能な媒体であって、当該指令群が少なくとも１つのコンピュータに実行されることにより、当該少なくとも１つのコンピュータに、
フォントファイルの要求を受け取らせ、
前記要求が有効であるかを判断させ、
前記要求が有効であるとの判断に応じて、前記フォントファイルに含まれる少なくとも１つのグリフにおける少なくとも１つのポイントを含む第１のウォーターマークを、前記フォントファイルに組み込ませ、
前記フォントファイルを提供させる、コンピュータ読取り可能な媒体。
【請求項９】
コンピュータに実行されることにより、当該コンピュータに、顧客を特定する少なくとも１つのテーブルを含む第２のウォーターマークを、前記フォントファイルに組み込ませる指令群がさらに格納されている、請求項８に記載のコンピュータ読取り可能な媒体。
【請求項１０】
前記要求が有効であるかの判断は、セキュリティトークンの評価を含む、請求項８に記載のコンピュータ読取り可能な媒体。
【請求項１１】
前記セキュリティトークンに基づいて前記第１のウォーターマークを組み込む、請求項１０に記載のコンピュータ読取り可能な媒体。
【請求項１２】
前記要求が有効であるかの判断は、リファラ文字列の評価を含む、請求項８に記載のコンピュータ読取り可能な媒体。
【請求項１３】
コンピュータに実行されることにより、当該コンピュータに、
ネットワークにおいて少なくとも１つのウェブサイトをサーチさせ、
前記フォントファイルに不正にリンクしている少なくとも１つのウェブサイトを判断させる指令群がさらに格納されている、請求項９に記載のコンピュータ読取り可能な媒体。
【請求項１４】
前記第１のウォーターマークおよび前記第２のウォーターマークに基づいて、前記フォントファイルに不正にリンクしている少なくとも１つのウェブサイトを判断する、請求項１３に記載のコンピュータ読取り可能な媒体。
【請求項１５】
装置であって、
プロセッサと、
コンピュータ読取り可能な指令群を格納しているメモリとを備え、
前記指令群が前記プロセッサに実行されることにより、前記装置に、
フォントファイルの要求を受け取らせ、
前記要求が有効であるかを判断させ、
前記要求が有効であるとの判断に応じて、前記フォントファイルに含まれる少なくとも１つのグリフにおける少なくとも１つのポイントを含む第１のウォーターマークを、前記フォントファイルに組み込ませ、
前記フォントファイルを提供させる、装置。
【請求項１６】
前記プロセッサに実行されることにより、前記装置に、顧客を特定する少なくとも１つのテーブルを含む第２のウォーターマークを、前記フォントファイルに組み込ませる指令群を、前記メモリがさらに格納している、請求項１５に記載の装置。
【請求項１７】
前記要求が有効であるかの判断は、セキュリティトークンの評価を含む、請求項１５に記載の装置。
【請求項１８】
前記セキュリティトークンに基づいて前記第１のウォーターマークを組み込む、請求項１７に記載の装置。
【請求項１９】
前記要求が有効であるかの判断は、リファラ文字列の評価を含む、請求項１５に記載の装置。
【請求項２０】
前記プロセッサに実行されることにより、前記装置に、
ネットワークにおいて少なくとも１つのウェブサイトをサーチさせ、
前記フォントファイルに不正にリンクしている少なくとも１つのウェブサイトを判断させる指令群を、前記メモリがさらに格納している、請求項１６に記載のコンピュータ読取り可能な媒体。
【請求項２１】
未承認フォントのリンクを防止する方法であって、
スタイルシートに含まれるフォントリンクによってトリガされる第１のフォントファイルの要求を受け取り、
前記要求に関連付けられたリファラ文字列に基づいて、前記第１フォントファイルの要求が有効なソースに由来するものであるかを判断し、
前記第１フォントファイルの要求が有効なソースに由来するものであると判断された場合、
前記第１フォントファイルの要求を、前記スタイルシートに関連付けられた顧客に対応する顧客識別子に関連付け、
前記顧客を識別するゼロ長ベクトルを含む第１のウォーターマークを前記第１のフォントファイルに組み込み、
データテーブルにおいて前記顧客を識別する少なくとも１つの値を含む第２のウォーターマークを前記第１のフォントファイルに組み込み、
ネットワークにおいて少なくとも１つの文書をサーチし、
前記少なくとも１つの文書が第２のフォントファイルにリンクしているかを判断し、
前記第２のフォントファイルを評価して、当該第２のフォントファイルが前記第１のウォーターマークまたは前記第２のウォーターマークを含んでいるかを判断し、
前記第２のフォントファイルが前記第１のウォーターマークまたは前記第２のウォーターマークを含んでいると判断された場合、前記少なくとも１つの文書が前記顧客に関連付けられているかを判断し、
前記少なくとも１つの文書が前記顧客に関連付けられていないと判断された場合、前記少なくとも１つの文書は、前記第２のフォントファイルと不正にリンクしていると判断する、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ＨＴＭＬ（ハイパーテキストマークアップ言語）やＸＭＬ（拡張可能マークアップ言語）のようなマークアップ言語で書かれた文書等の構造化文書の、書式設定と表示の制御にスタイルシート言語を使用しうる。したがってスタイルシート言語を使用すると、ＨＴＭＬまたはＸＭＬコンピュータファイルに含みうる文書の内容を、スタイルシートコンピュータファイルに保存しうる文書の書式設定と独立して定義し、記憶しうる。
【０００２】
今日では、スタイルシート言語として、ＣＳＳ（カスケーティングスタイルシート）が広く用いられている。スタイルシート言語は、ウェブページなどの構造化文書における１つ以上のスタイルパラメータを制御したり変更したりできる。例えばＣＳＳを使用すると、ウェブページ開発者は、ウェブページの背景色や背景画像を制御しうる。また画像や表などの本体要素およびパラグラフの間隔や位置を制御しうる。さらにウェブページで使用するフォントの色、サイズ、書体を制御しうる。ＣＳＳは、このようなパラメータを制御したり変更したりするための複数のコマンドを含んでいる（例えば@font-faceコマンドなどを含む）。
【０００３】
多くのウェブブラウジングコンピュータプログラムにおいて@font-faceコマンドがまだサポートされていなかった頃は、ウェブサイト開発者は、ウェブページで使用する１つ以上のフォントを選択する際に制約を受けることがあった。ウェブサイト開発者は、後にウェブページにアクセスする可能性があるユーザのコンピュータに、選択したフォントの少なくとも１つがインストールされていない可能性を考慮する必要があったからである。しかしながら現在では、ウェブサイト開発者は、ウェブページのＣＳＳコードで@font-faceコマンドを使用することによってインターネット上の他の場所に格納されたフォントにリンクを行ない、ユーザがウェブページにアクセスしたときにリンクされたフォントがそのコンピュータに予めインストールされていなくても、当該フォントを使用してそのウェブページを表示できるようにしうる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
@font-faceコマンドを上記のような機能の提供に使用できる一方、ウェブサイト開発者は、自身がオンラインで維持しているリンク可能なフォントに、一定の承認されたサーバやウェブサイトのみがアクセスできるようにすることが望まれている。例えば、リンク可能なフォントを提供する際に使用する通信量を制御するために、ウェブサイト開発者がリンク可能なフォントへのアクセスを制限することが望ましい。または、ウェブサイト開発者によるリンク可能なフォントの使用がライセンスの制約を受けている可能性があり、かかるライセンスの制約条件によって、リンク可能なフォントへのアクセスを制限するようウェブサイト開発者が求められている場合がある。
【課題を解決するための手段】
【０００５】
本明細書の開示のいくつかの態様を本質的に理解できるように、以下に簡単な概括を示す。この概括は、本明細書の開示全体にわたる総括ではなく、本明細書の開示の鍵となる要素や必須の要素を特定したり、本明細書の開示の範囲を定めたりすることは意図していない。以下の概括は、後述の説明の導入として、本明細書の開示のいくつかの概念を簡単に示すにすぎない。
【０００６】
本明細書の開示の各態様は、未承認フォントのリンクの防止に関する。未承認フォントのリンクは、例えば、開発者によってサーバに格納されている、そのリンクに対する開発者の承認が得られていないフォントを、ＣＳＳコードの@font-faceコマンドを使用してリンクすることを含みうる。
１つ以上の態様においては、フォントファイルの要求が受信されうる。続いてその要求が有効かが判断されうる。その要求が有効であると判断された場合、前記フォントファイルに含まれる少なくとも１つのグリフにおける少なくとも１つのポイントを含みうる第１のウォーターマークが、前記フォントファイルに組み込まれうる。
これに加えてあるいは代えて、顧客を特定する少なくとも１つのテーブルを含みうる第２のウォーターマークが、前記フォントファイルに組み込まれうる。次いで、当該フォントファイルを提供されうる。
１つ以上のウォータマークを組み込んだ後にフォントファイルを提供することにより、後に当該フォントファイルの保存や使用が承認されていないロケーションにおいてウォーターマークが組み込まれたフォントファイルのコピーをサーチすれば、当該フォントファイルのコピーが不正になされているかが判断されうる。続いてネットワークにおいて少なくとも１つのウェブサイトがサーチされうる。当該少なくとも１つのウェブサイトにリンクされたフォントに含まれる１つ以上のウォータマークに基づいて、上記少なくとも１つのウェブサイトがそのフォントに不正にリンクしているかが判断されうる。
【０００７】
本明細書の開示は、添付の図面に非限定的な実施例として示されている。 添付の図面において、同じ参照番号は同様の要素を示すものとする。
【図面の簡単な説明】
【０００８】
【図１】本明細書の開示に係る１つ以上の態様を実施できるシステムを例示する図である。
【図２】本明細書の開示に係る１つ以上の態様を実施できるネットワーク環境を例示する図である。
【図３】本明細書に記載の１つ以上の態様によってフォント要求がトリガや処理されうる方法を示す図である。
【図４】本明細書に記載の１つ以上の態様に係るフォント要求の例を示す図である。
【図５】本明細書に記載の１つ以上の態様によってフォント要求が処理されうる方法を示す図である。
【図６】本明細書に記載の１つ以上の態様によってフォントのリンクの有効性が評価されうる方法を示す図である。
【図７】本明細書に記載の１つ以上の態様によってセキュリティトークンが評価されうる方法を示す図である。
【発明を実施するための形態】
【０００９】
以下の様々な例示的な実施形態の説明では添付の図面を参照する。当該添付図面はその説明の一部分を成し、本明細書の開示の態様を実施できる様々な実施形態を例として示している。本明細書の開示の範囲から逸脱することなく、他の実施形態も利用でき、構造的かつ機能的な変更を行なうことができることを理解されたい。
【００１０】
図１は、本明細書の開示に係る１つ以上の態様を実施できるシステムを例示する図である。本明細書に記載の１つ以上の態様は、１つ以上の構成において、１つのコンピュータプログラムや、複数コンピュータプログラムの組合せにより実施されうる。コンピュータプログラムは、コンピュータ１００と共に使用され、および／またはメモリ１１３に格納される。
コンピュータ１００は汎用の演算装置を表す。例えば、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットワークサーバ、可搬演算装置、ＰＤＡ（携帯情報端末）、スマートフォン、携帯電話、分散コンピューティングネットワーク装置であり、本明細書に記載されているように動作し、それによって本明細書の開示における１つ以上の例示的態様に係る特殊用途の装置として構成するのに必要な、構成部品や能力を有するその他任意の装置である。
コンピュータ１００は、ＣＰＵ（中央処理装置）またはその他のプロセッサ１０３と、ＲＡＭまたはその他の揮発性メモリ１０５と、ＲＯＭまたはその他のブートメモリ１０７と、ネットワークインターフェース１０９（例えば、イーサネット（登録商標）、無線ネットワークインターフェース、モデムなど）とを備えうる。
コンピュータ１００は、これらのインターフェースを介して、広域ネットワークやローカルエリアネットワーク（例えば、インターネット、ＬＡＮ、ＷＡＮ、ＰＡＮなど）と接続しうる。また入力／出力ポート１１１（例えば、キーボード、マウス、モニタ、プリンタ、ＵＳＢポート、シリアルポート、パラレルポート、ＩＥＥＥ１３９４／Firewireポートなど）、および不揮発性メモリ１１３（例えば固定ディスク、光ディスク、ホログラフィック記憶装置、可換型記憶媒体、フラッシュドライブなど）にも接続しうる。
コンピュータ１００は、メモリ１１３に様々なプログラム、命令、アプリケーション、データを格納しうる。例えば、オペレーティングシステムソフトウェア１１５、フォントサーブレット１１７（例えば１つ以上のプラグインや、本明細書に記載のその他のフォントソフトウェア）、データ１１９（例えば、文書、ファイル、および本明細書に記載のその他のデータ）、フォントデータベース１２１（例えば、１つ以上のフォントファイルや、本明細書に記載のその他のファイル）が含まれるが、これらに限定されることはない。
【００１１】
本明細書の開示における１つ以上の態様は、コンピュータが使用可能なデータや、コンピュータが実行可能な命令により実施されうる。例えば、ディスプレイやプリンタなどの装置で出力する１つ以上のフォントをレンダリングするために、１つ以上のコンピュータまたは他の装置により実行される１つ以上のプログラムモジュールが挙げられる。
一般に、プログラムモジュールは、コンピュータまたはその他のデータ処理装置内にあるプロセッサで実行されるときに特定のタスクを実行、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
コンピュータが実行可能な命令は、ハードディスク、光ディスク、可換型記憶媒体、半導体メモリ、ＲＡＭなどのコンピュータ可読媒体上に格納しうる。
上記プログラムモジュールの機能は、様々な実施形態における要求に応じて組み合わせ、または分散させうることは言うまでもない。また上記機能の少なくとも一部は、集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのファームウェアまたはハードウェアの均等物により実施されうる。
特定のデータ構造は、本明細書の開示における１つ以上の態様をより効果的に実施するために使用されうる。かかるデータ構造は、本明細書に記載のコンピュータが実行可能な命令およびコンピュータが使用可能なデータの範囲内となるように構成される。
【００１２】
図２は、本明細書の開示における１つ以上の態様を実施できるネットワーク環境２００を例示する図である。ネットワーク環境２００は、ウェブ開発者コンピュータ２０５、ウェブユーザコンピュータ２１０、ウェブドメインサーバ２２０、サーブレットホスト２２５、フォントサーバ２３０などの、１つ以上のコンピュータを含みうる。さらに、ネットワーク環境２００は、１つ以上のローカルエリアネットワーク（ＬＡＮ）および／または１つ以上の広域ネットワーク（ＷＡＮ；例えばインターネット２１５）を含みうる。
【００１３】
１つ以上の態様において、ウェブ開発者コンピュータ２０５は、ウェブサイト開発者またはその他のユーザが、ウェブサイトやＣＳＳコードの設計／開発の際に使用するコンピュータでよい。ウェブユーザコンピュータ２１０は、ウェブユーザがインターネット２１５で１つ以上のウェブサイトを閲覧する際に使用するコンピュータでよい。
ウェブドメインサーバ２２０は、１つ以上のウェブサイトやＣＳＳコードが格納されたコンピュータ、および／またはリモート要求に応答して１つ以上のウェブサイトやＣＳＳコードを提供するコンピュータでよい。
サーブレットホスト２２５は、フォント要求処理やフォント提供を行なう１つ以上のコンピュータプログラムやスクリプトが、本明細書に詳細に記載された１つ以上の態様に従って格納されたコンピュータでよい。
フォントサーバ２３０は、１つ以上のフォントや１つ以上のフォントデータベースが、本明細書に詳細に記載の１つ以上の態様に従って格納されたコンピュータでよい。
【００１４】
例えば、ウェブサイト開発者は、ＣＳＳコードを含んだウェブサイトの設計・開発にウェブ開発者コンピュータ２０５を使用しうる。続いてウェブサイト開発者は、そのウェブサイトを、インターネット２１５を介してウェブドメインサーバ２２０にアップロードしうる。
これに加えてあるいは代えて、ウェブサイト開発者またはその他のユーザは、ドメインサーバ２２０上で、ウェブ開発者コンピュータ２０５からリモートでウェブサイトを開発しうる。続いてウェブユーザは、ウェブユーザコンピュータ２１０を使用して上記ウェブサイトにインターネット２１５を介してアクセスしうる。
ウェブサイトにアクセスし、そこに含まれるＣＳＳコードを実行する際に、ユーザはフォント要求をトリガしうる。フォント要求をトリガした結果、ウェブユーザコンピュータ２１０および／またはウェブドメインサーバ２２０は、フォント要求をサーブレットホスト２２５に送信しうる。フォント要求は、フォント要求サーバアドレス、顧客識別子、セキュリティトークン、フォント名、フォントファイル名、および／またはそれらの組合せを含みうる。
フォント要求の受信に応答して、サーブレットホスト２２５は、そのフォント要求を処理しうる。この処理は、フォント要求の構文解析と、フォント要求サーバアドレス、顧客識別子、セキュリティトークン、および／またはフォント名またはフォントファイル名の評価を含みうる。
サーブレットホスト２２５が、フォント要求は無効または未承認であると判断した場合、サーブレットホスト２２５はそれ以上動作する必要はない。あるいはフォント要求を拒否するメッセージまたはその他いくつかの同様の応答を送信してもよい。
一方、サーブレットホスト２２５が、フォント要求は有効または承認済みであると判断した場合は、サーブレットホスト２２５は、フォント要求に対応する１つ以上のフォントをフォントサーバ２３０から要求しうる。当該要求に応答して、フォントサーバ２３０は、サーブレットホスト２２５、ウェブドメインサーバ２２０、および／またはウェブユーザコンピュータ２１０に、フォント要求に対応する１つ以上のフォントを送信しうる。
これに加えてあるいは代えて、フォントサーバ２３０からのフォント要求に対応する１つ以上のフォントの受信に応答して、サーブレットホスト２２５は、ウェブドメインサーバ２２０および／またはウェブユーザコンピュータ２１０に、フォント要求に対応する１つ以上のフォントを送信しうる。続いてフォント要求に対応する１つ以上のフォントの受信に応答して、ウェブユーザコンピュータ２１０は、上記１つ以上の受信したフォントを用いてウェブサイトを表示および／または印刷しうる。
【００１５】
ネットワーク環境２００は、各種機能を実行するよう構成された各種コンピュータを含んでいると説明したが、同じ機能を提供するのに単独または組み合わせて使用できる適宜の数のコンピュータを備えるように変更できることは言うまでもない。
例えば、説明した全ての機能を実行するために単独のコンピュータを使用することも、１人以上のユーザが、１つ以上の端末やユーザインターフェースを介して当該単独のコンピュータと相互作用することもできる。
あるいは、ウェブ開発者コンピュータ２０５およびウェブユーザコンピュータ２１０の全ての機能の実行に第１のコンピュータを使用し、ウェブドメインサーバ２２０、サーブレットホスト２２５、およびフォントサーバ２３０の全ての機能の実行に第２のコンピュータを使用する構成とすることもできる。
【００１６】
図３は、本明細書に記載の１つ以上の態様に従ってフォント要求がトリガおよび／または処理されうる方法を示す図である。１つ以上の態様によれば、図３に示す方法、その変形態、本明細書に記載のその他任意の方法の少なくとも１つは、図２に示すコンピュータ、サーバ、およびネットワークの少なくとも１つにより実施されうる。したがって１つ以上の構成で、図３の方法をネットワーク環境２００で実施しうる。
【００１７】
ステップ３０５で、開発者はウェブサイトのためのＣＳＳコードを作成しうる。ＣＳＳコードは、@font-faceコマンドなどのフォント要求トリガを含みうる。例えば、開発者は、コードブロック４００などのウェブサイトコードブロックを作成することができる（図４を参照して詳細に後述）。ウェブサイトコードブロック４００は、@font-faceコマンドの使用を含みうる。
【００１８】
ステップ３１０において、開発者は、ウェブサイトにＣＳＳコードを組み込みうる。例えば、開発者は、ウェブサイトの少なくとも一部を形成できるその他のコンピュータコードの内部に、ウェブサイトコードブロック４００（図４）を組み込むことができる。
これに加えてあるいは代えて、開発者は、そのウェブサイトの少なくとも一部のホストとして動作しうるウェブサーバに、ウェブサイトコードブロック４００（図４）をアップロードすることもできる。
【００１９】
ステップ３１２において、開発者は、ＣＳＳコードが組み込まれたウェブサイトを公開しうる。例えば、開発者は、公開中すなわち「生きている」ウェブサイトの一部分をウェブサイトコードブロック４００内のＣＳＳコードが形成するように、そのウェブサイトのホストとして動作するウェブサーバ上の設定を変更しうる。この例では、上記ウェブサイトを、インターネットまたは民間企業イントラネットなどの別のネットワーク上で公開しうる。
【００２０】
ステップ３１５において、ユーザは上記ウェブサイトにアクセスし、もってフォント要求をトリガしうる。例えば、ユーザは、ウェブサイトへのアクセスに、コンピュータおよびAPPLE SAFARI（登録商標）やGOOGLE CHROME（登録商標）等のウェブブラウザを使用しうる。当該ウェブブラウザは、ウェブサイトのコンピュータコードをダウンロードおよび／または実行しうる。
ウェブサイトのコンピュータコードを実行する際、ユーザのウェブブラウザおよび／またはユーザのコンピュータは、ウェブサイトのコンピュータコードに含みうる@font-faceコマンドを処理しうる。
@font-faceコマンドを処理する際に、ユーザのウェブブラウザおよび／またはコンピュータは、@font-faceコマンドに含まれているフォントサーバアドレスによって識別できるフォントサーバから、１つ以上のフォントを要求しうる。
フォントサーバから当該要求をする際には、ユーザのウェブブラウザおよび／またはコンピュータは、顧客識別子、セキュリティトークン、フォント名、フォントファイル名の少なくとも１つを、フォントサーバに対して送信しうる。これらもまた@font-faceコマンドに含みうる。
【００２１】
ステップ３２０において、サーブレットが、フォント要求を受信し構文解析しうる。例えば、サーブレットが、上記の例におけるユーザのウェブブラウザおよび／またはコンピュータから要求を受信することができ、その要求を構文解析しうる。したがって、受信した要求が例えば「GET web-font. company. com / SF01534-57-23349 / someFont. trf」などのハイパーテキスト転送プロトコル（ＨＴＴＰ）ＧＥＴ要求だった場合、サーブレットは、受信した要求を３つの構成要素を構文解析して、フォントサーバアドレス（この例では「web-font. company. com」）、顧客識別子および／またはセキュリティトークン（この例では「SF01534-57-23349」）、およびフォント名および／またはフォントファイル名（この例では「someFont. trf」）に変換しうる。
１つ以上の態様においては、かかる構文解析は、正規表現、文字列および／またはテキストのマッチングなどを使用して行ないうる。
【００２２】
ステップ３２５において、サーブレットは、フォントサーバに問合せ、および／または要求されたフォントを提供しうる。例えば、フォント要求を受信および／または構文解析した後、サーブレットは、フォントサーバに問い合わせて要求中のフォントを取得し、次いで取得した要求フォントを提供しうる。
より具体的には、サーブレットは、上述した構文解析の結果に従ってフォントサーバに問合せをし、構文解析した顧客識別子および／またはセキュリティトークンをフォントサーバに提供しうる。これに加えてあるいは代えて、構文解析したフォント名および／またはフォントファイル名をフォントサーバに提供しうる。続いてかかる問合せに応答して、サーブレットは、要求中のフォントをフォントサーバから受信することができ、それをユーザのウェブブラウザおよび／またはコンピュータに送信および／または提供しうる。
【００２３】
詳細に後述する１つ以上の態様において、サーブレットは要求されたフォントを送信および／または提供する前に、その要求が有効かを判断しうる。サーブレットは、要求されたフォントを送信および／または提供する前に、セキュリティトークンおよび／またはリファラ文字列を評価しうる。これに加えてあるいは代えて、サーブレットは、要求されたフォントを送信および／または提供する前に、要求されたフォントに１つ以上のウォータマークを組み込みうる。この処理の様々な態様については、図５を参照しつつ詳細に後述する。
【００２４】
図４は、本明細書に記載の１つ以上の態様に係るフォント要求を例示する図である。本明細書で詳細に説明するように、開発者はサンプルのウェブサイトコードブロック４００を作成しうる。作成されたサンプルのウェブサイトコードブロック４００は、@font-faceコマンドの使用を含みうる。このサンプルウェブサイトコードブロック４００がウェブブラウザおよび／またはコンピュータでダウンロードおよび／または実行されると、フォント要求を生成しうる。当該フォント要求は、@font-faceコマンドおよび／またはそのコマンドに関連した１つ以上の引数に基づいている。
図４にサンプルウェブサイトコードブロック４００として例示された特定のＣＳＳコードでは、フォント要求を、ＣＳＳコード（すなわち「url（web-font. company. com / SF01534-57-23349 / someFont. trf）」）によって指定されたソース（すなわち「src」）に基づいて生成しうる。
【００２５】
図５は、本明細書に記載の１つ以上の態様に係る、フォント要求が処理されうる方法を示す図である。図５に示す方法を実行することによって、フォント開発者、管理者、またはライセンシーが１つ以上のウォータマークを、要求されたフォントに組み込みうる。
このウォータマークは、他者のウェブサイトにおけるフォントが、これらフォント開発者、管理者、またはライセンシーのウェブサイトから不正に取得されたものであるかを、これらの者が後に判断することを可能にしうる。すなわちウォータマークは、フォントファイルの使用またはコピーが承認されているか否かを示しうる。
１つ以上の態様において、図２に示すコンピュータ、サーバ、ネットワークの少なくとも１つにより、図５に示す方法、その任意の変形態、本明細書に記載のその他任意の方法の少なくとも１つを実施しうる。したがって１つ以上の構成において、ネットワーク環境２００で図５の方法を実施しうる。
【００２６】
ステップ５０５においては、フォントファイルの要求を受信しうる。例えば、サーブレットが、フォントファイルの要求をユーザのウェブブラウザおよび／またはコンピュータから受信しうる。フォントファイルの要求は、サンプルウェブサイトコードブロック４００など、ユーザのウェブブラウザおよび／またはコンピュータによってダウンロードおよび／または実行されるＣＳＳコードを基にしうる。さらに上記フォントファイルの要求は、フォント要求サーバアドレス、顧客識別子、セキュリティトークン、フォント名、フォントファイル名の少なくとも１つを含みうる。
【００２７】
ステップ５１０においては、上記フォントファイルの要求が有効かを判断しうる。例えば、サーブレットは、受信したフォントファイルの要求を構文解析および／または評価することができ、その受信した要求が有効かをの判断で、その受信した要求の１つ以上の態様を考慮しうる。
【００２８】
１つ以上の態様において、フォントファイルの要求が有効かをの判断を、セキュリティトークンの評価に基づいて行ないうる。
図７は、本明細書に記載の１つ以上の態様に係る、セキュリティトークンが評価されうる方法を示す。したがってステップ５１０の実行は、図７に示す方法におけるステップの１つ以上の実行を含みうる。
例えば、ステップ７０５において、サーブレットは、受信したフォントファイルの要求を構文解析しうる。
ステップ７１０においては、受信した要求から顧客識別子および／またはセキュリティトークンを抽出しうる。
その後ステップ７１５において、抽出した顧客識別子および／またはセキュリティトークンを、１つ以上の有効な顧客識別子および／またはセキュリティトークンのリストと比較しうる。
ステップ７２０においては、抽出した顧客識別子および／またはセキュリティトークンが、リスト内にある有効な顧客識別子および／またはセキュリティトークンの１つ以上と一致するかを判断しうる。
抽出した顧客識別子および／またはセキュリティトークンが、有効な顧客識別子および／またはセキュリティトークンの１つ以上と一致すると判断された場合、フォントファイルの要求は有効であると判断しうる。一方、抽出した顧客識別子および／またはセキュリティトークンが、有効な顧客識別子および／またはセキュリティトークンと一致しないと判断されると、フォントファイルの要求は無効であると判断しうる。
【００２９】
例えば、図４のサンプルウェブサイトコードブロック４００では、受信したフォントファイル要求の対応する顧客識別子および／またはセキュリティトークンは、「SF01534-57-23349」を含みうる。サーブレットは、この顧客識別子および／またはセキュリティトークンを構文解析および／または抽出することができ、続いてその有効性を判断するために、１つ以上の有効な顧客識別子および／またはセキュリティトークンのリストと比較しうる。
【００３０】
１つ以上の追加的態様においては、フォントファイルの要求が有効かをの判断は、リファラ文字列の評価に基づいて行ないうる。例えば、受信するフォントファイルの要求を、ＨＴＴＰ要求を介して作成することができ、ＨＴＴＰ要求は、リファラ文字列および／またはＨＴＴＰ要求のヘッダフィールドにあるリファラを特定しうる。
リファラを特定するリファラ文字列および／またはＨＴＴＰ要求のヘッダフィールドは、要求の発信源であるコンピュータ、サーバ、および／またはウェブサイトのアドレスを含みうる。したがって、受信した要求からリファラ文字列を抽出することができ、続いてそのリファラ文字列を、１つ以上の有効なリファラ文字列のリストと比較しうる。
抽出したリファラ文字列が、有効なリファラ文字列の１つまたは複数と一致すると判断された場合、フォントファイルの要求は有効であると判断しうる。一方、抽出したリファラ文字列が、有効なリファラ文字列と一致しないと判断された場合、フォントファイルの要求は無効であると判断しうる。
【００３１】
少なくとも１つの構成において、ステップ５１０におけるフォントファイルの要求が有効であるかの判断を、セキュリティトークンの評価とリファラ文字列の評価の両方に基づいて行なうことができる。
例えば、本明細書の開示における１つ以上の態様を実施するシステムが、図７を参照して上記に詳細に説明したように、顧客識別子および／またはセキュリティトークン（例えば構文解析し、受信したフォントファイルの要求から抽出した顧客識別子および／またはセキュリティトークン）を評価しうる。
さらに上記システムは、やはり上述したように、リファラ文字列（例えば、受信したフォントファイルの要求と関連付けられているリファラ文字列）を評価することもできる。上記システムは、抽出した顧客識別子および／またはセキュリティトークンが有効な顧客識別子および／またはセキュリティトークンの１つ以上と一致しているとの判断と、抽出したリファラ文字列が有効なリファラ文字列の１つまたは複数と一致しているとの判断との両方に基づいて、フォントファイルの要求が有効であると判断しうる。
このようにして、フォントファイルの要求が有効かを判断する際に、顧客識別子および／またはセキュリティトークンをリファラ文字列と関連付けることができる。
【００３２】
ステップ５１２において、フォントファイルの要求が有効であると判断された場合、フォントファイルのウォータマーク組込み版がキャッシュされているかを判断しうる。１つ以上の構成では、フォントファイルの同様の要求が事前に受信され、そのフォントファイルに１つ以上のウォータマークが組み込まれる。そのウォータマーク入りフォントファイルがメモリに格納された場合、そのフォントファイルのウォータマーク組込み版をキャッシュしうる。
１つ以上のウォータマーク入りフォントファイルをキャッシュすることによって、本明細書の開示における１つ以上の態様を実施するシステムは、場合により処理リソースを節約しうる。
例えば、受信したフォントファイルの要求が有効であるとサーブレットが判断した場合、そのフォントファイルのウォータマーク組込み版がキャッシュされているかをサーブレットが判断することができる。その判断は、同一の顧客識別子および／またはセキュリティトークンを使用して事前に要求されウォータマークを組み込まれた可能性がある同一版のフォントファイルがメモリに格納されているかを判断することによって行なう。
フォントファイルのウォータマーク組込み版がキャッシュされていないとサーブレットが判断した場合、上記方法はステップ５１５に進み、１つ以上のウォータマークをフォントファイルに組み込みうる（詳細は後述）。
一方、フォントファイルのウォータマーク組込み版がキャッシュされているとサーブレットが判断した場合、上記方法はステップ５２２に進み、そのフォントファイルのウォータマーク組込み版をメモリから検索しうる（やはり詳細は後述）。
【００３３】
ステップ５１５において、フォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合、第１のウォータマークをフォントファイルに組み込みうる。１つ以上の態様において、フォントファイルに含まれている１つ以上のグリフに１つ以上のシングルポイントをインジェクトすることによって、第１のウォータマークをフォントファイルに組み込みうる。
これに加えてあるいは代えて、インジェクトする１つ以上のシングルポイントを、顧客識別子および／またはセキュリティトークンに基づいたパターンで１つ以上のグリフに挿入することもできる。
【００３４】
例えば、フォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合、サーブレットは要求されたフォントファイルを取得しうる。続いてフォントファイルに含まれている１つ以上のグリフに１つ以上のシングルポイントをインジェクトすることによって、第１のウォータマークをフォントファイルに組み込みうる。
１つ以上のグリフに１つ以上のシングルポイントをインジェクトするという処理は、１つ以上のゼロ長ベクトル（例えば同じ点で開始、終了するベクトル）をサーブレットにより定められる座標に含むように、フォントファイルのデータを加工する処理を含みうる。
１つ以上の構成においては、このようなシングルポイントすなわちゼロ長ベクトルは、１つ以上のグリフ内にある他のどの点にも接続されないようにできる。したがって、フォントファイルに含まれるフォントの１つ以上のグリフが、表示および／または出力のためにレンダリングされると、当該シングルポイントに対応するデータがフォントファイルに含まれていても、当該シングルポイントはレンダリングされないようにできる。
すなわち、コンピュータはフォントを画する線を描くことによってフォントをレンダリングできるので、線を定義しない上記のシングルポイントはレンダリングされないようにできる。あるいはレンダリングに供されない点であるとレンダリング装置により解釈されうる。
【００３５】
あるいは、サーブレットは、顧客識別子および／またはセキュリティトークンに基づくパターンにおいてフォントファイルに含まれる１つ以上のグリフに１つ以上のシングルポイントを挿入しうる。ここで、上記顧客識別子および／またはセキュリティトークンは、フォントファイルの要求において受信されうる、および／またはフォントファイルの要求から抽出されうる。
この例では、サーブレットは、顧客識別子および／またはセキュリティトークン（例えば論理和、論理積、チェックサム、ＭＤ５ハッシュなど）に基づいて値を算出、続いてこの算出値に基づいたパターンにおいてフォントファイルに含まれる１つ以上のグリフに、１つ以上のシングルポイントを挿入しうる。
したがってこの例では、上記算出値により、１つ以上のシングルポイントを挿入する量および／または場所を定めうる。例えば、特定の顧客識別子および／またはセキュリティトークンに基づいて、オフセット値を定めうる。オフセット値は、例えば、モジュロ演算を使用して、特定の顧客識別子および／またはセキュリティトークンに基づいて算出された整数であってよい。
オフセット値を定めたら、フォントファイルのグリフテーブル内における特定のグリフの所定の位置に、ポイントを挿入しうる。具体的には、グリフテーブル内におけるｎ番目のグリフであるグリフの所定の位置にポイントを挿入しうる。ここでｎは、定められたオフセット値を表す。
グリフテーブルに含まれているグリフがｎ個未満の場合、サーブレットは、グリフテーブル中の最後のグリフをカウントした後で１番目のグリフに戻りうる。シングルポイントを挿入するｎ番目のグリフに達するまでこれを繰り返す。
これに加わる、あるいは代わる１つ以上の構成においては、グリフテーブル内のｎ番目のグリフに複数のシングルポイントを挿入してもよい。これに加えてあるいは代えて、その他の同様の計算に基づいてｎ番目のグリフ以外の追加のグリフに１つ以上のシングルポイントを挿入してもよい。
【００３６】
ステップ５２０においては、第２のウォータマークをフォントファイルに組み込みうる。１つ以上の態様において、フォントファイルに含まれる１つ以上のデータ構造に１つ以上のテーブルを挿入することによって、第２のウォータマークをフォントファイルに組み込みうる。
これに加えてあるいは代えて、フォントファイルの要求が有効であると判断され、かつフォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合に、第２のウォータマークをフォントファイルに組み込みうる。
【００３７】
例えば、フォントファイルは、OpenTypeやTrueTypeのデータ構造のような、１つ以上のデータ構造を含みうる。フォントベンダは、顧客識別子やセキュリティトークンなどのカスタムメタデータを格納するために、かかるデータ構造に１つ以上のテーブルを含めることができる。
したがって一例として、フォントファイルに含まれている１つ以上のデータ構造に１つ以上のテーブルを挿入することによって、第２のウォータマークをフォントファイルに組み込みうる。
ここで、上記１つ以上のテーブルは、１つ以上の顧客識別子および／またはセキュリティトークンを格納しうる。少なくとも１つの構成において、フォントファイルに含まれる１つ以上のデータ構造の１つ以上のテーブルに挿入された１つ以上の顧客識別子は、フォントファイルの要求で受信した、および／またはフォントファイルの要求から抽出した顧客識別子および／またはセキュリティトークンを含みうる。
これに加えてあるいは代えて、カスタムメタデータを格納する１つ以上のデータ構造における１つ以上のテーブルにより、図６に示す方法の１つ以上のステップの実行を可能にしうる。
これに加えてあるいは代えて、上記テーブルは、フォントファイルに含まれている１つ以上のグリフのレンダリングに影響を及ぼさなくともよい。
【００３８】
ステップ５２２においては、フォントファイルのウォータマーク組込み版がキャッシュされていると判断された場合、フォントファイルのウォータマーク組込み版を検索しうる。例えば、フォントファイルのウォータマーク組込み版がキャッシュされていると判断された場合、サーブレットは、事前にウォータマークが組み込まれたフォントファイルを格納しているメモリから、フォントファイルのウォータマーク組込み版の位置を特定し、検索しうる。
【００３９】
ステップ５２５においては、フォントファイルを提供しうる。例えば、フォントファイルの要求が有効であると判断され、かつフォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合、かつ第１のウォータマークおよび／または第２のウォータマークがフォントファイルに組み込まれた後に、サーブレットは、フォントファイルを要求したユーザ、ウェブサイト、コンピュータの少なくとも１つへ、フォントファイルを送信しうる。
あるいは、フォントファイルの要求が有効であると判断され、かつフォントファイルのウォータマーク組込み版がキャッシュされていると判断された場合、かつフォントファイルのウォータマーク組込み版が受信された後に、サーブレットは、フォントファイルを要求したユーザ、ウェブサイト、コンピュータの少なくとも１つへ、フォントファイルを送信しうる。
【００４０】
図６は、本明細書に記載の１つ以上の態様に係る、フォントのリンクの有効性が評価されうる方法を示す。図６に示す方法を実行することは、フォント開発者、フォントホストや、承認されたフォントユーザが、承認の無い１つ以上のフォントに特定のウェブサイトがリンクしているかを判断することを可能にしうる点において望ましい。
図２に示すコンピュータ、サーバ、ネットワークの少なくとも１つにより、図６に示す方法、その任意の変形態、本明細書に記載のその他任意の方法の少なくとも１つを実施しうる。したがって１つ以上の構成において、ネットワーク環境２００で図６の方法を実施しうる。
【００４１】
ステップ６０５において、ネットワークから少なくとも１つのウェブサイトをサーチしうる。例えば、サーブレットホスト２２５が、インターネット２１５から１つ以上のウェブサイトをサーチしうる。本明細書に詳細に記載の評価のために、１つのウェブサイトを、インターネット２１５上の１つ以上のウェブサイトから繰り返しおよび／またはランダムに選択しうる。
【００４２】
ステップ６１０において、サーチで位置を特定した少なくとも１つのウェブサイトがＣＳＳコードを含むかを判断しうる。例えば、サーブレットホスト２２５が、選択したウェブサイトがＣＳＳコードを含むかを判断しうる。
選択したウェブサイトがＣＳＳコードを含まないと判断した場合、上記方法は終了しうる。一方、選択したウェブサイトがＣＳＳコードを含むと判断した場合、上記方法はステップ６１５に進みうる。
【００４３】
ステップ６１５において、サーチで位置を特定した少なくとも１つのウェブサイトのＣＳＳコードが@font-faceコマンドを含むかを判断しうる。例えば、サーブレットホスト２２５が、選択したウェブサイトのＣＳＳコードが@font-faceコマンドを含むかを判断しうる。
選択したウェブサイトのＣＳＳコードが@font-faceコマンドを含まないと判断した場合、上記方法は終了しうる。一方、選択したウェブサイトのＣＳＳコードが@font-faceコマンドを含むと判断した場合、上記方法はステップ６２０に進みうる。
【００４４】
ステップ６２０において、サーチで位置を特定した少なくとも１つのウェブサイトのＣＳＳコードによってリンクされた１つ以上のフォントが、それぞれ１つ以上のウォータマークを含むかを判断しうる。例えば、サーブレットホスト２２５が、選択したウェブサイトのＣＳＳコード（例えば@font-faceコマンド）によってリンクされた１つ以上のフォントごとに、１つ以上の要求を生成および／または送信しうる。
かかる要求に応答して少なくとも１つのフォントファイルを受信すると、サーブレットホスト２２５は、受信したフォントファイルを評価して、それが１つ以上のウォータマークを含んでいるかを判断しうる。
したがってサーブレットホスト２２５は、受信したフォントファイルが第１のウォータマークを含んでいるかを判断することができる。そのウォータマークは、フォントファイルに含まれている１つ以上のグリフ内にある１つ以上のシングルポイントの形態であってもよい。
より具体的には、未接続のシングルポイントを求めて、受信したフォントファイルに含まれている１つ以上のグリフを定義するデータをスキャンすることによって、サーブレットホスト２２５は、受信したフォントファイルが第１のウォータマークを含んでいるかを判断しうる。フォントファイルは一般に未接続のシングルポイントを含んでいないと言えるので、サーブレットホスト２２５は、受信したフォントファイル内で検出した任意の未接続のシングルポイントまたはゼロ長のベクトルを、第１のウォータマークの一部分であるとみなすことができる。
これに加えてあるいは代えて、サーブレットホスト２２５は、受信したフォントファイルが第２のウォータマークを含んでいるかを判断しうる。そのウォータマークは、受信したフォントファイルの１つ以上のデータ構造に格納された１つ以上のテーブルの形態であってもよい。
【００４５】
ステップ６２５において、サーチで位置を特定された少なくとも１つのウェブサイトが、ＣＳＳコードによってリンクされた１つ以上のフォントに不正にリンクしているかを判断しうる。例えば、サーブレットホスト２２５は、受信したフォントファイルに含まれている第１のウォータマークに基づいて、受信したフォントファイル用の顧客識別子および／またはセキュリティトークンを計算および／または決定しうる。
これに加えてあるいは代えて、サーブレットホスト２２５は、受信したフォントファイルに含まれている第２のウォータマークに基づいて、受信したフォントファイル用の顧客識別子および／またはセキュリティトークンを計算および／または決定することもできる。続いてサーブレット２２５は、計算および／または決定した顧客識別子および／またはセキュリティトークンが、選択したウェブサイトに対応しているかを判断しうる。
【００４６】
例えば、サーブレット２２５は、選択したウェブサイトの識別情報（例えばウェブアドレス）と、格納されている計算および／または決定した顧客識別子および／またはセキュリティトークンに対応する識別情報（受信したフォントファイルに含まれる１つ以上のフォントにリンクするように承認された１つ以上のウェブアドレスのリストなど）を比較しうる。
ここで上記リストは、サーブレット２２５によってアクセス可能なデータベースに格納しうる。かかる比較に基づいてサーブレット２２５は、選択したウェブサイトの識別情報が、格納されている計算および／または決定した顧客識別子および／またはセキュリティトークンに対応する識別情報と一致しないことを判断しうる。その場合、選択したウェブサイトが受信したフォントファイルに不正にリンクしていると判断しうる。これに加えてあるいは代えて、さらなる検討のために、選択したウェブサイトにフラグを立てうる。
一方、サーブレット２２５は、選択したウェブサイト識別情報が、格納されている計算および／または決定した顧客識別子および／またはセキュリティトークンに対応する識別情報と一致すると判断できた場合、選択したウェブサイトが受信したフォントファイルに適切にリンクしていると判断しうる。
【００４７】
本明細書に記載の様々な態様を、方法、装置、またはコンピュータ実行可能な命令を格納する１つ以上のコンピュータ読取り可能な媒体として、必要に応じて実施できることは、当業者にとって明らかであろう。したがってこれらの態様は、ハードウェアのみからなる実施形態、ソフトウェアのみからなる実施形態、またはソフトウェアとハードウェアの態様を組み合わせた実施形態をとることができる。さらに、本明細書に記載のデータまたはイベントを表す様々な信号は、金属線、光ファイバ、および／または無線伝送媒体（例えば空気や空間）などの信号伝達媒体を介して伝わる光および／または電磁波の形で、発信源と送信先の間を伝達しうる。
【００４８】
発明の各種態様を、実施形態の例示を通じて説明してきたが、本明細書の開示に基づいて、添付した特許請求の範囲の記載から逸脱しない範囲において他の実施形態、変形や変更が可能であることは、当業者にとって明らかである。例えば、図面において例示した各ステップは、図示した順序以外でも実行されうる。また図示した少なくとも１つのステップは、発明の態様によっては任意に実行されるものとしてよい。
【図１】
2013519963.tif 000003
【図２】
2013519963.tif 000004
【図３】
2013519963.tif 000005
【図４】
2013519963.tif 000006
【図５】
2013519963.tif 000007
【図６】
2013519963.tif 000008
【図７】
2013519963.tif 000009
【国際調査報告】
2013519963.tif 000010