【文献】
山田晃輔,パート4 有名書体の使い方 ブラウザの分岐などの煩わしさを解消するWebfontsサービスの解説,Web Designing,(株)毎日コミュニケーションズ,2010年 8月 1日,2010年8月号,p.90-93
(58)【調査した分野】(Int.Cl.,DB名)
コンピュータ読取り可能な指令群を格納している、少なくとも1つの非一時的かつコンピュータ読取り可能な媒体であって、当該指令群が少なくとも1つのコンピュータに実行されることにより、当該少なくとも1つのコンピュータに、
フォントファイルの要求を受け取らせ、
前記要求が有効であるかを判断させ、
前記要求が有効であるとの判断に応じて、少なくとも1つのゼロ長ベクトルを前記フォントファイルにおける少なくとも1つの場所に少なくとも挿入することによって、第1のウォーターマークを前記フォントファイルに組み込ませ、
前記フォントファイルを提供させる、非一時的かつコンピュータ読取り可能な媒体。
前記少なくとも1つのコンピュータに実行されることにより、当該少なくとも1つのコンピュータに、顧客識別子を含む少なくとも1つのデータテーブルを前記フォントファイルにおける少なくとも1つのデータ構造に少なくとも挿入することによって、第2のウォーターマークを前記フォントファイルに組み込ませる指令群をさらに格納している、請求項8に記載の非一時的かつコンピュータ読取り可能な媒体。
前記少なくとも1つのゼロ長ベクトルの挿入にあたっては、前記セキュリティトークンに基づくパターンに応じて、前記少なくとも1つのゼロ長ベクトルが、前記フォントファイルにおける前記少なくとも1つの場所に挿入される、請求項10に記載の非一時的かつコンピュータ読取り可能な媒体。
前記第1のウォーターマークおよび前記第2のウォーターマークに基づいて、前記フォントファイルに不正にリンクしている少なくとも1つのウェブサイトを判断する、請求項13に記載の非一時的かつコンピュータ読取り可能な媒体。
前記少なくとも1つのプロセッサに実行されることにより、前記装置に、顧客識別子を含む少なくとも1つのデータテーブルを前記フォントファイルにおける少なくとも1つのデータ構造に少なくとも挿入することによって、第2のウォーターマークを前記フォントファイルに組み込ませる指令群を、前記メモリがさらに格納している、請求項15に記載の装置。
前記少なくとも1つのゼロ長ベクトルの挿入にあたっては、前記セキュリティトークンに基づくパターンに応じて、前記少なくとも1つのゼロ長ベクトルが、前記フォントファイルにおける前記少なくとも1つの場所に挿入される、請求項17に記載の装置。
【発明を実施するための形態】
【0009】
以下の様々な例示的な実施形態の説明では添付の図面を参照する。当該添付図面はその説明の一部分を成し、本明細書の開示の態様を実施できる様々な実施形態を例として示している。本明細書の開示の範囲から逸脱することなく、他の実施形態も利用でき、構造的かつ機能的な変更を行なうことができることを理解されたい。
【0010】
図1は、本明細書の開示に係る1つ以上の態様を実施できるシステムを例示する図である。本明細書に記載の1つ以上の態様は、1つ以上の構成において、1つのコンピュータプログラムや、複数コンピュータプログラムの組合せにより実施されうる。コンピュータプログラムは、コンピュータ100と共に使用され、および/またはメモリ113に格納される。
コンピュータ100は汎用の演算装置を表す。例えば、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットワークサーバ、可搬演算装置、PDA(携帯情報端末)、スマートフォン、携帯電話、分散コンピューティングネットワーク装置であり、本明細書に記載されているように動作し、それによって本明細書の開示における1つ以上の例示的態様に係る特殊用途の装置として構成するのに必要な、構成部品や能力を有するその他任意の装置である。
コンピュータ100は、CPU(中央処理装置)またはその他のプロセッサ103と、RAMまたはその他の揮発性メモリ105と、ROMまたはその他のブートメモリ107と、ネットワークインターフェース109(例えば、イーサネット(登録商標)、無線ネットワークインターフェース、モデムなど)とを備えうる。
コンピュータ100は、これらのインターフェースを介して、広域ネットワークやローカルエリアネットワーク(例えば、インターネット、LAN、WAN、PANなど)と接続しうる。また入力/出力ポート111(例えば、キーボード、マウス、モニタ、プリンタ、USBポート、シリアルポート、パラレルポート、IEEE1394/Firewireポートなど)、および不揮発性メモリ113(例えば固定ディスク、光ディスク、ホログラフィック記憶装置、可換型記憶媒体、フラッシュドライブなど)にも接続しうる。
コンピュータ100は、メモリ113に様々なプログラム、命令、アプリケーション、データを格納しうる。例えば、オペレーティングシステムソフトウェア115、フォントサーブレット117(例えば1つ以上のプラグインや、本明細書に記載のその他のフォントソフトウェア)、データ119(例えば、文書、ファイル、および本明細書に記載のその他のデータ)、フォントデータベース121(例えば、1つ以上のフォントファイルや、本明細書に記載のその他のファイル)が含まれるが、これらに限定されることはない。
【0011】
本明細書の開示における1つ以上の態様は、コンピュータが使用可能なデータや、コンピュータが実行可能な命令により実施されうる。例えば、ディスプレイやプリンタなどの装置で出力する1つ以上のフォントをレンダリングするために、1つ以上のコンピュータまたは他の装置により実行される1つ以上のプログラムモジュールが挙げられる。
一般に、プログラムモジュールは、コンピュータまたはその他のデータ処理装置内にあるプロセッサで実行されるときに特定のタスクを実行、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
コンピュータが実行可能な命令は、ハードディスク、光ディスク、可換型記憶媒体、半導体メモリ、RAMなどのコンピュータ可読媒体上に格納しうる。
上記プログラムモジュールの機能は、様々な実施形態における要求に応じて組み合わせ、または分散させうることは言うまでもない。また上記機能の少なくとも一部は、集積回路、フィールドプログラマブルゲートアレイ(FPGA)などのファームウェアまたはハードウェアの均等物により実施されうる。
特定のデータ構造は、本明細書の開示における1つ以上の態様をより効果的に実施するために使用されうる。かかるデータ構造は、本明細書に記載のコンピュータが実行可能な命令およびコンピュータが使用可能なデータの範囲内となるように構成される。
【0012】
図2は、本明細書の開示における1つ以上の態様を実施できるネットワーク環境200を例示する図である。ネットワーク環境200は、ウェブ開発者コンピュータ205、ウェブユーザコンピュータ210、ウェブドメインサーバ220、サーブレットホスト225、フォントサーバ230などの、1つ以上のコンピュータを含みうる。さらに、ネットワーク環境200は、1つ以上のローカルエリアネットワーク(LAN)および/または1つ以上の広域ネットワーク(WAN;例えばインターネット215)を含みうる。
【0013】
1つ以上の態様において、ウェブ開発者コンピュータ205は、ウェブサイト開発者またはその他のユーザが、ウェブサイトやCSSコードの設計/開発の際に使用するコンピュータでよい。ウェブユーザコンピュータ210は、ウェブユーザがインターネット215で1つ以上のウェブサイトを閲覧する際に使用するコンピュータでよい。
ウェブドメインサーバ220は、1つ以上のウェブサイトやCSSコードが格納されたコンピュータ、および/またはリモート要求に応答して1つ以上のウェブサイトやCSSコードを提供するコンピュータでよい。
サーブレットホスト225は、フォント要求処理やフォント提供を行なう1つ以上のコンピュータプログラムやスクリプトが、本明細書に詳細に記載された1つ以上の態様に従って格納されたコンピュータでよい。
フォントサーバ230は、1つ以上のフォントや1つ以上のフォントデータベースが、本明細書に詳細に記載の1つ以上の態様に従って格納されたコンピュータでよい。
【0014】
例えば、ウェブサイト開発者は、CSSコードを含んだウェブサイトの設計・開発にウェブ開発者コンピュータ205を使用しうる。続いてウェブサイト開発者は、そのウェブサイトを、インターネット215を介してウェブドメインサーバ220にアップロードしうる。
これに加えてあるいは代えて、ウェブサイト開発者またはその他のユーザは、ドメインサーバ220上で、ウェブ開発者コンピュータ205からリモートでウェブサイトを開発しうる。続いてウェブユーザは、ウェブユーザコンピュータ210を使用して上記ウェブサイトにインターネット215を介してアクセスしうる。
ウェブサイトにアクセスし、そこに含まれるCSSコードを実行する際に、ユーザはフォント要求をトリガしうる。フォント要求をトリガした結果、ウェブユーザコンピュータ210および/またはウェブドメインサーバ220は、フォント要求をサーブレットホスト225に送信しうる。フォント要求は、フォント要求サーバアドレス、顧客識別子、セキュリティトークン、フォント名、フォントファイル名、および/またはそれらの組合せを含みうる。
フォント要求の受信に応答して、サーブレットホスト225は、そのフォント要求を処理しうる。この処理は、フォント要求の構文解析と、フォント要求サーバアドレス、顧客識別子、セキュリティトークン、および/またはフォント名またはフォントファイル名の評価を含みうる。
サーブレットホスト225が、フォント要求は無効または未承認であると判断した場合、サーブレットホスト225はそれ以上動作する必要はない。あるいはフォント要求を拒否するメッセージまたはその他いくつかの同様の応答を送信してもよい。
一方、サーブレットホスト225が、フォント要求は有効または承認済みであると判断した場合は、サーブレットホスト225は、フォント要求に対応する1つ以上のフォントをフォントサーバ230から要求しうる。当該要求に応答して、フォントサーバ230は、サーブレットホスト225、ウェブドメインサーバ220、および/またはウェブユーザコンピュータ210に、フォント要求に対応する1つ以上のフォントを送信しうる。
これに加えてあるいは代えて、フォントサーバ230からのフォント要求に対応する1つ以上のフォントの受信に応答して、サーブレットホスト225は、ウェブドメインサーバ220および/またはウェブユーザコンピュータ210に、フォント要求に対応する1つ以上のフォントを送信しうる。続いてフォント要求に対応する1つ以上のフォントの受信に応答して、ウェブユーザコンピュータ210は、上記1つ以上の受信したフォントを用いてウェブサイトを表示および/または印刷しうる。
【0015】
ネットワーク環境200は、各種機能を実行するよう構成された各種コンピュータを含んでいると説明したが、同じ機能を提供するのに単独または組み合わせて使用できる適宜の数のコンピュータを備えるように変更できることは言うまでもない。
例えば、説明した全ての機能を実行するために単独のコンピュータを使用することも、1人以上のユーザが、1つ以上の端末やユーザインターフェースを介して当該単独のコンピュータと相互作用することもできる。
あるいは、ウェブ開発者コンピュータ205およびウェブユーザコンピュータ210の全ての機能の実行に第1のコンピュータを使用し、ウェブドメインサーバ220、サーブレットホスト225、およびフォントサーバ230の全ての機能の実行に第2のコンピュータを使用する構成とすることもできる。
【0016】
図3は、本明細書に記載の1つ以上の態様に従ってフォント要求がトリガおよび/または処理されうる方法を示す図である。1つ以上の態様によれば、
図3に示す方法、その変形態、本明細書に記載のその他任意の方法の少なくとも1つは、
図2に示すコンピュータ、サーバ、およびネットワークの少なくとも1つにより実施されうる。したがって1つ以上の構成で、
図3の方法をネットワーク環境200で実施しうる。
【0017】
ステップ305で、開発者はウェブサイトのためのCSSコードを作成しうる。CSSコードは、@font-faceコマンドなどのフォント要求トリガを含みうる。例えば、開発者は、コードブロック400などのウェブサイトコードブロックを作成することができる(
図4を参照して詳細に後述)。ウェブサイトコードブロック400は、@font-faceコマンドの使用を含みうる。
【0018】
ステップ310において、開発者は、ウェブサイトにCSSコードを組み込みうる。例えば、開発者は、ウェブサイトの少なくとも一部を形成できるその他のコンピュータコードの内部に、ウェブサイトコードブロック400(
図4)を組み込むことができる。
これに加えてあるいは代えて、開発者は、そのウェブサイトの少なくとも一部のホストとして動作しうるウェブサーバに、ウェブサイトコードブロック400(
図4)をアップロードすることもできる。
【0019】
ステップ312において、開発者は、CSSコードが組み込まれたウェブサイトを公開しうる。例えば、開発者は、公開中すなわち「生きている」ウェブサイトの一部分をウェブサイトコードブロック400内のCSSコードが形成するように、そのウェブサイトのホストとして動作するウェブサーバ上の設定を変更しうる。この例では、上記ウェブサイトを、インターネットまたは民間企業イントラネットなどの別のネットワーク上で公開しうる。
【0020】
ステップ315において、ユーザは上記ウェブサイトにアクセスし、もってフォント要求をトリガしうる。例えば、ユーザは、ウェブサイトへのアクセスに、コンピュータおよびAPPLE SAFARI(登録商標)やGOOGLE CHROME(登録商標)等のウェブブラウザを使用しうる。当該ウェブブラウザは、ウェブサイトのコンピュータコードをダウンロードおよび/または実行しうる。
ウェブサイトのコンピュータコードを実行する際、ユーザのウェブブラウザおよび/またはユーザのコンピュータは、ウェブサイトのコンピュータコードに含みうる@font-faceコマンドを処理しうる。
@font-faceコマンドを処理する際に、ユーザのウェブブラウザおよび/またはコンピュータは、@font-faceコマンドに含まれているフォントサーバアドレスによって識別できるフォントサーバから、1つ以上のフォントを要求しうる。
フォントサーバから当該要求をする際には、ユーザのウェブブラウザおよび/またはコンピュータは、顧客識別子、セキュリティトークン、フォント名、フォントファイル名の少なくとも1つを、フォントサーバに対して送信しうる。これらもまた@font-faceコマンドに含みうる。
【0021】
ステップ320において、サーブレットが、フォント要求を受信し構文解析しうる。例えば、サーブレットが、上記の例におけるユーザのウェブブラウザおよび/またはコンピュータから要求を受信することができ、その要求を構文解析しうる。したがって、受信した要求が例えば「GET web-font. company. com / SF01534-57-23349 / someFont. trf」などのハイパーテキスト転送プロトコル(HTTP)GET要求だった場合、サーブレットは、受信した要求を3つの構成要素を構文解析して、フォントサーバアドレス(この例では「web-font. company. com」)、顧客識別子および/またはセキュリティトークン(この例では「SF01534-57-23349」)、およびフォント名および/またはフォントファイル名(この例では「someFont. trf」)に変換しうる。
1つ以上の態様においては、かかる構文解析は、正規表現、文字列および/またはテキストのマッチングなどを使用して行ないうる。
【0022】
ステップ325において、サーブレットは、フォントサーバに問合せ、および/または要求されたフォントを提供しうる。例えば、フォント要求を受信および/または構文解析した後、サーブレットは、フォントサーバに問い合わせて要求中のフォントを取得し、次いで取得した要求フォントを提供しうる。
より具体的には、サーブレットは、上述した構文解析の結果に従ってフォントサーバに問合せをし、構文解析した顧客識別子および/またはセキュリティトークンをフォントサーバに提供しうる。これに加えてあるいは代えて、構文解析したフォント名および/またはフォントファイル名をフォントサーバに提供しうる。続いてかかる問合せに応答して、サーブレットは、要求中のフォントをフォントサーバから受信することができ、それをユーザのウェブブラウザおよび/またはコンピュータに送信および/または提供しうる。
【0023】
詳細に後述する1つ以上の態様において、サーブレットは要求されたフォントを送信および/または提供する前に、その要求が有効かを判断しうる。サーブレットは、要求されたフォントを送信および/または提供する前に、セキュリティトークンおよび/またはリファラ文字列を評価しうる。これに加えてあるいは代えて、サーブレットは、要求されたフォントを送信および/または提供する前に、要求されたフォントに1つ以上のウォータマークを組み込みうる。この処理の様々な態様については、
図5を参照しつつ詳細に後述する。
【0024】
図4は、本明細書に記載の1つ以上の態様に係るフォント要求を例示する図である。本明細書で詳細に説明するように、開発者はサンプルのウェブサイトコードブロック400を作成しうる。作成されたサンプルのウェブサイトコードブロック400は、@font-faceコマンドの使用を含みうる。このサンプルウェブサイトコードブロック400がウェブブラウザおよび/またはコンピュータでダウンロードおよび/または実行されると、フォント要求を生成しうる。当該フォント要求は、@font-faceコマンドおよび/またはそのコマンドに関連した1つ以上の引数に基づいている。
図4にサンプルウェブサイトコードブロック400として例示された特定のCSSコードでは、フォント要求を、CSSコード(すなわち「url(web-font. company. com / SF01534-57-23349 / someFont. trf)」)によって指定されたソース(すなわち「src」)に基づいて生成しうる。
【0025】
図5は、本明細書に記載の1つ以上の態様に係る、フォント要求が処理されうる方法を示す図である。
図5に示す方法を実行することによって、フォント開発者、管理者、またはライセンシーが1つ以上のウォータマークを、要求されたフォントに組み込みうる。
このウォータマークは、他者のウェブサイトにおけるフォントが、これらフォント開発者、管理者、またはライセンシーのウェブサイトから不正に取得されたものであるかを、これらの者が後に判断することを可能にしうる。すなわちウォータマークは、フォントファイルの使用またはコピーが承認されているか否かを示しうる。
1つ以上の態様において、
図2に示すコンピュータ、サーバ、ネットワークの少なくとも1つにより、
図5に示す方法、その任意の変形態、本明細書に記載のその他任意の方法の少なくとも1つを実施しうる。したがって1つ以上の構成において、ネットワーク環境200で
図5の方法を実施しうる。
【0026】
ステップ505においては、フォントファイルの要求を受信しうる。例えば、サーブレットが、フォントファイルの要求をユーザのウェブブラウザおよび/またはコンピュータから受信しうる。フォントファイルの要求は、サンプルウェブサイトコードブロック400など、ユーザのウェブブラウザおよび/またはコンピュータによってダウンロードおよび/または実行されるCSSコードを基にしうる。さらに上記フォントファイルの要求は、フォント要求サーバアドレス、顧客識別子、セキュリティトークン、フォント名、フォントファイル名の少なくとも1つを含みうる。
【0027】
ステップ510においては、上記フォントファイルの要求が有効かを判断しうる。例えば、サーブレットは、受信したフォントファイルの要求を構文解析および/または評価することができ、その受信した要求が有効かをの判断で、その受信した要求の1つ以上の態様を考慮しうる。
【0028】
1つ以上の態様において、フォントファイルの要求が有効かをの判断を、セキュリティトークンの評価に基づいて行ないうる。
図7は、本明細書に記載の1つ以上の態様に係る、セキュリティトークンが評価されうる方法を示す。したがってステップ510の実行は、
図7に示す方法におけるステップの1つ以上の実行を含みうる。
例えば、ステップ705において、サーブレットは、受信したフォントファイルの要求を構文解析しうる。
ステップ710においては、受信した要求から顧客識別子および/またはセキュリティトークンを抽出しうる。
その後ステップ715において、抽出した顧客識別子および/またはセキュリティトークンを、1つ以上の有効な顧客識別子および/またはセキュリティトークンのリストと比較しうる。
ステップ720においては、抽出した顧客識別子および/またはセキュリティトークンが、リスト内にある有効な顧客識別子および/またはセキュリティトークンの1つ以上と一致するかを判断しうる。
抽出した顧客識別子および/またはセキュリティトークンが、有効な顧客識別子および/またはセキュリティトークンの1つ以上と一致すると判断された場合、フォントファイルの要求は有効であると判断しうる。一方、抽出した顧客識別子および/またはセキュリティトークンが、有効な顧客識別子および/またはセキュリティトークンと一致しないと判断されると、フォントファイルの要求は無効であると判断しうる。
【0029】
例えば、
図4のサンプルウェブサイトコードブロック400では、受信したフォントファイル要求の対応する顧客識別子および/またはセキュリティトークンは、「SF01534-57-23349」を含みうる。サーブレットは、この顧客識別子および/またはセキュリティトークンを構文解析および/または抽出することができ、続いてその有効性を判断するために、1つ以上の有効な顧客識別子および/またはセキュリティトークンのリストと比較しうる。
【0030】
1つ以上の追加的態様においては、フォントファイルの要求が有効かをの判断は、リファラ文字列の評価に基づいて行ないうる。例えば、受信するフォントファイルの要求を、HTTP要求を介して作成することができ、HTTP要求は、リファラ文字列および/またはHTTP要求のヘッダフィールドにあるリファラを特定しうる。
リファラを特定するリファラ文字列および/またはHTTP要求のヘッダフィールドは、要求の発信源であるコンピュータ、サーバ、および/またはウェブサイトのアドレスを含みうる。したがって、受信した要求からリファラ文字列を抽出することができ、続いてそのリファラ文字列を、1つ以上の有効なリファラ文字列のリストと比較しうる。
抽出したリファラ文字列が、有効なリファラ文字列の1つまたは複数と一致すると判断された場合、フォントファイルの要求は有効であると判断しうる。一方、抽出したリファラ文字列が、有効なリファラ文字列と一致しないと判断された場合、フォントファイルの要求は無効であると判断しうる。
【0031】
少なくとも1つの構成において、ステップ510におけるフォントファイルの要求が有効であるかの判断を、セキュリティトークンの評価とリファラ文字列の評価の両方に基づいて行なうことができる。
例えば、本明細書の開示における1つ以上の態様を実施するシステムが、
図7を参照して上記に詳細に説明したように、顧客識別子および/またはセキュリティトークン(例えば構文解析し、受信したフォントファイルの要求から抽出した顧客識別子および/またはセキュリティトークン)を評価しうる。
さらに上記システムは、やはり上述したように、リファラ文字列(例えば、受信したフォントファイルの要求と関連付けられているリファラ文字列)を評価することもできる。上記システムは、抽出した顧客識別子および/またはセキュリティトークンが有効な顧客識別子および/またはセキュリティトークンの1つ以上と一致しているとの判断と、抽出したリファラ文字列が有効なリファラ文字列の1つまたは複数と一致しているとの判断との両方に基づいて、フォントファイルの要求が有効であると判断しうる。
このようにして、フォントファイルの要求が有効かを判断する際に、顧客識別子および/またはセキュリティトークンをリファラ文字列と関連付けることができる。
【0032】
ステップ512において、フォントファイルの要求が有効であると判断された場合、フォントファイルのウォータマーク組込み版がキャッシュされているかを判断しうる。1つ以上の構成では、フォントファイルの同様の要求が事前に受信され、そのフォントファイルに1つ以上のウォータマークが組み込まれる。そのウォータマーク入りフォントファイルがメモリに格納された場合、そのフォントファイルのウォータマーク組込み版をキャッシュしうる。
1つ以上のウォータマーク入りフォントファイルをキャッシュすることによって、本明細書の開示における1つ以上の態様を実施するシステムは、場合により処理リソースを節約しうる。
例えば、受信したフォントファイルの要求が有効であるとサーブレットが判断した場合、そのフォントファイルのウォータマーク組込み版がキャッシュされているかをサーブレットが判断することができる。その判断は、同一の顧客識別子および/またはセキュリティトークンを使用して事前に要求されウォータマークを組み込まれた可能性がある同一版のフォントファイルがメモリに格納されているかを判断することによって行なう。
フォントファイルのウォータマーク組込み版がキャッシュされていないとサーブレットが判断した場合、上記方法はステップ515に進み、1つ以上のウォータマークをフォントファイルに組み込みうる(詳細は後述)。
一方、フォントファイルのウォータマーク組込み版がキャッシュされているとサーブレットが判断した場合、上記方法はステップ522に進み、そのフォントファイルのウォータマーク組込み版をメモリから検索しうる(やはり詳細は後述)。
【0033】
ステップ515において、フォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合、第1のウォータマークをフォントファイルに組み込みうる。1つ以上の態様において、フォントファイルに含まれている1つ以上のグリフに1つ以上のシングルポイントをインジェクトすることによって、第1のウォータマークをフォントファイルに組み込みうる。
これに加えてあるいは代えて、インジェクトする1つ以上のシングルポイントを、顧客識別子および/またはセキュリティトークンに基づいたパターンで1つ以上のグリフに挿入することもできる。
【0034】
例えば、フォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合、サーブレットは要求されたフォントファイルを取得しうる。続いてフォントファイルに含まれている1つ以上のグリフに1つ以上のシングルポイントをインジェクトすることによって、第1のウォータマークをフォントファイルに組み込みうる。
1つ以上のグリフに1つ以上のシングルポイントをインジェクトするという処理は、1つ以上のゼロ長ベクトル(例えば同じ点で開始、終了するベクトル)をサーブレットにより定められる座標に含むように、フォントファイルのデータを加工する処理を含みうる。
1つ以上の構成においては、このようなシングルポイントすなわちゼロ長ベクトルは、1つ以上のグリフ内にある他のどの点にも接続されないようにできる。したがって、フォントファイルに含まれるフォントの1つ以上のグリフが、表示および/または出力のためにレンダリングされると、当該シングルポイントに対応するデータがフォントファイルに含まれていても、当該シングルポイントはレンダリングされないようにできる。
すなわち、コンピュータはフォントを画する線を描くことによってフォントをレンダリングできるので、線を定義しない上記のシングルポイントはレンダリングされないようにできる。あるいはレンダリングに供されない点であるとレンダリング装置により解釈されうる。
【0035】
あるいは、サーブレットは、顧客識別子および/またはセキュリティトークンに基づくパターンにおいてフォントファイルに含まれる1つ以上のグリフに1つ以上のシングルポイントを挿入しうる。ここで、上記顧客識別子および/またはセキュリティトークンは、フォントファイルの要求において受信されうる、および/またはフォントファイルの要求から抽出されうる。
この例では、サーブレットは、顧客識別子および/またはセキュリティトークン(例えば論理和、論理積、チェックサム、MD5ハッシュなど)に基づいて値を算出、続いてこの算出値に基づいたパターンにおいてフォントファイルに含まれる1つ以上のグリフに、1つ以上のシングルポイントを挿入しうる。
したがってこの例では、上記算出値により、1つ以上のシングルポイントを挿入する量および/または場所を定めうる。例えば、特定の顧客識別子および/またはセキュリティトークンに基づいて、オフセット値を定めうる。オフセット値は、例えば、モジュロ演算を使用して、特定の顧客識別子および/またはセキュリティトークンに基づいて算出された整数であってよい。
オフセット値を定めたら、フォントファイルのグリフテーブル内における特定のグリフの所定の位置に、ポイントを挿入しうる。具体的には、グリフテーブル内におけるn番目のグリフであるグリフの所定の位置にポイントを挿入しうる。ここでnは、定められたオフセット値を表す。
グリフテーブルに含まれているグリフがn個未満の場合、サーブレットは、グリフテーブル中の最後のグリフをカウントした後で1番目のグリフに戻りうる。シングルポイントを挿入するn番目のグリフに達するまでこれを繰り返す。
これに加わる、あるいは代わる1つ以上の構成においては、グリフテーブル内のn番目のグリフに複数のシングルポイントを挿入してもよい。これに加えてあるいは代えて、その他の同様の計算に基づいてn番目のグリフ以外の追加のグリフに1つ以上のシングルポイントを挿入してもよい。
【0036】
ステップ520においては、第2のウォータマークをフォントファイルに組み込みうる。1つ以上の態様において、フォントファイルに含まれる1つ以上のデータ構造に1つ以上のテーブルを挿入することによって、第2のウォータマークをフォントファイルに組み込みうる。
これに加えてあるいは代えて、フォントファイルの要求が有効であると判断され、かつフォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合に、第2のウォータマークをフォントファイルに組み込みうる。
【0037】
例えば、フォントファイルは、OpenTypeやTrueTypeのデータ構造のような、1つ以上のデータ構造を含みうる。フォントベンダは、顧客識別子やセキュリティトークンなどのカスタムメタデータを格納するために、かかるデータ構造に1つ以上のテーブルを含めることができる。
したがって一例として、フォントファイルに含まれている1つ以上のデータ構造に1つ以上のテーブルを挿入することによって、第2のウォータマークをフォントファイルに組み込みうる。
ここで、上記1つ以上のテーブルは、1つ以上の顧客識別子および/またはセキュリティトークンを格納しうる。少なくとも1つの構成において、フォントファイルに含まれる1つ以上のデータ構造の1つ以上のテーブルに挿入された1つ以上の顧客識別子は、フォントファイルの要求で受信した、および/またはフォントファイルの要求から抽出した顧客識別子および/またはセキュリティトークンを含みうる。
これに加えてあるいは代えて、カスタムメタデータを格納する1つ以上のデータ構造における1つ以上のテーブルにより、
図6に示す方法の1つ以上のステップの実行を可能にしうる。
これに加えてあるいは代えて、上記テーブルは、フォントファイルに含まれている1つ以上のグリフのレンダリングに影響を及ぼさなくともよい。
【0038】
ステップ522においては、フォントファイルのウォータマーク組込み版がキャッシュされていると判断された場合、フォントファイルのウォータマーク組込み版を検索しうる。例えば、フォントファイルのウォータマーク組込み版がキャッシュされていると判断された場合、サーブレットは、事前にウォータマークが組み込まれたフォントファイルを格納しているメモリから、フォントファイルのウォータマーク組込み版の位置を特定し、検索しうる。
【0039】
ステップ525においては、フォントファイルを提供しうる。例えば、フォントファイルの要求が有効であると判断され、かつフォントファイルのウォータマーク組込み版がキャッシュされていないと判断された場合、かつ第1のウォータマークおよび/または第2のウォータマークがフォントファイルに組み込まれた後に、サーブレットは、フォントファイルを要求したユーザ、ウェブサイト、コンピュータの少なくとも1つへ、フォントファイルを送信しうる。
あるいは、フォントファイルの要求が有効であると判断され、かつフォントファイルのウォータマーク組込み版がキャッシュされていると判断された場合、かつフォントファイルのウォータマーク組込み版が受信された後に、サーブレットは、フォントファイルを要求したユーザ、ウェブサイト、コンピュータの少なくとも1つへ、フォントファイルを送信しうる。
【0040】
図6は、本明細書に記載の1つ以上の態様に係る、フォントのリンクの有効性が評価されうる方法を示す。
図6に示す方法を実行することは、フォント開発者、フォントホストや、承認されたフォントユーザが、承認の無い1つ以上のフォントに特定のウェブサイトがリンクしているかを判断することを可能にしうる点において望ましい。
図2に示すコンピュータ、サーバ、ネットワークの少なくとも1つにより、
図6に示す方法、その任意の変形態、本明細書に記載のその他任意の方法の少なくとも1つを実施しうる。したがって1つ以上の構成において、ネットワーク環境200で
図6の方法を実施しうる。
【0041】
ステップ605において、ネットワークから少なくとも1つのウェブサイトをサーチしうる。例えば、サーブレットホスト225が、インターネット215から1つ以上のウェブサイトをサーチしうる。本明細書に詳細に記載の評価のために、1つのウェブサイトを、インターネット215上の1つ以上のウェブサイトから繰り返しおよび/またはランダムに選択しうる。
【0042】
ステップ610において、サーチで位置を特定した少なくとも1つのウェブサイトがCSSコードを含むかを判断しうる。例えば、サーブレットホスト225が、選択したウェブサイトがCSSコードを含むかを判断しうる。
選択したウェブサイトがCSSコードを含まないと判断した場合、上記方法は終了しうる。一方、選択したウェブサイトがCSSコードを含むと判断した場合、上記方法はステップ615に進みうる。
【0043】
ステップ615において、サーチで位置を特定した少なくとも1つのウェブサイトのCSSコードが@font-faceコマンドを含むかを判断しうる。例えば、サーブレットホスト225が、選択したウェブサイトのCSSコードが@font-faceコマンドを含むかを判断しうる。
選択したウェブサイトのCSSコードが@font-faceコマンドを含まないと判断した場合、上記方法は終了しうる。一方、選択したウェブサイトのCSSコードが@font-faceコマンドを含むと判断した場合、上記方法はステップ620に進みうる。
【0044】
ステップ620において、サーチで位置を特定した少なくとも1つのウェブサイトのCSSコードによってリンクされた1つ以上のフォントが、それぞれ1つ以上のウォータマークを含むかを判断しうる。例えば、サーブレットホスト225が、選択したウェブサイトのCSSコード(例えば@font-faceコマンド)によってリンクされた1つ以上のフォントごとに、1つ以上の要求を生成および/または送信しうる。
かかる要求に応答して少なくとも1つのフォントファイルを受信すると、サーブレットホスト225は、受信したフォントファイルを評価して、それが1つ以上のウォータマークを含んでいるかを判断しうる。
したがってサーブレットホスト225は、受信したフォントファイルが第1のウォータマークを含んでいるかを判断することができる。そのウォータマークは、フォントファイルに含まれている1つ以上のグリフ内にある1つ以上のシングルポイントの形態であってもよい。
より具体的には、未接続のシングルポイントを求めて、受信したフォントファイルに含まれている1つ以上のグリフを定義するデータをスキャンすることによって、サーブレットホスト225は、受信したフォントファイルが第1のウォータマークを含んでいるかを判断しうる。フォントファイルは一般に未接続のシングルポイントを含んでいないと言えるので、サーブレットホスト225は、受信したフォントファイル内で検出した任意の未接続のシングルポイントまたはゼロ長のベクトルを、第1のウォータマークの一部分であるとみなすことができる。
これに加えてあるいは代えて、サーブレットホスト225は、受信したフォントファイルが第2のウォータマークを含んでいるかを判断しうる。そのウォータマークは、受信したフォントファイルの1つ以上のデータ構造に格納された1つ以上のテーブルの形態であってもよい。
【0045】
ステップ625において、サーチで位置を特定された少なくとも1つのウェブサイトが、CSSコードによってリンクされた1つ以上のフォントに不正にリンクしているかを判断しうる。例えば、サーブレットホスト225は、受信したフォントファイルに含まれている第1のウォータマークに基づいて、受信したフォントファイル用の顧客識別子および/またはセキュリティトークンを計算および/または決定しうる。
これに加えてあるいは代えて、サーブレットホスト225は、受信したフォントファイルに含まれている第2のウォータマークに基づいて、受信したフォントファイル用の顧客識別子および/またはセキュリティトークンを計算および/または決定することもできる。続いてサーブレット225は、計算および/または決定した顧客識別子および/またはセキュリティトークンが、選択したウェブサイトに対応しているかを判断しうる。
【0046】
例えば、サーブレット225は、選択したウェブサイトの識別情報(例えばウェブアドレス)と、格納されている計算および/または決定した顧客識別子および/またはセキュリティトークンに対応する識別情報(受信したフォントファイルに含まれる1つ以上のフォントにリンクするように承認された1つ以上のウェブアドレスのリストなど)を比較しうる。
ここで上記リストは、サーブレット225によってアクセス可能なデータベースに格納しうる。かかる比較に基づいてサーブレット225は、選択したウェブサイトの識別情報が、格納されている計算および/または決定した顧客識別子および/またはセキュリティトークンに対応する識別情報と一致しないことを判断しうる。その場合、選択したウェブサイトが受信したフォントファイルに不正にリンクしていると判断しうる。これに加えてあるいは代えて、さらなる検討のために、選択したウェブサイトにフラグを立てうる。
一方、サーブレット225は、選択したウェブサイト識別情報が、格納されている計算および/または決定した顧客識別子および/またはセキュリティトークンに対応する識別情報と一致すると判断できた場合、選択したウェブサイトが受信したフォントファイルに適切にリンクしていると判断しうる。
【0047】
本明細書に記載の様々な態様を、方法、装置、またはコンピュータ実行可能な命令を格納する1つ以上のコンピュータ読取り可能な媒体として、必要に応じて実施できることは、当業者にとって明らかであろう。したがってこれらの態様は、ハードウェアのみからなる実施形態、ソフトウェアのみからなる実施形態、またはソフトウェアとハードウェアの態様を組み合わせた実施形態をとることができる。さらに、本明細書に記載のデータまたはイベントを表す様々な信号は、金属線、光ファイバ、および/または無線伝送媒体(例えば空気や空間)などの信号伝達媒体を介して伝わる光および/または電磁波の形で、発信源と送信先の間を伝達しうる。
【0048】
発明の各種態様を、実施形態の例示を通じて説明してきたが、本明細書の開示に基づいて、添付した特許請求の範囲の記載から逸脱しない範囲において他の実施形態、変形や変更が可能であることは、当業者にとって明らかである。例えば、図面において例示した各ステップは、図示した順序以外でも実行されうる。また図示した少なくとも1つのステップは、発明の態様によっては任意に実行されるものとしてよい。