(57)【要約】本発明の実施形態はコンピュータ用カスタムアプリケーションの作成のための方法とシステムを提供する。処理装置（１１２）はコンピュータアプリケーションの規格をプラットフォームに依存しない言語で保管するように動作できる。離れたクライアント機器（７０）は特定のアプリケーションの配送をその実行のため要求する。処理装置は離れたクライアント機器に対し、離れたクライアント機器の特性と能力からなる機器構成を構築するように求める。処理装置はまた、顧客構成を獲得し、機器構成と顧客構成に従ってコンパイル構成を確立する。コンパイル構成は特定のアプリケーションのプラットフォームに依存しない言語に適用され、離れたクライアント機器で動作するように適応されカスタム化されたコンテンツを含む、コンパイルされたアプリケーションを生成する。処理装置はコンパイルされたアプリケーションを離れたクライアント機器にダウンロードさせる。【選択図】図１
2011527465.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ用カスタムアプリケーションの作成のためのアプリケーションの流通システムであって、
処理装置と、
プログラムとデータオブジェクトを保管する前記処理装置にアクセス可能な記憶装置と、を有し、
前記プログラムの実行は前記処理装置に対し、
前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力からなる機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
からなるステップを実行させる、ことを特徴とするシステム。
【請求項２】
前記プログラムと前記データオブジェクトはさらに既知のタイプの遠隔機器の構成を有する機器貯蔵場所を有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器貯蔵場所は前記離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
前記機器構成を前記機器貯蔵場所に保管することにより、前記機器貯蔵場所を前記機器構成に適合させるステップと、
からなる、ことを特徴とする請求項１に記載のアプリケーション流通システム。
【請求項３】
前記プログラムと前記データオブジェクトはさらに機器指紋サブシステムを有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器指紋サブシステムを呼び出し、前記信号を分析して前記離れたクライアント機器の機器特性を識別し、そして前記機器特性に対応して前記離れたクライアント機器が前記機器貯蔵場所にある前記既知の機器構成と関連付けられるか否かを判定するステップを有する、ことを特徴とする請求項２に記載のアプリケーション流通システム。
【請求項４】
前記プログラムと前記データオブジェクトはさらに、其々の機器に依存しないアプリケーションアブストラクションと前記コンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースと、前記アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有し、
前記処理装置は、さらに
前記変数分析モジュールを呼び出し、前記アプリケーションアブストラクションの符号において変更点を判定するステップと、
前記フォント分析モジュールを呼び出し、前記特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
前記背景分析モジュールを呼び出し、前記機器構成における前記離れたクライアント機器の画像能力に適合させるために前記特定のアプリケーションを再構成する必要があるか否か判定するステップと、
前記スキン分析モジュールを呼び出し、前記機器構成における前記離れたクライアント機器の記憶容量に対応して、前記特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
を実行するように動作可能である、ことを特徴とする請求項１に記載のアプリケーション流通システム。
【請求項５】
前記プログラムと前記データオブジェクトはさらに、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
前記コンパイル構成を適用するステップは、
前記コンパイル構成に対応して符号生成器の１つを選択するステップと、
前記選択された１つの符号生成器で、前記特定のアプリケーションの前記コンパイルされたアプリケーションを有する、生成された符号を送信するステップと、
を有する、ことを特徴とする請求項１に記載のアプリケーション流通システム。
【請求項６】
前記生成された符号は、前記離れたクライアント機器用のネイティブな実行可能符号である、ことを特徴とする請求項５に記載のアプリケーション流通システム。
【請求項７】
前記生成された符号は、前記離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである、ことを特徴とする請求項５に記載のアプリケーション流通システム。
【請求項８】
前記プログラムと前記データオブジェクトはさらに、顧客指紋サブシステムを有し、
前記処理装置は、前記顧客指紋サブシステムを呼び出し前記顧客の顧客特性を識別し、前記顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能である、ことを特徴とする請求項１−７のいずれかに記載のアプリケーション流通システム。
【請求項９】
前記プログラムと前記データオブジェクトはさらに、パッチャーモジュールを有し、
前記処理装置は、前記パッチャーモジュールを呼び出して前記特定のアプリケーションの現在のコンパイルされたバージョンを変更し、前記現在のコンパイルされたバージョンを前記コンパイル構成に適合させるように動作可能である、ことを特徴とする請求項１−７のいずれかに記載のアプリケーション流通システム。
【請求項１０】
前記プログラムと前記データオブジェクトはさらに、機能スプリッタモジュールを有し、
前記処理装置は、
前記コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
前記閾値の寸法は、前記コンパイル構成に含まれる前記離れたクライアント機器の記憶容量の制限に従って決定され、
前記機能スプリッタモジュールを呼び出し、前記機能をそれぞれ複数の符号セクションに分割するステップと、
からなる追加ステップを実行するように動作可能である、
ことを特徴とする請求項１−７のいずれかに記載のアプリケーション流通システム。
【請求項１１】
前記プログラムと前記データオブジェクトはさらに、符号難読化モジュールを有し、
前記処理装置は、前記符号難読化モジュールを呼び出し前記コンパイルされたアプリケーションの少なくとも一部を難読化するように動作可能である、ことを特徴とする請求項１−７のいずれかに記載のアプリケーション流通システム。
【請求項１２】
コンピュータ用カスタムアプリケーションの作成のためのコンピュータ用ソフトウェア製品であって、コンピュータプログラム命令を保管するコンピュータ用記憶媒体を有し、
前記命令はコンピュータに実行されると、コンピュータに対し、
アプリケーションの流通システムにおいて、前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
前記アプリケーションの流通システムにおいて、離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力を定義する機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
からなるステップを実行させることを特徴とするソフトウェア製品。
【請求項１３】
既知のタイプの遠隔機器の構成を有する機器貯蔵場所を維持するステップをさらに有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器貯蔵場所は前記離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
前記機器構成を前記機器貯蔵場所に保管することにより、前記機器貯蔵場所を前記機器構成に適合させるステップと、
からなる、ことを特徴とする請求項１２に記載のコンピュータ用ソフトウェア製品。
【請求項１４】
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記信号を分析して前記離れたクライアント機器の機器特性を識別し、そして前記機器特性に対応して前記離れたクライアント機器が前記機器貯蔵場所にある前記既知の機器構成と関連付けられるか否かを判定するように動作可能な機器指紋サブシステムを実行するステップを有する、ことを特徴とする請求項１３に記載のコンピュータ用ソフトウェア製品。
【請求項１５】
前記アプリケーションの流通システムは、其々の機器に依存しないアプリケーションアブストラクションと前記コンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースを有し、
前記命令は、前記アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有する別個のソフトウェアモジュールに編成され、
前記命令は前記コンピュータに対し、
前記変数分析モジュールによって、前記アプリケーションアブストラクションの符号において変更点を判定するステップと、
前記フォント分析モジュールによって、前記特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
前記背景分析モジュールによって、前記機器構成における前記離れたクライアント機器の画像能力に適合させるために前記特定のアプリケーションを再構成する必要があるか否か判定するステップと、
前記スキン分析モジュールによって、前記機器構成における前記離れたクライアント機器の記憶容量に対応して、前記特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
からなる追加のステップを実行させる、ことを特徴とする請求項１２に記載のコンピュータ用ソフトウェア製品。
【請求項１６】
前記アプリケーションの流通システムは、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
前記コンパイル構成を適用するステップは、
前記コンパイル構成に対応して符号生成器の１つを選択するステップと、
前記選択された１つの符号生成器で、前記特定のアプリケーションの前記コンパイルされたアプリケーションを有する、生成された符号を送信するステップと、
を有する、ことを特徴とする請求項１２に記載のコンピュータ用ソフトウェア製品。
【請求項１７】
前記生成された符号は、前記離れたクライアント機器用のネイティブな実行可能符号である、ことを特徴とする請求項１６に記載のコンピュータ用ソフトウェア製品。
【請求項１８】
前記生成された符号は、前記離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである、ことを特徴とする請求項１６に記載のコンピュータ用ソフトウェア製品。
【請求項１９】
前記顧客構成を獲得するステップは、前記顧客の顧客特性を識別し、前記顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能な顧客指紋サブシステムを実行するステップを有する、ことを特徴とする請求項１２−１８のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項２０】
前記命令は、パッチャーモジュールを含む別個のソフトウェアモジュールに編成され、
前記命令は、前記コンピュータに対し、前記パッチャーモジュールを呼び出して前記特定のアプリケーションの現在のコンパイルされたバージョンを変更し、前記現在のコンパイルされたバージョンを前記コンパイル構成に適合させるようにさせる、ことを特徴とする請求項１２−１８のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項２１】
前記命令は、機能スプリッタモジュールを含む別個のソフトウェアモジュールに編成され、
前記命令は前記コンピュータが、
前記コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
前記閾値の寸法は、前記コンパイル構成に含まれる前記離れたクライアント機器の記憶容量の制限に従って決定され、
前記機能スプリッタモジュールを呼び出し、前記機能をそれぞれ複数の符号セクションに分割するステップと、
からなる追加ステップを実行するようにさせる、ことを特徴とする請求項１２−１８のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項２２】
前記命令は、符号難読化モジュールを含む別個のソフトウェアモジュールに編成され、
前記命令は、前記コンピュータに対し、前記符号難読化モジュールを呼び出し前記コンパイルされたアプリケーションの少なくとも一部を難読化するようにさせる、ことを特徴とする請求項１２−１８のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項２３】
コンピュータ用カスタムアプリケーションの作成のための方法であって、
アプリケーションの流通システムにおいて、前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
前記アプリケーションの流通システムにおいて、離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力を定義する機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
を有することを特徴とする方法。
【請求項２４】
既知のタイプの遠隔機器の構成を有する機器貯蔵場所を維持するステップをさらに有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器貯蔵場所は前記離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
前記機器構成を前記機器貯蔵場所に保管することにより、前記機器貯蔵場所を前記機器構成に適合させるステップと、
からなる、ことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記信号を分析して前記離れたクライアント機器の機器特性を識別し、そして前記機器特性に対応して前記離れたクライアント機器が前記機器貯蔵場所にある前記既知の機器構成と関連付けられるか否かを判定するように動作可能な機器指紋サブシステムを実行するステップを有する、ことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記アプリケーションの流通システムは、其々の機器に依存しないアプリケーションアブストラクションと前記コンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースを有し、また、前記アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有し、
前記方法はさらに、
前記変数分析モジュールによって、前記アプリケーションアブストラクションの符号において変更点を判定するステップと、
前記フォント分析モジュールによって、前記特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
前記背景分析モジュールによって、前記機器構成における前記離れたクライアント機器の画像能力に適合させるために前記特定のアプリケーションを再構成する必要があるか否か判定するステップと、
前記スキン分析モジュールによって、前記機器構成における前記離れたクライアント機器の記憶容量に対応して、前記特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
を有する、ことを特徴とする請求項２３に記載の方法。
【請求項２７】
前記アプリケーションの流通システムは、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
前記コンパイル構成を適用するステップは、
前記コンパイル構成に対応して符号生成器の１つを選択するステップと、
前記選択された１つの符号生成器で、前記特定のアプリケーションの前記コンパイルされたアプリケーションを有する、生成された符号を送信するステップと、
を有する、ことを特徴とする請求項２３に記載の方法。
【請求項２８】
前記生成された符号は、前記離れたクライアント機器用のネイティブな実行可能符号である、ことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記生成された符号は、前記離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである、ことを特徴とする請求項２７に記載の方法。
【請求項３０】
前記顧客構成を獲得するステップは、前記顧客の顧客特性を識別し、前記顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能な顧客指紋サブシステムを実行するステップを有する、ことを特徴とする請求項２３−２９のいずれかに記載の方法。
【請求項３１】
前記コンパイル構成を適用するステップは、前記パッチャーモジュールを呼び出して前記特定のアプリケーションの現在のコンパイルされたバージョンを変更し、前記現在のコンパイルされたバージョンを前記コンパイル構成に適合させるステップを有する、ことを特徴とする請求項２３−２９のいずれかに記載の方法。
【請求項３２】
前記コンパイル構成を適用するステップは、
前記コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
前記閾値の寸法は、前記コンパイル構成に含まれる前記離れたクライアント機器の記憶容量の制限に従って決定され、
前記機能スプリッタモジュールを呼び出し、前記機能をそれぞれ複数の符号セクションに分割するステップと、
を有する、ことを特徴とする請求項２３−２９のいずれかに記載の方法。
【請求項３３】
前記コンパイル構成を適用するステップは、前記符号難読化モジュールを呼び出し前記コンパイルされたアプリケーションの少なくとも一部を難読化するようにさせるステップを有する、ことを特徴とする請求項２３−２９のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発、インストールおよび管理に関し、より詳細には、異なる操作プラットフォームと能力を有する複数の機器に画像表現可能なコンピュータアプリケーションを提供することに関する。
【背景技術】
【０００２】
（関連出願の相互参照）
本出願はここに参照され、取り入れられる米国暫定特許出願ＵＳ６１／０７６，８９４出願日２００８年６月３０日の恩恵を受け享受する。
【０００３】
以下の記述に使用される特定の接頭語と省略語は表１の通りである。
【表１】
2011527465.tif 000003
携帯電話およびＰＤＡは以降、総称して「携帯電話」と呼ばれる。それは無数の異なるハードウェアとソフトウェアの構成で市販され、基本通信サービスに加え多数の他の機能を提供している。携帯電話は、薄いか厚く、大小のビデオスクリーン、及び／又はキーボード、カメラ、当該電話が提供する種々の機能を顧客とインタフェースする異なるＧＵＩを有している。製造メーカは異なるチップセット、異なるオペレーションシステムおよびコンピュータ言語を使用して携帯電話の機能を実現する。  
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国暫定特許出願ＵＳ６１／０７６，８９４
【発明の概要】
【０００５】
本発明の１実施形態は、コンピュータ用カスタムアプリケーションの作成のためのアプリケーションの流通システムであって、
処理装置と、
プログラムとデータオブジェクトを保管する前記処理装置にアクセス可能な記憶装置と、を有し、
前記プログラムの実行は前記処理装置に対し、
前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力からなる機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
からなるステップを実行させる、ことを特徴とするシステム、を提供する。
【０００６】
プログラムとデータオブジェクトはさらに既知のタイプの遠隔機器の構成を有する機器貯蔵場所を有し、
離れたクライアント機器に対し機器構成を構築するように求めるステップは、
機器貯蔵場所は離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
機器構成を機器貯蔵場所に保管することにより、機器貯蔵場所を機器構成に適合させるステップと、
からなる。
プログラムとデータオブジェクトはさらに機器指紋サブシステムを有し、
離れたクライアント機器に対し機器構成を構築するように求めるステップは、
機器指紋サブシステムを呼び出し、信号を分析して離れたクライアント機器の機器特性を識別し、そして機器特性に対応して離れたクライアント機器が機器貯蔵場所にある既知の機器構成と関連付けられるか否かを判定するステップを有する。
【０００７】
アプリケーションの流通システム他の１面では、プログラムとデータオブジェクトはさらに、其々の機器に依存しないアプリケーションアブストラクションとコンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースと、アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有し、
処理装置は、さらに
変数分析モジュールを呼び出し、アプリケーションアブストラクションの符号において変更点を判定するステップと、
フォント分析モジュールを呼び出し、特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
背景分析モジュールを呼び出し、機器構成における離れたクライアント機器の画像能力に適合させるために特定のアプリケーションを再構成する必要があるか否か判定するステップと、
スキン分析モジュールを呼び出し、機器構成における離れたクライアント機器の記憶容量に対応して、特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
を実行するように動作可能である。
【０００８】
アプリケーションの流通システムの更なる１面では、プログラムとデータオブジェクトはさらに、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
コンパイル構成を適用するステップは、
コンパイル構成に対応して符号生成器の１つを選択するステップと、
選択された１つの符号生成器で、特定のアプリケーションのコンパイルされたアプリケーションを有する、生成された符号を送信するステップと、を有する。
生成された符号は、離れたクライアント機器用のネイティブな実行可能符号であり、或いは、生成された符号は、離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである。
プログラムとデータオブジェクトはさらに、顧客指紋サブシステムを有し、
処理装置は、顧客指紋サブシステムを呼び出し顧客の顧客特性を識別し、顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能である。
【０００９】
アプリケーションの流通システムの追加の１面では、処理装置は、パッチャーモジュールを呼び出して特定のアプリケーションの現在のコンパイルされたバージョンを変更し、現在のコンパイルされたバージョンをコンパイル構成に適合させるように動作可能である。
アプリケーションの流通システムの更に別の１面では、プログラムとデータオブジェクトはさらに、機能スプリッタモジュールを有し、
処理装置は、
コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
閾値の寸法は、コンパイル構成に含まれる離れたクライアント機器の記憶容量の制限に従って決定され、
機能スプリッタモジュールを呼び出し、機能をそれぞれ複数の符号セクションに分割するステップと、
からなる追加ステップを実行するように動作可能である。
アプリケーションの流通システムの別の１面では、プログラムとデータオブジェクトはさらに、符号難読化モジュールを有し、
処理装置は、符号難読化モジュールを呼び出しコンパイルされたアプリケーションの少なくとも一部を難読化するように動作可能である。  
【図面の簡単な説明】
【００１０】
本発明のより良く理解するため、例示として詳細な説明が以下の図面と共に参照される。ここに類似の要素は類似の番号を付される。
【図１】本発明の実施形態に基づくシステムとオペレーションを示す概略図である。
【図２】本発明の実施形態に基づく、α−言語で記述され符号化されるコンピュータゲームを示す概略図である。
【図３】本発明の開示された実施形態に基づく、図１に記載のシステムにおけるデータセンターのブロック図である。
【図４】本発明の開示された実施形態に基づく、図３に示すデータセンターにおいて実行される工程のフロー図である。
【図５】本発明の開示された実施形態に基づく、コンパイルされたアプリケーションを要求元機器に提供する工程のフロー図である。
【図６】本発明の開示された実施形態に基づく、図３に示すデータセンター内の分析部の詳細ブロック図である。
【図７】本発明の開示された実施形態に基づく、図３に示すデータセンター内の分析部の詳細ブロック図である。
【図８】本発明の開示された実施形態に基づく、クライアントの要求に反応したアプリケーションのコンパイルに関するステップを総括するシークエンス図である。
【発明を実施するための形態】
【００１１】
以下の記述において、多くの特定の詳細が本発明の種々の原理を十分に理解するため示される。しかし当業者には全ての詳細が本発明を実施するために常に必要ではないことは明らかである。ここでは、周知の回路、制御ロジック、及び、従来のアルゴリズムや工程のためのコンピュータプログラム命令の詳細は、不必要に全体概念を不明確にするため詳細には示されない。
本発明の側面はソフトウェアプログラムコードで実現されるが、それは典型的には永久記憶装置、例えばコンピュータ読み込み可能媒体である。クライアント／サーバ環境では、このようなソフトウェアプログラムコードはクライアントまたはサーバに保管される。ソフトウェアプログラムコードはデータ処理システムで使用される様々な既知の接触可能媒体、例えばディスケット、ハードディスクドライブ、又はＣＤＲＯＭ上で実現される。コードはこのような媒体により流通されるか、又は、１つのコンピュータシステムの記憶装置または保管装置から、顧客が使用する他のコンピュータシステムの保管装置に、あるタイプのネットワークを通じて、顧客に対し配布される。    
【００１２】
（概論）
異なる携帯電話オペレーションシステムの中に、Ｓｙｍｂｉａｎ（登録商標），Ｌｉｎｕｘ（登録商標），  Ｗｉｎｄｏｗｓ（登録商標）Ｍｏｂｉｌｅ，  ＢＲＥＷ（登録商標）がある。標準的なオペレーションシステムの他に、ベンダーの中には自分の機器に対し専用の独自のオペレーションシステムを使用することがある。
携帯電話のアプリケーションは、他の言語の中でも特に、Ｃ＋＋、Ｃ、Ｊ２ＳＥ（登録商標），Ｊ２ＭＥ（登録商標），および「．Ｎｅｔ」（登録商標）でプログラムされる。便利のため、以後ここでは携帯電話のハードウェアとソフトウェアの構成を「携帯電話プラットフォーム」と呼び、電話機の物理的構成も含む。機能性は典型的にベンダー独自のＡＰＩの使用により実現され、それは開発者にサポートしようとする携帯電話独自の其々のＡＰＩを学習するように要求するため、アプリケーションを他の携帯電話に移植するのに大きな障害となる。
【００１３】
その結果、コンピュータアプリケーション、例えば携帯電話で使用されるコンピュータゲームは、特定の携帯電話、或いは少数の携帯電話プラットフォームでの使用に対し構成され最適化されている。それは多数の異なるプラットフォームにすぐに移植出来ない。移植出来ないことは、携帯電話のアプリケーション及びゲームの広範な市場創造にとって大きな障害及び制限である。そしてまた、携帯電話市場に商品を生産し販売する、或いは市場参入を意図する、小さな開発者、メーカ及びベンダーにとって特に大きな制限となっている。
【００１４】
本発明の実施形態では、アプリケーション開発者は、そのコンピュータアプリケーション用のコードを作成するのに、１つのコンピュータ言語、以降「α言語」と呼ぶ、を使用してゲームアプリケーションを作成する。そのコードは複数の携帯電話プラットフォームに汎用でそれぞれのプラットフォームで実行可能なアプリケーション用コードに翻訳可能である。α言語は高レベルの、実質的に人間に読み易い言語であり、当該アプリケーションが使用される携帯電話プラットフォームの詳細を考慮するする必要なく、アプリケーションのオペレーションを記述し符号化するのに使用可能である。典型的にはアプリケーション開発者はゲームのオブジェクトと空間を作成する。オブジェクトとは、実体に付属するイベントに反応して変化する音響及び／又は画像実体であり、アプリケーションの顧客に人機械インタフェース（ＭＭＩ）を介して提供される。
【００１５】
オブジェクトには、限定はされないが、コンピュータゲームで使用される典型的には「スプライト」と呼ばれるアニメキャラクターを含む。イベントはオブジェクトに変化をもたらす、オブジェクトに付随する何らかの刺激である。変化は「アクション」と呼ばれる。
簡単な例示のため、オブジェクトはコンピュータゲームでのボールの画像とする。
ボールに付随するイベントは壁との衝突とする。イベントに反応して生成されるアクションは、壁に当った時のボールの運動方向の変化である。ボールに付随するイベントのもう１つの事例は、ボールの色を変化させるキーボード、マウス、マイクのようなＭＭＩ要素の起動である。色の変化はＭＭＩ要素の起動に反応したアクションと呼ばれる。
空間はボールが存在する環境である。例えば、空間はボールを包含する４つの壁であってもよい。本発明の１実施形態によれば、オブジェクトと空間は、実質的にオブジェクトと空間が作動する特定の携帯電話プラットフォームを参照することなく、α言語を使用して生成される。
【００１６】
本発明のある実施形態のある面は、以降「ＭＯＰＡＤ」の接頭語で呼ばれる、α言語で符号化されたプログラムを、複数のコンピュータプラットフォームのそれぞれでサポートされたコンピュータ言語に変換及び／又はコンパイルするように操作可能な、携帯電話アプリケーションの流通システムの提供に関している。
本発明のある実施形態の一面によれば、ＭＯＰＡＤはアプリケーション開発「道具箱」、データセンター及びメタ符合変換器を有する。便宜的に「α玩具箱」と呼ばれる道具箱は、α言語と場合により画像インタフェースを有し、顧客がアプリケーションをアイコンやアニメーションを扱ってα言語でプログラムすることを可能にする。データセンターは、以降「α言語アプリケーションライブラリ」と呼ばれる、αアプリケーションとシステムの顧客によって作成される、オブジェクトやオブジェクトのアクセサリのようなアプリケーション要素からなる、ライブラリを有する。
【００１７】
データセンターに保管されるアプリケーションやアプリケーション要素のような情報は、「道具箱」を介してアプリケーションの開発に利用可能である。場合によっては、データセンターは顧客を特徴付ける個人データを有する。  
メタ符合変換器は、データセンターにα言語で保管される１つのアプリケーションを、アプリケーションが使用されうる複数の携帯電話プラットフォームに対し構成するように適用される。ある携帯電話プラットフォーム用のα言語アプリケーションを構成するステップは、アプリケーションのα言語符号化をその携帯電話プラットフォームでサポートされる１つの言語またはバイナリフォーマットに変換するステップと、アプリケーションパラメータを携帯電話のＭＭＩ構成に適合させるステップを有する。
【００１８】
ＭＯＰＡＤとその要素は、場合によってウェブサイト上に提供され、ＵＲＬを介してアクセスされる。例えば、携帯電話コンテントの開発者が携帯電話アプリケーション、例えばコンピュータゲーム、を作成したいと望めば、開発者は、「α玩具箱」を使用してゲーム用のプログラムをα言語で作成するためＭＯＰＡＤ  ＵＲＬにアクセスすることが出来る。作成されたゲーム及び／又はゲームの要素はデータセンターに保管されるが、場合によってゲームの開発者を特徴付けるデータも共に保管され、また、必要とされる、開発者の知的財産権のための著作権及び／又は暗号のような適切な保護も保管される。顧客は携帯電話用のゲームを、ＭＯＰＡＤ  ＵＲＬにアクセスし、ゲームを受け取るのに必要な支払のような条件を適切に満たす、ゲームをダウンロードする要求を送ることによって獲得可能である。要求を受け取るとメタ符合変換器は、ゲームを要求人の携帯電話プラットフォームに構成することによって、要求人の携帯電話用のゲームを構成する。構成されたゲームは典型的には要求人の携帯電話での使用のため送信されるが、場合によって、直接ダウンロードやイーメールにより送付される。
【００１９】
図を参照する。図１は本発明の実施形態に基づく携帯電話アプリケーションの流通、システム、即ちＭＯＰＡＤ２０のオペレーションを示す概略図である。
ＭＯＰＡＤ２０は４つの主要要素を有すると見做すことが出来る。
（１）ゲーム抽象化層は機器に依存しない、α言語やアプリケーションに特異な資源のような、ゲーム記述子からなる。α言語はＭｏ’Ｍｉｎｉｓ社（１４  Ｒａｏｕｌ  Ｗａｌｌｅｎｂｅｒｇ  Ｓｔｒｅｅｔ，  Ｔｅｌ  Ａｖｉｖ６９７１９，Ｉｓｒａｅｌ）から入手可能であり、本実施形態に使用可能である。ここではゲームのスペックはα言語を参照して記述される。しかし、本発明の原理は他のゲーム記述子言語でも同等に実施可能である。
（２）アプリケーション編集ツールはゲーム抽象化層を操作してアプリケーションを迅速に作成するのに使用される。
（３）符号生成システムは顧客に特異な、そして機器に特異な符号を生成し、既存のゲームをパッチすることを担当する。
（４）データセンターはコンテンツを管理し、アプリケーションの配達および動作中調整を扱い、クライアントの口座を管理し、他のサービスを紹介する。
例示のため、ＭＯＰＡＤ２０は、携帯電話での使用のためアプリケーション、場合によりコンピュータゲームのプロデューサ６０と、また携帯電話での使用のため携帯電話用コンテンツの消費者７０と、相互作用し、それにサービスを提供するように示されている。ＭＯＰＡＤ２０は適切なウェブサイトに提供される。プロデューサ６０と消費者７０はインターネット経由でＭＯＰＡＤ２０にアクセスする。
【００２０】
ＭＯＰＡＤ２０は場合により道具箱３０、データセンター４０、メタ符合変換器５０からなる。道具箱３０は、コンピュータ読み取り可能媒体に保管された、携帯電話用アプリケーションを記述し符号化するための、高度な実質的に人接触可能なα言語を使用するための、命令セット３１を有する。あるいは命令セット３１は、画像インタフェースと、α玩具箱とを有し、それによりＭＯＰＡＤ２０の顧客は、携帯電話コンピュータゲームをアイコンと、メニューを経由してアクセス可能なアニメーションと、を操作してα言語でプログラムすることが可能となる。データセンター４０はアプリケーションと、プロデューサが作成するアプリケーションの中で、プロデューサにより使用され取り込まれる携帯電話アプリケーション用の要素、例えばプログラムサブルーチンのα言語ライブラリ４１を有する。データセンター４０は場合によって、個人データや参照事項など、ＭＯＰＡＤ２０の顧客を特徴付けし、ＭＯＰＡＤ２０がその顧客へのサービス及び／又はコンテンツを適合させることを可能にする、顧客データ４２を有する。
【００２１】
図１においては、プロデューサ６０はインターネットを経由してＭＯＰＡＤ２０の道具箱にアクセスし、プロデューサが開発するゲームの開発のため、命令セット３１内の材料を使用し及び／又はダウンロードするところが示されている。開発はオンライン又はオフラインにおいて多くの組合せで行われる。両側矢印のブロック矢印６１は、プロデューサ６０がインターネット経由で道具箱にアクセスし、α言語を使用するための適切な命令をＭＯＰＡＤ２０からダウンロードすることを概略示す。更に場合により、プロデューサ６０はα玩具箱３２をリアルタイムで操作して、携帯電話用のコンピュータゲームを記述し符号化する。
【００２２】
コードをその言語で書く及び／又はα玩具箱３２を使用するかしてα言語でプログラムしている間、道具箱３０は場合によりプロデューサ６０に、データセンター４０のα言語ライブラリ４１に含まれるアプリケーションとアプリケーション要素へのアクセスを提供する。ライブラリへのアクセスはブロック矢印６２で示され、それはプロデューサ６０が、作成するゲームのライブラリから、適合する材料、例えばスプライトをアニメーション化するアニメーションサブルーチン、を使用し取り込むことを可能にする。α言語でのゲームの記述と符号化が終了すると、α言語符号はデータセンター４０のα言語アプリケーションライブラリ４１に保存のため送信される。ブロック矢印６３はそれをしめす。
【００２３】
本発明の１実施形態によれば、データセンター４０に保管される、プロデューサ６０に作成されたゲームのような携帯電話アプリケーションは、場合によって流通のためそれぞれの所有者によって特性を与えられる。例えば、ある所有者はあるアプリケーションを料金の支払いにより販売し、或いはフリーウェアとして流通させるという特性を与える。さらに又は、ある所有者はあるアプリケーションの取得を全体のある区分にだけ、或いは所有者が認めたある人たちだけに制限する。流通用のアプリケーションは、或いは、消費者の関心を集めるため、適切に出版される。
【００２４】
例示のため、プロデューサ６０に作成されたゲームが公衆に販売されるようになったとする。ゲームは潜在顧客の関心を集めるため、ＭＯＰＡＤ２０により適切にインターネット上に公示され、消費者７０はその公示を見て自身の携帯電話用にそのゲームを購入することに興味を示す。消費者はインターネット経由でＭＯＰＡＤ２０にゲームに対する要求を送る。ブロック矢印７１は要求の送信を示す。要求は場合によって、支払いのためのクレジットカード情報と消費者を特徴付ける特徴情報を含む。
【００２５】
特徴情報は場合によって、消費者がゲームを自分の好みに合わせるため、特定する個人嗜好、例えば好みの色構成を含む。
場合によって特徴情報は、使用される携帯電話のモデルに対応して収集された個人情報、消費者の地理的位置、及び消費者の携帯電話プロバイダからの情報、を含む。要求を受け取ると、データセンター４０は自動的に消費者の携帯電話に、電話の機能とアプリケーションライブラリ内のゲームのα言語プログラムを配置するプラットフォームのプロファイルを決定するよう伝える。
【００２６】
データセンター４０はブロック矢印７２で示すように、携帯電話プラットフォームのプロファイル、α言語プログラム、消費者７０の嗜好をメタ符号変換器５０に送信する。メタ符号変換器は消費者の携帯電話用のゲームのα言語プログラムを、プラットフォームのプロファイルと消費者の嗜好に対応して構成する。その後ブロック矢印７３に示すように、構成されたプログラムを場合によりデータセンター４０に返信する。或いは、構成されたプログラムを消費者の嗜好及び／又はプロファイルに適応させるため、特徴情報は構成されたプログラムに直接採り入れられる。データセンター４０は場合によって構成されたゲームを消費者７０の携帯電話にインターネット経由で直接ダウンロードする。ブロック矢印７４はゲームのダウンロードを示す。
【００２７】
次に図２を参照する。図２は本発明の１実施形態に基づく、携帯電話で使用するためのアプリケーションをα言語で記述し符号化する様子を示すため極簡単なコンピュータゲーム１００のイメージ図である。
例示のため、ゲーム１００は「タンク標的」という題名の射撃ゲームである。ゲームは、携帯電話のビデオスクリーン及び／又はスピーカーで表現される画像及び／又は音響実体により適切に示される、４つのオブジェクトからなる；大砲が発砲する砲弾１０４、中心１０６を有する標的１０５、タンクと標的の間に位置する山１０８。タンクの大砲１０３は様々な仰角で異なる選択可能な発射速度で砲弾を発射するために照準を定めることができる。一度発射されると、砲弾は仰角、発射速度、重力、および古典運動学で定められる放物線の軌跡１１０を辿る。
【００２８】
ゲームの目的は発射速度を設定し、大砲１０３をある仰角で狙いをつけて砲弾１０４が山１０８を超えて、標的１０５の中心１０６に当るようにすることである。砲弾が山を越えないときは、山に衝突するときに自爆する。砲弾が標的に当ると、場合によって、砲弾は爆発し、標的はより小さな、当てるのが難しい標的に置き換えられる。演技者の成功レベルは演技者が当てられる標的の小ささにより決定される。
【００２９】
本発明の１実施形態によれば、各オブジェクトはオブジェクトが反応する１組のイベント、及びオブジェクトのイベントに反応した変化（前述のように「アクション」と呼ばれる）により定義されるステートマシンである。例えば、タンクはイベントにより定義され、それは大砲１０３の仰角、砲弾１０４の発射速度を設定する命令と、大砲を発射す命令である。
「命令イベント」は、ゲームが行われる携帯電話プラットフォームのＭＭＩ（不図示）を操作する、演技者によるゲームへの入力である。例えば、大砲１０３の仰角の増加又は減少は、場合によって其々「左イベント」と「右イベント」により実行される。右又は左イベントは演技者が好適にＭＭＩを操作することにより、例えばＭＭＩのキーボード上の右又は左矢印ボタンを押すことにより実行される。同様に発射速度は「昇る」又は「下る」イベントにより増加、減少され、場合によって演技者がキーボード上の上向き又は下向きボタンを押すことによって媒介される。大砲１０３の発射は「発射イベント」に反応して遂行され、場合によって、キーボード上のエンターボタンやスペースバーを押すことにより実行される。
【００３０】
しかし、携帯電話プラットフォームは同一のキーボードを持つ同一のＭＭＩを有するわけではなく、異なるＭＭＩは一般的に異なるキーボード構成を有し、キーボードボタンは異なる機能を持つことが多い。ｉＰｈｏｎｅ（登録商標）のような携帯電話ＭＭＩはキーボードすら持たない。本発明の１実施形態によれば、従って、α言語はイベント及び／又はアクションを特定の携帯電話プラットフォーム又はＭＭＩに対して定義せず、そのかわり複数の携帯電話プラットフォームに実質的に共通な言語及び構文法を提供する。α言語アプリケーションにおいてオブジェクトを定義する記述および定義は、複数のこのようなプラットフォームの内のある携帯電話プラットフォームでの実行に際し、アプリケーションを適合させるため、事前に変換される。
【００３１】
α言語は特定の携帯電話プラットフォームに対して符号化しないが、α玩具箱３２は場合によって、α言語符号の生成を操作するため、キーボードの画像イメージ又はビデオスクリーンなどのＭＭＩ要素の画像イメージを有し、このような画像イメージは本質的に特定の画像幾何模様を有する。しかし、画像イメージは画像的な補助手段であり、その特定の特徴はα言語で書かれたアプリケーションを画像イメージの画像幾何模様に強制しない。一般的には、画像補助手段の特定の画像的特徴は、それ自体を表わすのではなく、意味解釈（セマンテック）を表わすのであり、その意味はメタ符号変換器５０により理解され、意味解釈（セマンテック）の意味が保存されるように、複数の携帯電話プラットフォーム符号のどれにでも翻訳可能である。
【００３２】
例えば、上記の例で、大砲１０３の仰角の上げ下げは、右または左矢印を押すことによって媒介される。
あるいは、α玩具箱３２の「キーボード補助手段」の画像が右と左矢印ボタンに構成され、仰角の上下をそれぞれ示すように使用される。しかし、メタ符号変換器５０は右と左ボタンをそれ自体が右と左ボタンと「理解」するわけではなく、それぞれ意味解釈（セマンテック）の「上げ」と意味解釈（セマンテック）の「下げ」の代表物として「理解」する。標的（中心１０６）が使用される携帯電話プラットフォームが仰角を上下する矢印ボタンを持たない場合は、メタ符号変換器５０は「上げ」と「下げ」を、そのプラットフォームが間違いなく持っているキーボード上の「１」と「２」のボタンをそれぞれ押すように変換する。
【００３３】
本発明の１実施形態における、１つのアプリケーションに対するα言語符号の例示として、リスト１の符号部分は図２のタンク標的ゲーム１００のオブジェクト（タンク１０２、砲弾１０４、中心１０６、山１０８）のα言語符号を例示的に示す。リスト１はステートマシンとしてのオブジェクトのロジックを符号化し、そのロジックはゲームの最中に起こるイベントに対するオブジェクトの反応を制御する。表示の便宜上オブジェクトの画像と音響効果を定義するα言語符号は記載されていない。砲弾１０４は符号では「砲弾（キャノンボール）」と表現されている。
【００３４】
下記のタンク標的ゲーム１００のα言語符号は特定の構文法を示すが、α言語は下記に示されるものとは異なって構成される可能性が有り、本発明はこのタンク標的ゲーム１００に示された特定のα言語符号に限定されない。当業者には、異なる言語及びゲームが想起される。
【００３５】
（ゲーム作成工程）
再び図１を参照する。要求に基づきゲーム記述子は、ＭＯＰＡＤ２０により、既定の携帯機器の資産、従って移植された有効なアプリケーションに変換される。ゲームとコンテンツはプラットフォームに依存しないコンテンツ記述子の頂上、ゲーム抽象化層に開発される。サーバ側のアーキテクチャはプラットフォームに依存しない開発と継ぎ目のない移植を可能にし、作成されたコンテンツの後方及び前方互換性を達成する。
【００３６】
ゲーム抽象化層に関する簡単な議論は本発明の原理の理解に役立つ、というのは、ゲーム抽象化層はプラットフォームにサポートされた最も基礎的な建築ブロックを構成するからである。この層は、コンテンツの定義に必要とされる全ての情報を保管している。実際のコンテンツの実行は、他の層にあるロジックにより異なるが、ゲーム抽象化層は、「遊び場」即ち、ゲームと空間のようなゲーム要素、ゲームの資産、背景画像、背景音響、メニュー項目、そのアイコンを定義し、その結果としてのコンテンツの行動を特定する。
【００３７】
標準化されたデータオブジェクトモジュールをその基礎に使用することにより、ゲーム抽象化層はコンテンツ開発用の多くのスタジオ、エディタ及びウィザードの実行を容易にする。通常の挨拶状、アクションゲーム又は全ての分野のアプリケーションに対するウィザードの書込みは、サーバ側のインフラを変更することなく短時間で出来る。この標準は能力の拡張、例えば、ＧＰＳ、進歩したネットワーク、ＭＭＩ能力などの拡張が必要な時に、拡張を容易にする。ゲーム抽象化層は、前述のように空間とオブジェクトを含む。ゲームを１つの言語から他の言語へ翻訳するため、ゲーム抽象化層は、右から左に向かう言語を含む完全ユニコードサポートを有し、言語関連データの抽出と更新を円滑にする。
【００３８】
（データセンター）
データセンター４０は幾つかの主要な役割を有する。（１）コンテンツに関するデータと開発者口座を集めること、（２）ダウンロードと動作中の生成工程を取り扱うこと、（３）中央に集まった顧客口座を管理すること、（４）種々のＡＰＩを使用してサービス層を露出すること。
本発明は上記（２）に大きく関している。ゲームと他のアプリケーションは、上記のゲーム抽象化層および典型的にはα言語を使用して、開発者により作成されていると仮定する。ゲーム又はアプリケーションは今や、携帯電話のような遠隔機器を使用する最終顧客により要求された。以下の文節ではダウンロードの高度な記述が示される。
【００３９】
図３は図１のデータセンターのブロック図である。データセンターは典型的に汎用又は組み込みサーバ１１２又は他のコンピュータ処理装置を有し、それは、以下に記述する機能を実行する適合するメモリとソフトウェアでプログラムされる。図３及び他の図においてデータセンターの各部分は幾つかの独立したブロックを有するように表現されているが、これらのブロックは必ずしも離れた物理的実体ではなく、むしろ例えば、処理装置にアクセス可能な１つのメモリに保管された異なる計算業務や又はデータジョブを表わす。このような業務は単一の処理装置又は多重の処理装置で処理されるコンピュータプログラムにより遂行される。示された機能ブロックはコンピュータプログラムの別個のソフトウェアモジュールとして纏められる。ソフトウェアは処理装置に対しＣＤ−ＲＯＭ又は不揮発性メモリのような接触可能媒体で提供される。あるいは又は、データセンター４０はデジタル信号処理装置又はハード接続ロジックを有する。
【００４０】
さらにデータセンター４０は、接触可能コンピュータ読み取り可能媒体においてトランジションを形成することにより、機能を遂行するためのコンピュータ命令を再生するＩ／Ｏ機器を有してもよい。ここにトランジションは、他のコンピュータにより命令又はデータとして翻訳可能なデジタルパターンからなる。
【００４１】
データセンター４０にはゲーム貯蔵場所１１６があり、コンパイルされたゲームおよびコンパイルされないゲーム関連データ及びプログラムを含み、それらは以降「抽象ゲームデータ」と呼ばれる。ゲーム貯蔵場所１１６は「抽象ゲームデータ」を発信しまた受信するインタフェース１１８と、コンパイル済みゲームファイルを受信し更新するインタフェース１２０とを露出する。インタフェース１２０はゲーム生成工程と強く結び付いている。ゲーム貯蔵場所１１６はまた、コンパイル管理モジュール１２２及び、他の遠隔機器に対して以前コンパイルされたゲームのバージョンを保管するゲームデータベース１２４を含む。コンパイル管理モジュール１２２は、符号生成部１２６及びパッチャー１２８を含む。コンパイル管理モジュール１２２は分析部１３０と協業する。分析部はこの実施形態ではデータセンター４０と離れたところで、監督実体、アプリケーション生成装置１３２に置かれる。しかしある実施形態では、分析部１３０は実行の便宜上データセンター４０に含まれる。これらモジュールの機能は以下に述べる。
【００４２】
インタフェース１１８はコンパイルされたゲーム記述子を２つのアーギュメントに基づいて取り扱う。（１）ＧＩＤ−世界的に一意のゲーム識別子、（２）コンパイル構成―ゲームをコンパイルするのに使用された種々のパラメータからなる構成。この構成は、通常２つの他のオブジェクト、機器構成及び顧客構成から組み立てられる。
機器貯蔵場所１３４はクライアント機器即ち携帯電話の構成を、機器データベース内に維持する。機器貯蔵場所１３４は、機器指紋サブシステム１３８と機器記述子生成器１４０とからなる。
【００４３】
ゲーム貯蔵場所１１６が電子的コンパイル要求をクライアントから受け取ると、次のアクションが自動的に行われる。要求元クライアントの機器構成が獲得され又は形成される。機器構成は機器貯蔵場所１３４内のコンパイル構成クラスのパラメータとして維持される。
顧客貯蔵場所１４２はコンパイル構成パラメータに含まれる顧客構成を維持する。顧客構成は顧客データベース１４４に保管され、顧客指紋サブシステム１４６の助けによって識別される。もし必要とされる顧客構成が顧客データベース１４４に存在しない、又は、顧客指紋サブシステム１４６を使用して信頼度高く識別できない場合は、顧客記述子生成器１４８によって生成される。
【００４４】
ゲームデータベース１２４内の以前にコンパイルされたゲームがコンパイル構成パラメータの要求を満たす場合は、それはゲーム貯蔵場所１１６から獲得される。そうでなければ、コンパイル構成パラメータにより特定されるコンパイル構成インスタンスが、機器と顧客の構成を使用して作成される。そしてコンパイル要求が生成され、コンパイル管理モジュール１２２により実行される。コンパイルされたゲームはゲームデータベース１２４に追加され、インタフェース１２０経由で流通される。
【００４５】
ゲームデータベース１２４は４つのテーブルからなる。リスト２はゲームとその履歴を大まかに識別するために使用される記録フォーマットを示す。リスト３はゲームの流通に関するデータを保管する記録フォーマットをしめす。リスト４は各ゲームに対するコンパイルされたゲームのキャッシュと作成された構成を記述する記録フォーマットをしめす。リスト５は作成された構成を示し、そこでは「構成」フィールドは顧客構成と機器構成の情報が組合せとなっている。
【００４６】
ゲーム貯蔵場所１１６は柔軟であり、完全な再コンパイルなしに、要求されたゲームに修正、例えば、画像の交換、外部メタデータの交換を加えることが出来る。このようなメタデータの例は、演技者レベルの情報である。そのような動作中の修正は再コンパイルよりはるかに迅速に行え、また、ゲーム貯蔵場所１１６に、少しの修正が個別に維持される場合に保管を必要とする大量のデータの負荷を与えることが無い。修正はパッチャー１２８により行われる。パッチャー１２８の使用により再コンパイルを避けることは時間を大幅に削減する。
【００４７】
最後にコンパイルされ、パッチされるか獲得されたゲームは要求元実体に流通システム１５０により戻される。流通システム１５０の要素は、資金化マネージャ１５２、アプリケーション開発マネージャ１５４、アフィリエイトマネージャ１５６、請求サブシステム、広告サービスサブシステムからなる。
【００４８】
（機器貯蔵場所）
機器貯蔵場所１３４は、要求元クライアントに対し機器構成を生成する役割をはたす。
図４は、本発明の実施形態に基づく図３の機器貯蔵場所１３４により自動的に実行される、機器データベース１３６を構築する工程のフローチャートである。機器データベース１３６は各機器のファミリー、即ち１つ以上の類似機器、に対する全てのファミリーメンバーが由来する共通機器構成を保持する。新しい機器構成が構築されるとそれは自動的に既存のファミリーグループに追加され、そのグループの資産を継承する。生成された機器資産はその後より正確な値が得られるとそれに置き換えられる。
【００４９】
機器データベース１３６は、３つのテーブルからなる。リスト６は機器構成データの記録フォーマットである。リスト７は機器識別子を既知のイシューにマップする記録フォーマットである。リスト８は既知の機器イシューに関する記録フォーマットである。
【００５０】
最初のステップ１６２において、機器、通常は携帯電話のモデル、が選択される。次にステップ１６４において、その機器の種々の特徴、例えばＧＰＵ２次元能力、表示画面の寸法、キーボード配置、記憶容量、を発見するためのベンチマークテストとアプリケーションテストを実行することにより、現在選択された機器の機器構成が構築される。ある実施形態では、テストはオフラインで機器の他の試験機で実行される。しかし実際の要求元機器を動作中に調べることは可能である。この選択は、機器の最新のリリース又は旧型の機器の場合特に有用である。そのような場合は、顧客の要求を満足するために、その機器の別の試験機を適切な時間内に入手することは困難である。
【００５１】
判断ステップ１６６に進み、さらなる機器が処理される必要が有るかが判断される。判断ステップにおける判断がＹＥＳであれば、最初のステップ１６２に戻る。
判断ステップにおける判断がＮＯであれば、ステップ１６８に進み、特定の機器にダウンロードされるアプリケーションに対するクライアントの要求を受け取る。要求は明示的又は暗黙的である。暗黙の要求は、最終顧客が直接特定のリンクをブラウズし、そのリンク経由であるアプリケーションを受け取るように要求する場合に通常実行される。
【００５２】
次に判断ステップ１７０に進み、クライアントの要求が暗黙かどうかが判断される。判断ステップ１７０の判断がＮＯの場合、判断ステップ１７２に進む。
判断ステップ１７０の判断がＹＥＳの場合、ステップ１７４に進む。暗黙の要求にサービスする場合、機器貯蔵場所１３４は、機器指紋サブシステム１３８を呼び出し要求元機器を自動的に識別する。
【００５３】
機器指紋サブシステム１３８は、遠隔クライアント機器の少なくとも下記の特性を識別する：ブラウザのユーザエージェント、ユーザエージェントのプロファイル、顧客エージェントのＵＲＬ。機器指紋サブシステム１３８は、これらの要素を１つ１つ機器データベース１３６に保管された機器構成にマップしようとする。クライアント要求は典型的にＨＴＴＰ要求として受信され、それはユーザエージェントのプロファイルＵＲＬを含む機器ＩＤデータ構造にパースされ挿入される。ＵＲＬはＨＴＴＰヘッダーに含まれ、ユーザエージェントのプロファイルを指し示し、それは一般的に種々の機器パラメータを含むＸＭＬドキュメントである。機器指紋サブシステム１３８は、ＸＭＬドキュメントの最初の分析を行い、機器をより良く識別するため関連するパラメータを抽出する。例えば、機器提供者名は通常ユーザエージェントのプロファイルに含まれる。要求元機器のモデルも存在すれば含まれる。これらはそれだけで要求元機器を識別できる。
【００５４】
次にステップ１７２に進み、既知の機器構成との正確な一致が得られたかが判断される。判定ステップ１７２の判定がＹＥＳの場合、ステップ１７６に進む。
判定ステップ１７２の判定がＮＯの場合、ステップ１７８に進み、機器指紋サブシステム１３８により判定された情報と、最初のステップ１６２とステップ１６４で構築された機器データベース内の対応する要素との間の関連性が評価される。この作業は顧客エージェントのプロファイルＵＲＬと既知の機器構成との間のマッピングを検査することにより行われる。このステップの柔軟性は、マッピングの識別に正規表現を使用することにより向上する。
【００５５】
判定ステップ１８０に進み、ステップ１７８で評価されたマッピングの関連性が強いと判断されたかが判定される。判定ステップ１８０の判定がＮＯの場合、ステップ１８２に進む。
判定ステップ１８０の判定がＹＥＳの場合、ステップ１８４に進み、要求要素内の他の全てのクライアントは、ステップ１７８と判定ステップ１８０で識別された機器構成と関連付けられる。このように、機器データベースは、顧客がアプリケーションをダウンロードする要求のたびに、新しい情報で更新されうる。或いは発見的な方法が要素を特定の機器にリンクするのに使用されてもよい。例えば、要求元機器の顧客エージェントのプロファイルと既知の機器の間のテキストの類似性が利用されてもよい。最後のステップ１７６において、現在の機器構成に関連する機器がダウンロードのため選択される。
【００５６】
ステップ１８２は図３の機器貯蔵場所１３４がそれ以前のステップで機器を識別できなかった場合に実行される。機器は調査される。機器貯蔵場所１３４は、典型的にＸＭＬファイルで表現されるユーザエージェントのプロファイルを獲得する。ユーザエージェントのプロファイルはパースされ、そして図３の機器記述子生成器１４０により新しい機器構成をコンパイルするため使用される。ユーザエージェントのプロファイルから出来るだけ多くの情報が抽出され、それには以下のカテゴリを含む：（１）画面寸法、（２）ピクセル当りビット数、（３）実行環境（ある場合）で（ａ）ＯＳ名、（ｂ）ＯＳバージョン、（ｃ）Ｊａｖａ（登録商標）が使用可能か、（ｄ）ＪＶＭのバージョン、（ｅ）Ｂｌｕｅｔｏｏｔｈ（登録商標）のバージョン、を含む、（４）販売者名、（５）モデル名、（６）使用可能言語。
【００５７】
機器データベース１３６は再び新しい機器プロファイルを既存の機器プロファイルに出来るだけ近くに適合させるために参照される。新しい機器の不明な詳細は多くの場合このように追加される。或いは、新機器のプロファイルは、Ｓｏｕｒｃｅ−Ｆｏｒｇｅ．ｎｅｔ経由で入手可能なＪＢｅｎｃｈｍａｒｋ外部ベンチマークプログラムから得られる情報で補足される。新しい機器構成はその後、ステップ１８６において、機器データベース１３６に追加される。その後、新しい機器は最終ステップ１７６において選択される。
【００５８】
（顧客貯蔵場所）
図３に戻って、顧客貯蔵場所１４２は後にアプリケーションの生成時にコンテンツを個人化するための個人やグループに対する構成情報を保持する。顧客構成は言語のような地域パラメータ、色構成の嗜好のようなコンテンツ関連パラメータ、連絡先や顧客名のような個人情報、デジタル署名、資格のようなチャネルや地域特異の必要条件、等の資産を保持する。
【００５９】
顧客構成は顧客データベース１４４に保管され、上記の機器構成と同様のやり方で、暗黙にまたは明示的に抽出される。暗黙に抽出される場合、顧客構成は以下の１つを使用した要求を伴う：
（１）顧客から提供された識別子、例えば口座識別子
（２）顧客の国とＩＳＰを判別するのに使用される、ソースＩＰアドレス
（３）第三者から提供される識別子
【００６０】
さらに、機器から得られた情報は追加の顧客情報を明らかにし、それは、好適には信頼性指標を伴って、顧客データベース１４４に採り入れられる。例えば、Ｂｌａｃｋｂｅｒｒｙ（登録商標）機器の顧客は、２０−２５歳男性で大企業または官公庁に働いていると推論される。顧客データベース１４４は１つのテーブルからなり、登録顧客のリストを保持する。その記録フォーマットはリスト９に示される。
以下に記載される動的コンパイルは顧客に特異のデータの生成されたアプリケーションへの埋め込みを可能にする。
【００６１】
（流通）
流通工程はデータセンター４０により組織化され、上記の要素を含んでいる。ピアツーピア流通機構は、顧客特異のコンテンツの埋め込み能力と共に、顧客社会に向いた収集を可能にする。
図５を参照する。それは本発明の１実施形態に基づく、コンパイルされたアプリケーションを要求元機器に提供する工程を示すフローチャートである。
最初のステップ１８８において、要求元機器はデータセンター４０に、典型的にインターネット経由或いは他の適合する通信チャネルで、アクセスする。
次にステップ１９０において、機器貯蔵場所１３４は要求元機器の機器構成を獲得するために参照される。１つの機器構成が獲得されるか、ステップ１６８から始まる図４で記載された方法を実行することにより新しい機器構成が生成される。詳細は簡略化のため、再掲載しない。
【００６２】
次にステップ１９２において、顧客貯蔵場所１４２が顧客構成を得るために参照される。手続はステップ１９０と似ている。要求元の機器の顧客が識別出来ない場合は、デフォルトの顧客プロファイルが生成され、顧客に関する追加の情報がデータセンター４０との更なる相互作用により得られた場合、又は他の情報源から情報が得られた場合、修正される。デフォルトのプロファイルは、ＩＰアドレスや要求者のような通常ＨＴＴＰ要求において得られる情報に基づく修正を含む。
次にステップ１９４において、顧客構成及び機器構成はコンパイル管理モジュール１２２に提供され、コンパイル構成が構築される。
【００６３】
次にステップ１９６において、ゲーム貯蔵場所１１６に対し２つのアーギュメントで１つの要求が作られる：顧客構成と機器構成。
次に判定ステップ１９８に進み、アプリケーションの要求されたバージョンがゲーム貯蔵場所１１６に存在するかが判定される。
判定ステップ１９８の判定がＹＥＳの場合、ステップ２００に進み、そこにあるバージョンが獲得される。
判定ステップ１９８の判定がＮＯの場合、ステップ２０２に進み、アプリケーションの新しいバージョンが、コンパイル管理モジュール１２２の指示により、「ＧｅｔＣｏｍｉｌｅｄＡｐｐ」伝文を、要求元機器にとって適切なコンパイラに送ることにより、コンパイルされる。例えば、ある機器にとっては、Ｊａｖａ（登録商標）コンパイラとパッケージャ−は、ＪＡＲファイル又は仮想マシンを使用した実行に適した他のアーカイブを、顧客機器上に生成するように仕向けられる。或いは、ネイティブな実行可能符号が、コンプライアントなＣ＋＋コンパイラ、例えばＧＣＣを使用して、生成される  これはＳｙｍｂｉａｎ（登録商標）をベースにした携帯電話、例えばＮｏｋｉａ６１２０ｃ，Ｎｏｋｉａ６６００に対しては適切である。あるいは、事前に存在するバージョンと要求されるバージョンとの差異が比較的小さい場合は、パッチャー１２８が事前に存在するバージョンを修正してもよい。これはコンパイル管理モジュール１２２により、機器構成とコンパイル構成を参照して決定される。
ステップ２０２又は２００の終了後、最終ステップ２０４において、コンパイルされたアプリケーションは要求元機器にアップロードされる。
【００６４】
（コンパイル）
この章では図５のステップ２０２のコンパイル手続について詳細に述べる。
図３を再び参照して、ゲーム貯蔵場所１１６により、ゲーム抽象化ファイルが受け取られるとすぐにパース工程が始まる。ゲーム抽象化ファイルは典型的にＸＭＬファイルとして、またα言語のようなゲーム記述子言語で表現されている。このファイルがゲーム抽象化層の産物であることが前述の議論から思い出されよう。ゲーム貯蔵場所１１６は、ファイルをパースして効率のよい情報問合せを補助するメモリ表現にし、また、アブストラクションの評価を行う役割を有する。
【００６５】
パースが終わると「浅い」評価が行われる。「浅い」評価工程は、ゲーム記述子が損なわれていないと評価する役割を有する。それは、例えば、毀損されたレファレンスや原形の損なわれたデータの発見に向けられる。「浅い」評価は「深い」評価と呼ばれる他の型の評価と区別される。「深い」評価はゲームの作成時に行われ、ゲームロジックが評価される。深い評価は、ゲームが適正な速度、場所、等を使用していることの判定も含む。深い評価は、典型的に編集ツールにより実行される。
深い評価と異なり、コンパイル段階での浅い評価は、完全に機能するゲームを前提とする。従って浅い評価は致命的と指摘された全ての誤りに関して、非常に厳格である。
【００６６】
（多重分析）
パースと評価が終了した後、ゲームファイルの分析がアプリケーション生成装置１３２により組織され、それは、コンパイル管理モジュール１２２と分析部１３０を呼び出す。一連の特別仕様の分析器が受信したゲーム抽象化ファイルのパースされたデータ構造をスキャンし、最適の符号生成を推進するため詳細な分析が行われる。このステップは携帯電話の資源が限られるため、非常に重要である。
【００６７】
図６は、本発明の実施形態に基づき構築され、操作される図３のコンパイル管理モジュール１２２の分析部１３０の詳細なブロック図である。
パースされたゲーム抽象化ファイルのデータ構造は多くの場合非常に複雑で、ゲーム要素間で強い相互依存性がある。また、分析部１３０のある要素は他の要素により生成されたレポートに依存する。分析の精度を最高にするため、分析を多段で行うことを勧める。例えば、第１のステップで、コンパイル管理モジュール１２２が不使用の機能を検知し、コンパイラにその機能に対する符号を生成しないように指示する。別のステップでは、不使用のゲームオブジェクトが検知され、コンパイラはそれらをデータ構造から削除するように指示される。２つの工程が同時に実行される場合は、不必要なゲームオブジェクトだけで使用されるある機能を実行する符号は、不適切に生成されるかもしれず、それはその後の最適化の中でゲームオブジェクトが削除されるときに除かれる。
【００６８】
上記ステップの終了後、パースされたデータ構造はゲームの完全な機能を記述する。それでも、これらデータ構造は更なる最適化の試みの中で非効率であることが判る。この目的のより好ましい達成のため、幾つかの補助データ構造が生成され、データの再構築が行われる。例えば：
ゲームオブジェクトの用途とイベントの取り扱いを記述する依存性グラフの作成。
ゲームに使用される全てのオブジェクトの用途と依存性が分析されマップされる。このことは、生成されたゲームから不使用のロジックを除去するような最適化を可能にする。これはコンパイル管理モジュール１２２の１つのモジュール、ゲームオブジェクト分析器２０６により扱われる。
【００６９】
ゲームの依存性は携帯電話の能力および使用されるゲームエンジンに対しマップされる。ゲームエンジンは対象実行環境の言語で記述された１組のライブラリである。ライブラリはα言語により必要とされるサービス、例えば、オブジェクト管理サービス、物理的エンジンを提供する。ライブラリは対象プラットフォームに最適に適合するため生成工程の間に変更され、又は構築される。このマッピングを使用して、コンパイラは無関係の能力を全て除外することにより、「痩せた」ゲームバージョンを、生成することが出来る。これはエンジンに含まれる移動経路や加速等の能力だけでなく、音、ネットワーク、記憶容量などの携帯電話の特徴を含む。この段階は１つのモジュール、ゲーム資産分析器２０８により扱われる。
【００７０】
変数と資産アクセスの変更点はマップされる。これにより、種々の符号最適化、例えば変数を定数と見做すこと、を可能にし、それにより記憶容量を節約する。これは１つのモジュール、変数分析器２１０により取り扱われる。
ゲームで表示されるテキストはフォント、及び、色、スタイル、効果などのフォント特性に従って分析されマップされる。この情報は機器特異の表示パラメータ、例えば反エイリアスサポート、と組合わされて、記憶容量の必要使用量を最小にしながら、最適なテキスト記述ルーチンを生成するのに使用される。これは１つのモジュール、フォント分析器２１２により扱われる。
【００７１】
（データ再構成）
ある場合には、コンパイル管理モジュール１２２の分析器はゲームのパースされたデータ構造を符号最適化のために直接変更する。コンパイル管理モジュール１２２に対し機器及び顧客構成情報が示されていたことを思い出すであろう。その分析器はコンパイルの鎖の中で機器特異の特性及び顧客特異のデータを知る最初の要素である。ゲームデータ構造はもともとコンパイル工程の外で構築され、共に顧客及び機器不可知である。データ再構成の例を以下に示す：
【００７２】
背景格下げ。コンパイルが弱い機器を対象とし、ソースゲームが複雑な背景を有する場合。背景分析モジュール、背景分析器２１４は、ゲーム中の表示された画像が対象機器の画像能力に適合しているかを確認するため、符号又は構造変更の必要性を評価する。背景分析器２１４モジュールは必要なら画像の寸法を変更して画面寸法に適合させ、画像の色パレットを変更する。最適化工程は機器の能力限界を認識し、背景分析器２１４モジュールは、背景の単純化又は背景を固定色と置き換えるかのいずれかにより、背景を格下げする。他の最適化は、多数の色に対するゲームサポートに拘わらず、ビット深さを減少させることを含む。反エイリアスの使用は、対象機器で使用可能であれば、背景分析器２１４モジュールにより制限されうる。
【００７３】
回転画像生成。ある対象機器は回転及び鏡面対称操作のバギーな実行を提供している。汎用ゲームをこのような対象機器で動かすには、種々の回転状態の追加画像を事前に生成し、ゲームデータ構造に挿入しなければならない。記憶ペナルティを最小に保つため、特別な分析器が回転の必要性を判定する役割を担い、それに従い、回転操作の対象となるオブジェクトに対し追加画像の生成の旗をセットする。これは１つのモジュール、スキン分析器２１６が取り扱う。
【００７４】
（符号生成）
図７は、本発明の実施形態に基づく、図３のコンパイル管理モジュール１２２内の符号生成部１２６の詳細ブロック図を示す。  コンパイル鎖の符号生成段階を通じて、機器に特異な符号は生成されコンパイルされる。この段階は上記の分析段階の成果物に大きく依存している。符号生成部１２６の構成は概略符号生成器に基づき、それは全ての必要サービスを定義する。現在のバージョンはＪａｖａ（登録商標）ベースの符号生成を実行する。しかし発せられる符号は多重プラットフォームのＪａｖａ（登録商標）符号である必要はなく、機器で直接実行可能な符号、または特定の機器に適合または特化されたＪａｖａ（登録商標）符号でよい。
【００７５】
符号生成部１２６は図７にそれぞれ符号生成器２１８，２２０，２２２として示すように複数の符号生成器を有し、それらは対象機器の性質に従って選択可能である。符号生成器２１８，２２０，２２２はコンテンツを「ゲーム言葉」で記述するために使用されるα言語と生成された符号との橋渡しをする。生成された符号は効率的に動く必要が有り、α言語ゲーム仕様には通常似ていない。其々の対象プラットフォーム、例えばＪａｖａ（登録商標），Ｆｌａｓｈ，Ｓｙｍｂｉａｎ（登録商標），ＩＰｈｏｎｅ（登録商標）は別々の符号生成器により実行され、その中で出力符号は必要なサービスを対象機器上に呼び出すことが出来る。符号生成器の一群２１８は少なくともα言語ゲーム仕様で定義された全ての機能を取り扱う必要がある。しかし符号生成器２１８は対象とする特定のプラットフォームに関連する追加の機能を実行することがある。
【００７６】
Ｊａｖａ（登録商標）クラスファイルのような符号ファイルの中にバイナリデータを保管するのは非効率であり、あるアプリケーションが幾つかの機器で動作しないという結果をもたらす。列データパッカー２２４は、バイナリデータを外部ファイルにしまうことにより、この可能性を最小にする。データ管理をこの要素に集約することにより、同一のシークエンスの冗長な保管が合体され、複雑化を防止する。列データパッカー２２４。
【００７７】
符号生成器２１８の１つにより高度言語から生成された符号は幾つかの望ましくない特徴を持つ。１つの例はメソッド寸法である。性能を低下させる非常に大きなメソッドを避けることが望ましい。機能スプリッタ２２６はコンパイルされた符号状のメソッドを分析し、それをより小さな別々にロード可能な部分に分離する。機能の分離は機器依存性であり、コンパイル管理モジュール１２２によりこのように機器ベースに構成される。トリガーとなるパラメータは機器の一般的なメソッド寸法制限により制限され、また例えば機器構成が上記の図４のステップ１６４のように構築された時に決められる、
機器固有の性能特性により影響される。
【００７８】
生成された符号を図３のパッチャー１２８により容易に変更可能とすることが符号生成段階で必要である。これは特に、種々の個人化パラメータ、例えばオンラインゲームでのスコア登録に典型的に使用される一意の顧客識別子、顧客がさらにゲームを獲得することを可能にする開発者サイトへのリンク、及びゲームに埋め込まれたテキストの宣伝、を更新するのに有用である。特別なパッチ準備モジュール２２８は、このような更新を許可する適切なインタフェースが存在することを確認する。
【００７９】
生成されたコンテンツが梱包される前に符号難読化及びバイナリレベル変更の工程を通る。符号難読化モジュール２３０は、他者の分析や逆行分析を防止するため、既知の難読化技術を使用して生成された符号を変更する。
符号最適化モジュール２３２は種々のバイナリレベル最適化を生成された符号にっ適用する。例えばＪａｖａ（登録商標）符号では不使用のフィールドとメソッドが除去される。
梱包はコンパイル工程の最終段階であり、それに続き生成されたコンテンツは対象機器にインストールされ、動作される。梱包段階は其々のプラットフォームについて別々の梱包モジュール２３４を使用して実行される。現在の実装はＪａｖａ（登録商標）ＪＡＲファイルを生成し、そして独自のＢｌａｃｋｂｅｒｒｙ（登録商標）ＣＯＤフォーマットに梱包される。
【００８０】
図８は本発明の実施形態に基づく、クライアントの要求に対応するアプリケーションのコンパイルのステップを総括する、シークエンス図である。順序はステップ２３６において始まり、コンパイルされたアプリケーションがクライアントに返される流通ステップ２３８で終わる。
【００８１】
本発明は上記で特に示され記述されたものに限定されないことは、当業者には認識される。むしろ本発明の範囲は上記に記載された種々の特徴の組合せや準組合せを含み、また上記の記載を読んだ当業者が想到する従来技術に無い変化形や変更を含む。  
（コンピュータプログラムリスト）
（リスト１：タンク標的ゲーム：α言語の例）
【００８２】
【表Ｌ１−１】
2011527465.tif 000004
【表Ｌ１−２】
2011527465.tif 000005
【表Ｌ１−３】
2011527465.tif 000006
（リスト２：ゲーム記述子）
【表Ｌ２】
2011527465.tif 000007
（リスト３：流通データ）
【表Ｌ３】
2011527465.tif 000008
（リスト４：コンパイルされたゲーム）
【表Ｌ４】
2011527465.tif 000009
（リスト５：構築された構成）
【表Ｌ５】
2011527465.tif 000010
（リスト６：機器）
【表Ｌ６】
2011527465.tif 000011
（リスト７：機器問題）
【表Ｌ７】
2011527465.tif 000012
（リスト８：既知の問題）
【表Ｌ８】
2011527465.tif 000013
（リスト９：顧客保存場所）
【表Ｌ９】
2011527465.tif 000014
【符号の説明】
【００８３】
２０  ＭＯＰＡＤ    
３０  道具箱          ３１  命令セット        ３２  α玩具箱
４０  データセンター  ４１  α言語ライブラリ  ４２  顧客データ
５０  メタ符号変換器  ６０  プロデューサ      ７０  消費者
１１２  サーバ  １１６  ゲーム貯蔵場所    １１８，１２０  インタフェース
１２２  コンパイル管理モジュール          １２４  ゲームデータベース
１２６  符号生成部    １２８  パッチャー      １３０  分析部
１３２  アプリケーション生成装置          １３４  機器貯蔵場所
１３８  機器指紋サブシステム              １４０  機器記述子生成器
１４２  顧客貯蔵場所                      １４４  顧客データベース
１４６  顧客指紋サブシステム              １４８  顧客記述子生成器
１５０  流通システム                      １５２  資金化マネージャ
１５４  アプリケーション開発マネージャ    １５６  アフィリエイトマネージャ
１５８  請求サブシステム                  １６０  広告サービスサブシステム  
【図１】
2011527465.tif 000015
【図２】
2011527465.tif 000016
【図３】
2011527465.tif 000017
【図４】
2011527465.tif 000018
【図５】
2011527465.tif 000019
【図６】
2011527465.tif 000020
【図７】
2011527465.tif 000021
【図８】
2011527465.tif 000022
【国際調査報告】
2011527465.tif 000023