説明

コンピュータアプリケーションの生成・配布方法

本発明の実施形態はコンピュータ用カスタムアプリケーションの作成のための方法とシステムを提供する。処理装置(112)はコンピュータアプリケーションの規格をプラットフォームに依存しない言語で保管するように動作できる。離れたクライアント機器(70)は特定のアプリケーションの配送をその実行のため要求する。処理装置は離れたクライアント機器に対し、離れたクライアント機器の特性と能力からなる機器構成を構築するように求める。処理装置はまた、顧客構成を獲得し、機器構成と顧客構成に従ってコンパイル構成を確立する。コンパイル構成は特定のアプリケーションのプラットフォームに依存しない言語に適用され、離れたクライアント機器で動作するように適応されカスタム化されたコンテンツを含む、コンパイルされたアプリケーションを生成する。処理装置はコンパイルされたアプリケーションを離れたクライアント機器にダウンロードさせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの開発、インストールおよび管理に関し、より詳細には、異なる操作プラットフォームと能力を有する複数の機器に画像表現可能なコンピュータアプリケーションを提供することに関する。
【背景技術】
【0002】
(関連出願の相互参照)
本出願はここに参照され、取り入れられる米国暫定特許出願US61/076,894出願日2008年6月30日の恩恵を受け享受する。
【0003】
以下の記述に使用される特定の接頭語と省略語は表1の通りである。
【表1】

携帯電話およびPDAは以降、総称して「携帯電話」と呼ばれる。それは無数の異なるハードウェアとソフトウェアの構成で市販され、基本通信サービスに加え多数の他の機能を提供している。携帯電話は、薄いか厚く、大小のビデオスクリーン、及び/又はキーボード、カメラ、当該電話が提供する種々の機能を顧客とインタフェースする異なるGUIを有している。製造メーカは異なるチップセット、異なるオペレーションシステムおよびコンピュータ言語を使用して携帯電話の機能を実現する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国暫定特許出願US61/076,894
【発明の概要】
【0005】
本発明の1実施形態は、コンピュータ用カスタムアプリケーションの作成のためのアプリケーションの流通システムであって、
処理装置と、
プログラムとデータオブジェクトを保管する前記処理装置にアクセス可能な記憶装置と、を有し、
前記プログラムの実行は前記処理装置に対し、
前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力からなる機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
からなるステップを実行させる、ことを特徴とするシステム、を提供する。
【0006】
プログラムとデータオブジェクトはさらに既知のタイプの遠隔機器の構成を有する機器貯蔵場所を有し、
離れたクライアント機器に対し機器構成を構築するように求めるステップは、
機器貯蔵場所は離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
機器構成を機器貯蔵場所に保管することにより、機器貯蔵場所を機器構成に適合させるステップと、
からなる。
プログラムとデータオブジェクトはさらに機器指紋サブシステムを有し、
離れたクライアント機器に対し機器構成を構築するように求めるステップは、
機器指紋サブシステムを呼び出し、信号を分析して離れたクライアント機器の機器特性を識別し、そして機器特性に対応して離れたクライアント機器が機器貯蔵場所にある既知の機器構成と関連付けられるか否かを判定するステップを有する。
【0007】
アプリケーションの流通システム他の1面では、プログラムとデータオブジェクトはさらに、其々の機器に依存しないアプリケーションアブストラクションとコンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースと、アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有し、
処理装置は、さらに
変数分析モジュールを呼び出し、アプリケーションアブストラクションの符号において変更点を判定するステップと、
フォント分析モジュールを呼び出し、特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
背景分析モジュールを呼び出し、機器構成における離れたクライアント機器の画像能力に適合させるために特定のアプリケーションを再構成する必要があるか否か判定するステップと、
スキン分析モジュールを呼び出し、機器構成における離れたクライアント機器の記憶容量に対応して、特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
を実行するように動作可能である。
【0008】
アプリケーションの流通システムの更なる1面では、プログラムとデータオブジェクトはさらに、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
コンパイル構成を適用するステップは、
コンパイル構成に対応して符号生成器の1つを選択するステップと、
選択された1つの符号生成器で、特定のアプリケーションのコンパイルされたアプリケーションを有する、生成された符号を送信するステップと、を有する。
生成された符号は、離れたクライアント機器用のネイティブな実行可能符号であり、或いは、生成された符号は、離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである。
プログラムとデータオブジェクトはさらに、顧客指紋サブシステムを有し、
処理装置は、顧客指紋サブシステムを呼び出し顧客の顧客特性を識別し、顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能である。
【0009】
アプリケーションの流通システムの追加の1面では、処理装置は、パッチャーモジュールを呼び出して特定のアプリケーションの現在のコンパイルされたバージョンを変更し、現在のコンパイルされたバージョンをコンパイル構成に適合させるように動作可能である。
アプリケーションの流通システムの更に別の1面では、プログラムとデータオブジェクトはさらに、機能スプリッタモジュールを有し、
処理装置は、
コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
閾値の寸法は、コンパイル構成に含まれる離れたクライアント機器の記憶容量の制限に従って決定され、
機能スプリッタモジュールを呼び出し、機能をそれぞれ複数の符号セクションに分割するステップと、
からなる追加ステップを実行するように動作可能である。
アプリケーションの流通システムの別の1面では、プログラムとデータオブジェクトはさらに、符号難読化モジュールを有し、
処理装置は、符号難読化モジュールを呼び出しコンパイルされたアプリケーションの少なくとも一部を難読化するように動作可能である。
【図面の簡単な説明】
【0010】
本発明のより良く理解するため、例示として詳細な説明が以下の図面と共に参照される。ここに類似の要素は類似の番号を付される。
【図1】本発明の実施形態に基づくシステムとオペレーションを示す概略図である。
【図2】本発明の実施形態に基づく、α−言語で記述され符号化されるコンピュータゲームを示す概略図である。
【図3】本発明の開示された実施形態に基づく、図1に記載のシステムにおけるデータセンターのブロック図である。
【図4】本発明の開示された実施形態に基づく、図3に示すデータセンターにおいて実行される工程のフロー図である。
【図5】本発明の開示された実施形態に基づく、コンパイルされたアプリケーションを要求元機器に提供する工程のフロー図である。
【図6】本発明の開示された実施形態に基づく、図3に示すデータセンター内の分析部の詳細ブロック図である。
【図7】本発明の開示された実施形態に基づく、図3に示すデータセンター内の分析部の詳細ブロック図である。
【図8】本発明の開示された実施形態に基づく、クライアントの要求に反応したアプリケーションのコンパイルに関するステップを総括するシークエンス図である。
【発明を実施するための形態】
【0011】
以下の記述において、多くの特定の詳細が本発明の種々の原理を十分に理解するため示される。しかし当業者には全ての詳細が本発明を実施するために常に必要ではないことは明らかである。ここでは、周知の回路、制御ロジック、及び、従来のアルゴリズムや工程のためのコンピュータプログラム命令の詳細は、不必要に全体概念を不明確にするため詳細には示されない。
本発明の側面はソフトウェアプログラムコードで実現されるが、それは典型的には永久記憶装置、例えばコンピュータ読み込み可能媒体である。クライアント/サーバ環境では、このようなソフトウェアプログラムコードはクライアントまたはサーバに保管される。ソフトウェアプログラムコードはデータ処理システムで使用される様々な既知の接触可能媒体、例えばディスケット、ハードディスクドライブ、又はCDROM上で実現される。コードはこのような媒体により流通されるか、又は、1つのコンピュータシステムの記憶装置または保管装置から、顧客が使用する他のコンピュータシステムの保管装置に、あるタイプのネットワークを通じて、顧客に対し配布される。
【0012】
(概論)
異なる携帯電話オペレーションシステムの中に、Symbian(登録商標),Linux(登録商標), Windows(登録商標)Mobile, BREW(登録商標)がある。標準的なオペレーションシステムの他に、ベンダーの中には自分の機器に対し専用の独自のオペレーションシステムを使用することがある。
携帯電話のアプリケーションは、他の言語の中でも特に、C++、C、J2SE(登録商標),J2ME(登録商標),および「.Net」(登録商標)でプログラムされる。便利のため、以後ここでは携帯電話のハードウェアとソフトウェアの構成を「携帯電話プラットフォーム」と呼び、電話機の物理的構成も含む。機能性は典型的にベンダー独自のAPIの使用により実現され、それは開発者にサポートしようとする携帯電話独自の其々のAPIを学習するように要求するため、アプリケーションを他の携帯電話に移植するのに大きな障害となる。
【0013】
その結果、コンピュータアプリケーション、例えば携帯電話で使用されるコンピュータゲームは、特定の携帯電話、或いは少数の携帯電話プラットフォームでの使用に対し構成され最適化されている。それは多数の異なるプラットフォームにすぐに移植出来ない。移植出来ないことは、携帯電話のアプリケーション及びゲームの広範な市場創造にとって大きな障害及び制限である。そしてまた、携帯電話市場に商品を生産し販売する、或いは市場参入を意図する、小さな開発者、メーカ及びベンダーにとって特に大きな制限となっている。
【0014】
本発明の実施形態では、アプリケーション開発者は、そのコンピュータアプリケーション用のコードを作成するのに、1つのコンピュータ言語、以降「α言語」と呼ぶ、を使用してゲームアプリケーションを作成する。そのコードは複数の携帯電話プラットフォームに汎用でそれぞれのプラットフォームで実行可能なアプリケーション用コードに翻訳可能である。α言語は高レベルの、実質的に人間に読み易い言語であり、当該アプリケーションが使用される携帯電話プラットフォームの詳細を考慮するする必要なく、アプリケーションのオペレーションを記述し符号化するのに使用可能である。典型的にはアプリケーション開発者はゲームのオブジェクトと空間を作成する。オブジェクトとは、実体に付属するイベントに反応して変化する音響及び/又は画像実体であり、アプリケーションの顧客に人機械インタフェース(MMI)を介して提供される。
【0015】
オブジェクトには、限定はされないが、コンピュータゲームで使用される典型的には「スプライト」と呼ばれるアニメキャラクターを含む。イベントはオブジェクトに変化をもたらす、オブジェクトに付随する何らかの刺激である。変化は「アクション」と呼ばれる。
簡単な例示のため、オブジェクトはコンピュータゲームでのボールの画像とする。
ボールに付随するイベントは壁との衝突とする。イベントに反応して生成されるアクションは、壁に当った時のボールの運動方向の変化である。ボールに付随するイベントのもう1つの事例は、ボールの色を変化させるキーボード、マウス、マイクのようなMMI要素の起動である。色の変化はMMI要素の起動に反応したアクションと呼ばれる。
空間はボールが存在する環境である。例えば、空間はボールを包含する4つの壁であってもよい。本発明の1実施形態によれば、オブジェクトと空間は、実質的にオブジェクトと空間が作動する特定の携帯電話プラットフォームを参照することなく、α言語を使用して生成される。
【0016】
本発明のある実施形態のある面は、以降「MOPAD」の接頭語で呼ばれる、α言語で符号化されたプログラムを、複数のコンピュータプラットフォームのそれぞれでサポートされたコンピュータ言語に変換及び/又はコンパイルするように操作可能な、携帯電話アプリケーションの流通システムの提供に関している。
本発明のある実施形態の一面によれば、MOPADはアプリケーション開発「道具箱」、データセンター及びメタ符合変換器を有する。便宜的に「α玩具箱」と呼ばれる道具箱は、α言語と場合により画像インタフェースを有し、顧客がアプリケーションをアイコンやアニメーションを扱ってα言語でプログラムすることを可能にする。データセンターは、以降「α言語アプリケーションライブラリ」と呼ばれる、αアプリケーションとシステムの顧客によって作成される、オブジェクトやオブジェクトのアクセサリのようなアプリケーション要素からなる、ライブラリを有する。
【0017】
データセンターに保管されるアプリケーションやアプリケーション要素のような情報は、「道具箱」を介してアプリケーションの開発に利用可能である。場合によっては、データセンターは顧客を特徴付ける個人データを有する。
メタ符合変換器は、データセンターにα言語で保管される1つのアプリケーションを、アプリケーションが使用されうる複数の携帯電話プラットフォームに対し構成するように適用される。ある携帯電話プラットフォーム用のα言語アプリケーションを構成するステップは、アプリケーションのα言語符号化をその携帯電話プラットフォームでサポートされる1つの言語またはバイナリフォーマットに変換するステップと、アプリケーションパラメータを携帯電話のMMI構成に適合させるステップを有する。
【0018】
MOPADとその要素は、場合によってウェブサイト上に提供され、URLを介してアクセスされる。例えば、携帯電話コンテントの開発者が携帯電話アプリケーション、例えばコンピュータゲーム、を作成したいと望めば、開発者は、「α玩具箱」を使用してゲーム用のプログラムをα言語で作成するためMOPAD URLにアクセスすることが出来る。作成されたゲーム及び/又はゲームの要素はデータセンターに保管されるが、場合によってゲームの開発者を特徴付けるデータも共に保管され、また、必要とされる、開発者の知的財産権のための著作権及び/又は暗号のような適切な保護も保管される。顧客は携帯電話用のゲームを、MOPAD URLにアクセスし、ゲームを受け取るのに必要な支払のような条件を適切に満たす、ゲームをダウンロードする要求を送ることによって獲得可能である。要求を受け取るとメタ符合変換器は、ゲームを要求人の携帯電話プラットフォームに構成することによって、要求人の携帯電話用のゲームを構成する。構成されたゲームは典型的には要求人の携帯電話での使用のため送信されるが、場合によって、直接ダウンロードやイーメールにより送付される。
【0019】
図を参照する。図1は本発明の実施形態に基づく携帯電話アプリケーションの流通、システム、即ちMOPAD20のオペレーションを示す概略図である。
MOPAD20は4つの主要要素を有すると見做すことが出来る。
(1)ゲーム抽象化層は機器に依存しない、α言語やアプリケーションに特異な資源のような、ゲーム記述子からなる。α言語はMo’Minis社(14 Raoul Wallenberg Street, Tel Aviv69719,Israel)から入手可能であり、本実施形態に使用可能である。ここではゲームのスペックはα言語を参照して記述される。しかし、本発明の原理は他のゲーム記述子言語でも同等に実施可能である。
(2)アプリケーション編集ツールはゲーム抽象化層を操作してアプリケーションを迅速に作成するのに使用される。
(3)符号生成システムは顧客に特異な、そして機器に特異な符号を生成し、既存のゲームをパッチすることを担当する。
(4)データセンターはコンテンツを管理し、アプリケーションの配達および動作中調整を扱い、クライアントの口座を管理し、他のサービスを紹介する。
例示のため、MOPAD20は、携帯電話での使用のためアプリケーション、場合によりコンピュータゲームのプロデューサ60と、また携帯電話での使用のため携帯電話用コンテンツの消費者70と、相互作用し、それにサービスを提供するように示されている。MOPAD20は適切なウェブサイトに提供される。プロデューサ60と消費者70はインターネット経由でMOPAD20にアクセスする。
【0020】
MOPAD20は場合により道具箱30、データセンター40、メタ符合変換器50からなる。道具箱30は、コンピュータ読み取り可能媒体に保管された、携帯電話用アプリケーションを記述し符号化するための、高度な実質的に人接触可能なα言語を使用するための、命令セット31を有する。あるいは命令セット31は、画像インタフェースと、α玩具箱とを有し、それによりMOPAD20の顧客は、携帯電話コンピュータゲームをアイコンと、メニューを経由してアクセス可能なアニメーションと、を操作してα言語でプログラムすることが可能となる。データセンター40はアプリケーションと、プロデューサが作成するアプリケーションの中で、プロデューサにより使用され取り込まれる携帯電話アプリケーション用の要素、例えばプログラムサブルーチンのα言語ライブラリ41を有する。データセンター40は場合によって、個人データや参照事項など、MOPAD20の顧客を特徴付けし、MOPAD20がその顧客へのサービス及び/又はコンテンツを適合させることを可能にする、顧客データ42を有する。
【0021】
図1においては、プロデューサ60はインターネットを経由してMOPAD20の道具箱にアクセスし、プロデューサが開発するゲームの開発のため、命令セット31内の材料を使用し及び/又はダウンロードするところが示されている。開発はオンライン又はオフラインにおいて多くの組合せで行われる。両側矢印のブロック矢印61は、プロデューサ60がインターネット経由で道具箱にアクセスし、α言語を使用するための適切な命令をMOPAD20からダウンロードすることを概略示す。更に場合により、プロデューサ60はα玩具箱32をリアルタイムで操作して、携帯電話用のコンピュータゲームを記述し符号化する。
【0022】
コードをその言語で書く及び/又はα玩具箱32を使用するかしてα言語でプログラムしている間、道具箱30は場合によりプロデューサ60に、データセンター40のα言語ライブラリ41に含まれるアプリケーションとアプリケーション要素へのアクセスを提供する。ライブラリへのアクセスはブロック矢印62で示され、それはプロデューサ60が、作成するゲームのライブラリから、適合する材料、例えばスプライトをアニメーション化するアニメーションサブルーチン、を使用し取り込むことを可能にする。α言語でのゲームの記述と符号化が終了すると、α言語符号はデータセンター40のα言語アプリケーションライブラリ41に保存のため送信される。ブロック矢印63はそれをしめす。
【0023】
本発明の1実施形態によれば、データセンター40に保管される、プロデューサ60に作成されたゲームのような携帯電話アプリケーションは、場合によって流通のためそれぞれの所有者によって特性を与えられる。例えば、ある所有者はあるアプリケーションを料金の支払いにより販売し、或いはフリーウェアとして流通させるという特性を与える。さらに又は、ある所有者はあるアプリケーションの取得を全体のある区分にだけ、或いは所有者が認めたある人たちだけに制限する。流通用のアプリケーションは、或いは、消費者の関心を集めるため、適切に出版される。
【0024】
例示のため、プロデューサ60に作成されたゲームが公衆に販売されるようになったとする。ゲームは潜在顧客の関心を集めるため、MOPAD20により適切にインターネット上に公示され、消費者70はその公示を見て自身の携帯電話用にそのゲームを購入することに興味を示す。消費者はインターネット経由でMOPAD20にゲームに対する要求を送る。ブロック矢印71は要求の送信を示す。要求は場合によって、支払いのためのクレジットカード情報と消費者を特徴付ける特徴情報を含む。
【0025】
特徴情報は場合によって、消費者がゲームを自分の好みに合わせるため、特定する個人嗜好、例えば好みの色構成を含む。
場合によって特徴情報は、使用される携帯電話のモデルに対応して収集された個人情報、消費者の地理的位置、及び消費者の携帯電話プロバイダからの情報、を含む。要求を受け取ると、データセンター40は自動的に消費者の携帯電話に、電話の機能とアプリケーションライブラリ内のゲームのα言語プログラムを配置するプラットフォームのプロファイルを決定するよう伝える。
【0026】
データセンター40はブロック矢印72で示すように、携帯電話プラットフォームのプロファイル、α言語プログラム、消費者70の嗜好をメタ符号変換器50に送信する。メタ符号変換器は消費者の携帯電話用のゲームのα言語プログラムを、プラットフォームのプロファイルと消費者の嗜好に対応して構成する。その後ブロック矢印73に示すように、構成されたプログラムを場合によりデータセンター40に返信する。或いは、構成されたプログラムを消費者の嗜好及び/又はプロファイルに適応させるため、特徴情報は構成されたプログラムに直接採り入れられる。データセンター40は場合によって構成されたゲームを消費者70の携帯電話にインターネット経由で直接ダウンロードする。ブロック矢印74はゲームのダウンロードを示す。
【0027】
次に図2を参照する。図2は本発明の1実施形態に基づく、携帯電話で使用するためのアプリケーションをα言語で記述し符号化する様子を示すため極簡単なコンピュータゲーム100のイメージ図である。
例示のため、ゲーム100は「タンク標的」という題名の射撃ゲームである。ゲームは、携帯電話のビデオスクリーン及び/又はスピーカーで表現される画像及び/又は音響実体により適切に示される、4つのオブジェクトからなる;大砲が発砲する砲弾104、中心106を有する標的105、タンクと標的の間に位置する山108。タンクの大砲103は様々な仰角で異なる選択可能な発射速度で砲弾を発射するために照準を定めることができる。一度発射されると、砲弾は仰角、発射速度、重力、および古典運動学で定められる放物線の軌跡110を辿る。
【0028】
ゲームの目的は発射速度を設定し、大砲103をある仰角で狙いをつけて砲弾104が山108を超えて、標的105の中心106に当るようにすることである。砲弾が山を越えないときは、山に衝突するときに自爆する。砲弾が標的に当ると、場合によって、砲弾は爆発し、標的はより小さな、当てるのが難しい標的に置き換えられる。演技者の成功レベルは演技者が当てられる標的の小ささにより決定される。
【0029】
本発明の1実施形態によれば、各オブジェクトはオブジェクトが反応する1組のイベント、及びオブジェクトのイベントに反応した変化(前述のように「アクション」と呼ばれる)により定義されるステートマシンである。例えば、タンクはイベントにより定義され、それは大砲103の仰角、砲弾104の発射速度を設定する命令と、大砲を発射す命令である。
「命令イベント」は、ゲームが行われる携帯電話プラットフォームのMMI(不図示)を操作する、演技者によるゲームへの入力である。例えば、大砲103の仰角の増加又は減少は、場合によって其々「左イベント」と「右イベント」により実行される。右又は左イベントは演技者が好適にMMIを操作することにより、例えばMMIのキーボード上の右又は左矢印ボタンを押すことにより実行される。同様に発射速度は「昇る」又は「下る」イベントにより増加、減少され、場合によって演技者がキーボード上の上向き又は下向きボタンを押すことによって媒介される。大砲103の発射は「発射イベント」に反応して遂行され、場合によって、キーボード上のエンターボタンやスペースバーを押すことにより実行される。
【0030】
しかし、携帯電話プラットフォームは同一のキーボードを持つ同一のMMIを有するわけではなく、異なるMMIは一般的に異なるキーボード構成を有し、キーボードボタンは異なる機能を持つことが多い。iPhone(登録商標)のような携帯電話MMIはキーボードすら持たない。本発明の1実施形態によれば、従って、α言語はイベント及び/又はアクションを特定の携帯電話プラットフォーム又はMMIに対して定義せず、そのかわり複数の携帯電話プラットフォームに実質的に共通な言語及び構文法を提供する。α言語アプリケーションにおいてオブジェクトを定義する記述および定義は、複数のこのようなプラットフォームの内のある携帯電話プラットフォームでの実行に際し、アプリケーションを適合させるため、事前に変換される。
【0031】
α言語は特定の携帯電話プラットフォームに対して符号化しないが、α玩具箱32は場合によって、α言語符号の生成を操作するため、キーボードの画像イメージ又はビデオスクリーンなどのMMI要素の画像イメージを有し、このような画像イメージは本質的に特定の画像幾何模様を有する。しかし、画像イメージは画像的な補助手段であり、その特定の特徴はα言語で書かれたアプリケーションを画像イメージの画像幾何模様に強制しない。一般的には、画像補助手段の特定の画像的特徴は、それ自体を表わすのではなく、意味解釈(セマンテック)を表わすのであり、その意味はメタ符号変換器50により理解され、意味解釈(セマンテック)の意味が保存されるように、複数の携帯電話プラットフォーム符号のどれにでも翻訳可能である。
【0032】
例えば、上記の例で、大砲103の仰角の上げ下げは、右または左矢印を押すことによって媒介される。
あるいは、α玩具箱32の「キーボード補助手段」の画像が右と左矢印ボタンに構成され、仰角の上下をそれぞれ示すように使用される。しかし、メタ符号変換器50は右と左ボタンをそれ自体が右と左ボタンと「理解」するわけではなく、それぞれ意味解釈(セマンテック)の「上げ」と意味解釈(セマンテック)の「下げ」の代表物として「理解」する。標的(中心106)が使用される携帯電話プラットフォームが仰角を上下する矢印ボタンを持たない場合は、メタ符号変換器50は「上げ」と「下げ」を、そのプラットフォームが間違いなく持っているキーボード上の「1」と「2」のボタンをそれぞれ押すように変換する。
【0033】
本発明の1実施形態における、1つのアプリケーションに対するα言語符号の例示として、リスト1の符号部分は図2のタンク標的ゲーム100のオブジェクト(タンク102、砲弾104、中心106、山108)のα言語符号を例示的に示す。リスト1はステートマシンとしてのオブジェクトのロジックを符号化し、そのロジックはゲームの最中に起こるイベントに対するオブジェクトの反応を制御する。表示の便宜上オブジェクトの画像と音響効果を定義するα言語符号は記載されていない。砲弾104は符号では「砲弾(キャノンボール)」と表現されている。
【0034】
下記のタンク標的ゲーム100のα言語符号は特定の構文法を示すが、α言語は下記に示されるものとは異なって構成される可能性が有り、本発明はこのタンク標的ゲーム100に示された特定のα言語符号に限定されない。当業者には、異なる言語及びゲームが想起される。
【0035】
(ゲーム作成工程)
再び図1を参照する。要求に基づきゲーム記述子は、MOPAD20により、既定の携帯機器の資産、従って移植された有効なアプリケーションに変換される。ゲームとコンテンツはプラットフォームに依存しないコンテンツ記述子の頂上、ゲーム抽象化層に開発される。サーバ側のアーキテクチャはプラットフォームに依存しない開発と継ぎ目のない移植を可能にし、作成されたコンテンツの後方及び前方互換性を達成する。
【0036】
ゲーム抽象化層に関する簡単な議論は本発明の原理の理解に役立つ、というのは、ゲーム抽象化層はプラットフォームにサポートされた最も基礎的な建築ブロックを構成するからである。この層は、コンテンツの定義に必要とされる全ての情報を保管している。実際のコンテンツの実行は、他の層にあるロジックにより異なるが、ゲーム抽象化層は、「遊び場」即ち、ゲームと空間のようなゲーム要素、ゲームの資産、背景画像、背景音響、メニュー項目、そのアイコンを定義し、その結果としてのコンテンツの行動を特定する。
【0037】
標準化されたデータオブジェクトモジュールをその基礎に使用することにより、ゲーム抽象化層はコンテンツ開発用の多くのスタジオ、エディタ及びウィザードの実行を容易にする。通常の挨拶状、アクションゲーム又は全ての分野のアプリケーションに対するウィザードの書込みは、サーバ側のインフラを変更することなく短時間で出来る。この標準は能力の拡張、例えば、GPS、進歩したネットワーク、MMI能力などの拡張が必要な時に、拡張を容易にする。ゲーム抽象化層は、前述のように空間とオブジェクトを含む。ゲームを1つの言語から他の言語へ翻訳するため、ゲーム抽象化層は、右から左に向かう言語を含む完全ユニコードサポートを有し、言語関連データの抽出と更新を円滑にする。
【0038】
(データセンター)
データセンター40は幾つかの主要な役割を有する。(1)コンテンツに関するデータと開発者口座を集めること、(2)ダウンロードと動作中の生成工程を取り扱うこと、(3)中央に集まった顧客口座を管理すること、(4)種々のAPIを使用してサービス層を露出すること。
本発明は上記(2)に大きく関している。ゲームと他のアプリケーションは、上記のゲーム抽象化層および典型的にはα言語を使用して、開発者により作成されていると仮定する。ゲーム又はアプリケーションは今や、携帯電話のような遠隔機器を使用する最終顧客により要求された。以下の文節ではダウンロードの高度な記述が示される。
【0039】
図3は図1のデータセンターのブロック図である。データセンターは典型的に汎用又は組み込みサーバ112又は他のコンピュータ処理装置を有し、それは、以下に記述する機能を実行する適合するメモリとソフトウェアでプログラムされる。図3及び他の図においてデータセンターの各部分は幾つかの独立したブロックを有するように表現されているが、これらのブロックは必ずしも離れた物理的実体ではなく、むしろ例えば、処理装置にアクセス可能な1つのメモリに保管された異なる計算業務や又はデータジョブを表わす。このような業務は単一の処理装置又は多重の処理装置で処理されるコンピュータプログラムにより遂行される。示された機能ブロックはコンピュータプログラムの別個のソフトウェアモジュールとして纏められる。ソフトウェアは処理装置に対しCD−ROM又は不揮発性メモリのような接触可能媒体で提供される。あるいは又は、データセンター40はデジタル信号処理装置又はハード接続ロジックを有する。
【0040】
さらにデータセンター40は、接触可能コンピュータ読み取り可能媒体においてトランジションを形成することにより、機能を遂行するためのコンピュータ命令を再生するI/O機器を有してもよい。ここにトランジションは、他のコンピュータにより命令又はデータとして翻訳可能なデジタルパターンからなる。
【0041】
データセンター40にはゲーム貯蔵場所116があり、コンパイルされたゲームおよびコンパイルされないゲーム関連データ及びプログラムを含み、それらは以降「抽象ゲームデータ」と呼ばれる。ゲーム貯蔵場所116は「抽象ゲームデータ」を発信しまた受信するインタフェース118と、コンパイル済みゲームファイルを受信し更新するインタフェース120とを露出する。インタフェース120はゲーム生成工程と強く結び付いている。ゲーム貯蔵場所116はまた、コンパイル管理モジュール122及び、他の遠隔機器に対して以前コンパイルされたゲームのバージョンを保管するゲームデータベース124を含む。コンパイル管理モジュール122は、符号生成部126及びパッチャー128を含む。コンパイル管理モジュール122は分析部130と協業する。分析部はこの実施形態ではデータセンター40と離れたところで、監督実体、アプリケーション生成装置132に置かれる。しかしある実施形態では、分析部130は実行の便宜上データセンター40に含まれる。これらモジュールの機能は以下に述べる。
【0042】
インタフェース118はコンパイルされたゲーム記述子を2つのアーギュメントに基づいて取り扱う。(1)GID−世界的に一意のゲーム識別子、(2)コンパイル構成―ゲームをコンパイルするのに使用された種々のパラメータからなる構成。この構成は、通常2つの他のオブジェクト、機器構成及び顧客構成から組み立てられる。
機器貯蔵場所134はクライアント機器即ち携帯電話の構成を、機器データベース内に維持する。機器貯蔵場所134は、機器指紋サブシステム138と機器記述子生成器140とからなる。
【0043】
ゲーム貯蔵場所116が電子的コンパイル要求をクライアントから受け取ると、次のアクションが自動的に行われる。要求元クライアントの機器構成が獲得され又は形成される。機器構成は機器貯蔵場所134内のコンパイル構成クラスのパラメータとして維持される。
顧客貯蔵場所142はコンパイル構成パラメータに含まれる顧客構成を維持する。顧客構成は顧客データベース144に保管され、顧客指紋サブシステム146の助けによって識別される。もし必要とされる顧客構成が顧客データベース144に存在しない、又は、顧客指紋サブシステム146を使用して信頼度高く識別できない場合は、顧客記述子生成器148によって生成される。
【0044】
ゲームデータベース124内の以前にコンパイルされたゲームがコンパイル構成パラメータの要求を満たす場合は、それはゲーム貯蔵場所116から獲得される。そうでなければ、コンパイル構成パラメータにより特定されるコンパイル構成インスタンスが、機器と顧客の構成を使用して作成される。そしてコンパイル要求が生成され、コンパイル管理モジュール122により実行される。コンパイルされたゲームはゲームデータベース124に追加され、インタフェース120経由で流通される。
【0045】
ゲームデータベース124は4つのテーブルからなる。リスト2はゲームとその履歴を大まかに識別するために使用される記録フォーマットを示す。リスト3はゲームの流通に関するデータを保管する記録フォーマットをしめす。リスト4は各ゲームに対するコンパイルされたゲームのキャッシュと作成された構成を記述する記録フォーマットをしめす。リスト5は作成された構成を示し、そこでは「構成」フィールドは顧客構成と機器構成の情報が組合せとなっている。
【0046】
ゲーム貯蔵場所116は柔軟であり、完全な再コンパイルなしに、要求されたゲームに修正、例えば、画像の交換、外部メタデータの交換を加えることが出来る。このようなメタデータの例は、演技者レベルの情報である。そのような動作中の修正は再コンパイルよりはるかに迅速に行え、また、ゲーム貯蔵場所116に、少しの修正が個別に維持される場合に保管を必要とする大量のデータの負荷を与えることが無い。修正はパッチャー128により行われる。パッチャー128の使用により再コンパイルを避けることは時間を大幅に削減する。
【0047】
最後にコンパイルされ、パッチされるか獲得されたゲームは要求元実体に流通システム150により戻される。流通システム150の要素は、資金化マネージャ152、アプリケーション開発マネージャ154、アフィリエイトマネージャ156、請求サブシステム、広告サービスサブシステムからなる。
【0048】
(機器貯蔵場所)
機器貯蔵場所134は、要求元クライアントに対し機器構成を生成する役割をはたす。
図4は、本発明の実施形態に基づく図3の機器貯蔵場所134により自動的に実行される、機器データベース136を構築する工程のフローチャートである。機器データベース136は各機器のファミリー、即ち1つ以上の類似機器、に対する全てのファミリーメンバーが由来する共通機器構成を保持する。新しい機器構成が構築されるとそれは自動的に既存のファミリーグループに追加され、そのグループの資産を継承する。生成された機器資産はその後より正確な値が得られるとそれに置き換えられる。
【0049】
機器データベース136は、3つのテーブルからなる。リスト6は機器構成データの記録フォーマットである。リスト7は機器識別子を既知のイシューにマップする記録フォーマットである。リスト8は既知の機器イシューに関する記録フォーマットである。
【0050】
最初のステップ162において、機器、通常は携帯電話のモデル、が選択される。次にステップ164において、その機器の種々の特徴、例えばGPU2次元能力、表示画面の寸法、キーボード配置、記憶容量、を発見するためのベンチマークテストとアプリケーションテストを実行することにより、現在選択された機器の機器構成が構築される。ある実施形態では、テストはオフラインで機器の他の試験機で実行される。しかし実際の要求元機器を動作中に調べることは可能である。この選択は、機器の最新のリリース又は旧型の機器の場合特に有用である。そのような場合は、顧客の要求を満足するために、その機器の別の試験機を適切な時間内に入手することは困難である。
【0051】
判断ステップ166に進み、さらなる機器が処理される必要が有るかが判断される。判断ステップにおける判断がYESであれば、最初のステップ162に戻る。
判断ステップにおける判断がNOであれば、ステップ168に進み、特定の機器にダウンロードされるアプリケーションに対するクライアントの要求を受け取る。要求は明示的又は暗黙的である。暗黙の要求は、最終顧客が直接特定のリンクをブラウズし、そのリンク経由であるアプリケーションを受け取るように要求する場合に通常実行される。
【0052】
次に判断ステップ170に進み、クライアントの要求が暗黙かどうかが判断される。判断ステップ170の判断がNOの場合、判断ステップ172に進む。
判断ステップ170の判断がYESの場合、ステップ174に進む。暗黙の要求にサービスする場合、機器貯蔵場所134は、機器指紋サブシステム138を呼び出し要求元機器を自動的に識別する。
【0053】
機器指紋サブシステム138は、遠隔クライアント機器の少なくとも下記の特性を識別する:ブラウザのユーザエージェント、ユーザエージェントのプロファイル、顧客エージェントのURL。機器指紋サブシステム138は、これらの要素を1つ1つ機器データベース136に保管された機器構成にマップしようとする。クライアント要求は典型的にHTTP要求として受信され、それはユーザエージェントのプロファイルURLを含む機器IDデータ構造にパースされ挿入される。URLはHTTPヘッダーに含まれ、ユーザエージェントのプロファイルを指し示し、それは一般的に種々の機器パラメータを含むXMLドキュメントである。機器指紋サブシステム138は、XMLドキュメントの最初の分析を行い、機器をより良く識別するため関連するパラメータを抽出する。例えば、機器提供者名は通常ユーザエージェントのプロファイルに含まれる。要求元機器のモデルも存在すれば含まれる。これらはそれだけで要求元機器を識別できる。
【0054】
次にステップ172に進み、既知の機器構成との正確な一致が得られたかが判断される。判定ステップ172の判定がYESの場合、ステップ176に進む。
判定ステップ172の判定がNOの場合、ステップ178に進み、機器指紋サブシステム138により判定された情報と、最初のステップ162とステップ164で構築された機器データベース内の対応する要素との間の関連性が評価される。この作業は顧客エージェントのプロファイルURLと既知の機器構成との間のマッピングを検査することにより行われる。このステップの柔軟性は、マッピングの識別に正規表現を使用することにより向上する。
【0055】
判定ステップ180に進み、ステップ178で評価されたマッピングの関連性が強いと判断されたかが判定される。判定ステップ180の判定がNOの場合、ステップ182に進む。
判定ステップ180の判定がYESの場合、ステップ184に進み、要求要素内の他の全てのクライアントは、ステップ178と判定ステップ180で識別された機器構成と関連付けられる。このように、機器データベースは、顧客がアプリケーションをダウンロードする要求のたびに、新しい情報で更新されうる。或いは発見的な方法が要素を特定の機器にリンクするのに使用されてもよい。例えば、要求元機器の顧客エージェントのプロファイルと既知の機器の間のテキストの類似性が利用されてもよい。最後のステップ176において、現在の機器構成に関連する機器がダウンロードのため選択される。
【0056】
ステップ182は図3の機器貯蔵場所134がそれ以前のステップで機器を識別できなかった場合に実行される。機器は調査される。機器貯蔵場所134は、典型的にXMLファイルで表現されるユーザエージェントのプロファイルを獲得する。ユーザエージェントのプロファイルはパースされ、そして図3の機器記述子生成器140により新しい機器構成をコンパイルするため使用される。ユーザエージェントのプロファイルから出来るだけ多くの情報が抽出され、それには以下のカテゴリを含む:(1)画面寸法、(2)ピクセル当りビット数、(3)実行環境(ある場合)で(a)OS名、(b)OSバージョン、(c)Java(登録商標)が使用可能か、(d)JVMのバージョン、(e)Bluetooth(登録商標)のバージョン、を含む、(4)販売者名、(5)モデル名、(6)使用可能言語。
【0057】
機器データベース136は再び新しい機器プロファイルを既存の機器プロファイルに出来るだけ近くに適合させるために参照される。新しい機器の不明な詳細は多くの場合このように追加される。或いは、新機器のプロファイルは、Source−Forge.net経由で入手可能なJBenchmark外部ベンチマークプログラムから得られる情報で補足される。新しい機器構成はその後、ステップ186において、機器データベース136に追加される。その後、新しい機器は最終ステップ176において選択される。
【0058】
(顧客貯蔵場所)
図3に戻って、顧客貯蔵場所142は後にアプリケーションの生成時にコンテンツを個人化するための個人やグループに対する構成情報を保持する。顧客構成は言語のような地域パラメータ、色構成の嗜好のようなコンテンツ関連パラメータ、連絡先や顧客名のような個人情報、デジタル署名、資格のようなチャネルや地域特異の必要条件、等の資産を保持する。
【0059】
顧客構成は顧客データベース144に保管され、上記の機器構成と同様のやり方で、暗黙にまたは明示的に抽出される。暗黙に抽出される場合、顧客構成は以下の1つを使用した要求を伴う:
(1)顧客から提供された識別子、例えば口座識別子
(2)顧客の国とISPを判別するのに使用される、ソースIPアドレス
(3)第三者から提供される識別子
【0060】
さらに、機器から得られた情報は追加の顧客情報を明らかにし、それは、好適には信頼性指標を伴って、顧客データベース144に採り入れられる。例えば、Blackberry(登録商標)機器の顧客は、20−25歳男性で大企業または官公庁に働いていると推論される。顧客データベース144は1つのテーブルからなり、登録顧客のリストを保持する。その記録フォーマットはリスト9に示される。
以下に記載される動的コンパイルは顧客に特異のデータの生成されたアプリケーションへの埋め込みを可能にする。
【0061】
(流通)
流通工程はデータセンター40により組織化され、上記の要素を含んでいる。ピアツーピア流通機構は、顧客特異のコンテンツの埋め込み能力と共に、顧客社会に向いた収集を可能にする。
図5を参照する。それは本発明の1実施形態に基づく、コンパイルされたアプリケーションを要求元機器に提供する工程を示すフローチャートである。
最初のステップ188において、要求元機器はデータセンター40に、典型的にインターネット経由或いは他の適合する通信チャネルで、アクセスする。
次にステップ190において、機器貯蔵場所134は要求元機器の機器構成を獲得するために参照される。1つの機器構成が獲得されるか、ステップ168から始まる図4で記載された方法を実行することにより新しい機器構成が生成される。詳細は簡略化のため、再掲載しない。
【0062】
次にステップ192において、顧客貯蔵場所142が顧客構成を得るために参照される。手続はステップ190と似ている。要求元の機器の顧客が識別出来ない場合は、デフォルトの顧客プロファイルが生成され、顧客に関する追加の情報がデータセンター40との更なる相互作用により得られた場合、又は他の情報源から情報が得られた場合、修正される。デフォルトのプロファイルは、IPアドレスや要求者のような通常HTTP要求において得られる情報に基づく修正を含む。
次にステップ194において、顧客構成及び機器構成はコンパイル管理モジュール122に提供され、コンパイル構成が構築される。
【0063】
次にステップ196において、ゲーム貯蔵場所116に対し2つのアーギュメントで1つの要求が作られる:顧客構成と機器構成。
次に判定ステップ198に進み、アプリケーションの要求されたバージョンがゲーム貯蔵場所116に存在するかが判定される。
判定ステップ198の判定がYESの場合、ステップ200に進み、そこにあるバージョンが獲得される。
判定ステップ198の判定がNOの場合、ステップ202に進み、アプリケーションの新しいバージョンが、コンパイル管理モジュール122の指示により、「GetComiledApp」伝文を、要求元機器にとって適切なコンパイラに送ることにより、コンパイルされる。例えば、ある機器にとっては、Java(登録商標)コンパイラとパッケージャ−は、JARファイル又は仮想マシンを使用した実行に適した他のアーカイブを、顧客機器上に生成するように仕向けられる。或いは、ネイティブな実行可能符号が、コンプライアントなC++コンパイラ、例えばGCCを使用して、生成される これはSymbian(登録商標)をベースにした携帯電話、例えばNokia6120c,Nokia6600に対しては適切である。あるいは、事前に存在するバージョンと要求されるバージョンとの差異が比較的小さい場合は、パッチャー128が事前に存在するバージョンを修正してもよい。これはコンパイル管理モジュール122により、機器構成とコンパイル構成を参照して決定される。
ステップ202又は200の終了後、最終ステップ204において、コンパイルされたアプリケーションは要求元機器にアップロードされる。
【0064】
(コンパイル)
この章では図5のステップ202のコンパイル手続について詳細に述べる。
図3を再び参照して、ゲーム貯蔵場所116により、ゲーム抽象化ファイルが受け取られるとすぐにパース工程が始まる。ゲーム抽象化ファイルは典型的にXMLファイルとして、またα言語のようなゲーム記述子言語で表現されている。このファイルがゲーム抽象化層の産物であることが前述の議論から思い出されよう。ゲーム貯蔵場所116は、ファイルをパースして効率のよい情報問合せを補助するメモリ表現にし、また、アブストラクションの評価を行う役割を有する。
【0065】
パースが終わると「浅い」評価が行われる。「浅い」評価工程は、ゲーム記述子が損なわれていないと評価する役割を有する。それは、例えば、毀損されたレファレンスや原形の損なわれたデータの発見に向けられる。「浅い」評価は「深い」評価と呼ばれる他の型の評価と区別される。「深い」評価はゲームの作成時に行われ、ゲームロジックが評価される。深い評価は、ゲームが適正な速度、場所、等を使用していることの判定も含む。深い評価は、典型的に編集ツールにより実行される。
深い評価と異なり、コンパイル段階での浅い評価は、完全に機能するゲームを前提とする。従って浅い評価は致命的と指摘された全ての誤りに関して、非常に厳格である。
【0066】
(多重分析)
パースと評価が終了した後、ゲームファイルの分析がアプリケーション生成装置132により組織され、それは、コンパイル管理モジュール122と分析部130を呼び出す。一連の特別仕様の分析器が受信したゲーム抽象化ファイルのパースされたデータ構造をスキャンし、最適の符号生成を推進するため詳細な分析が行われる。このステップは携帯電話の資源が限られるため、非常に重要である。
【0067】
図6は、本発明の実施形態に基づき構築され、操作される図3のコンパイル管理モジュール122の分析部130の詳細なブロック図である。
パースされたゲーム抽象化ファイルのデータ構造は多くの場合非常に複雑で、ゲーム要素間で強い相互依存性がある。また、分析部130のある要素は他の要素により生成されたレポートに依存する。分析の精度を最高にするため、分析を多段で行うことを勧める。例えば、第1のステップで、コンパイル管理モジュール122が不使用の機能を検知し、コンパイラにその機能に対する符号を生成しないように指示する。別のステップでは、不使用のゲームオブジェクトが検知され、コンパイラはそれらをデータ構造から削除するように指示される。2つの工程が同時に実行される場合は、不必要なゲームオブジェクトだけで使用されるある機能を実行する符号は、不適切に生成されるかもしれず、それはその後の最適化の中でゲームオブジェクトが削除されるときに除かれる。
【0068】
上記ステップの終了後、パースされたデータ構造はゲームの完全な機能を記述する。それでも、これらデータ構造は更なる最適化の試みの中で非効率であることが判る。この目的のより好ましい達成のため、幾つかの補助データ構造が生成され、データの再構築が行われる。例えば:
ゲームオブジェクトの用途とイベントの取り扱いを記述する依存性グラフの作成。
ゲームに使用される全てのオブジェクトの用途と依存性が分析されマップされる。このことは、生成されたゲームから不使用のロジックを除去するような最適化を可能にする。これはコンパイル管理モジュール122の1つのモジュール、ゲームオブジェクト分析器206により扱われる。
【0069】
ゲームの依存性は携帯電話の能力および使用されるゲームエンジンに対しマップされる。ゲームエンジンは対象実行環境の言語で記述された1組のライブラリである。ライブラリはα言語により必要とされるサービス、例えば、オブジェクト管理サービス、物理的エンジンを提供する。ライブラリは対象プラットフォームに最適に適合するため生成工程の間に変更され、又は構築される。このマッピングを使用して、コンパイラは無関係の能力を全て除外することにより、「痩せた」ゲームバージョンを、生成することが出来る。これはエンジンに含まれる移動経路や加速等の能力だけでなく、音、ネットワーク、記憶容量などの携帯電話の特徴を含む。この段階は1つのモジュール、ゲーム資産分析器208により扱われる。
【0070】
変数と資産アクセスの変更点はマップされる。これにより、種々の符号最適化、例えば変数を定数と見做すこと、を可能にし、それにより記憶容量を節約する。これは1つのモジュール、変数分析器210により取り扱われる。
ゲームで表示されるテキストはフォント、及び、色、スタイル、効果などのフォント特性に従って分析されマップされる。この情報は機器特異の表示パラメータ、例えば反エイリアスサポート、と組合わされて、記憶容量の必要使用量を最小にしながら、最適なテキスト記述ルーチンを生成するのに使用される。これは1つのモジュール、フォント分析器212により扱われる。
【0071】
(データ再構成)
ある場合には、コンパイル管理モジュール122の分析器はゲームのパースされたデータ構造を符号最適化のために直接変更する。コンパイル管理モジュール122に対し機器及び顧客構成情報が示されていたことを思い出すであろう。その分析器はコンパイルの鎖の中で機器特異の特性及び顧客特異のデータを知る最初の要素である。ゲームデータ構造はもともとコンパイル工程の外で構築され、共に顧客及び機器不可知である。データ再構成の例を以下に示す:
【0072】
背景格下げ。コンパイルが弱い機器を対象とし、ソースゲームが複雑な背景を有する場合。背景分析モジュール、背景分析器214は、ゲーム中の表示された画像が対象機器の画像能力に適合しているかを確認するため、符号又は構造変更の必要性を評価する。背景分析器214モジュールは必要なら画像の寸法を変更して画面寸法に適合させ、画像の色パレットを変更する。最適化工程は機器の能力限界を認識し、背景分析器214モジュールは、背景の単純化又は背景を固定色と置き換えるかのいずれかにより、背景を格下げする。他の最適化は、多数の色に対するゲームサポートに拘わらず、ビット深さを減少させることを含む。反エイリアスの使用は、対象機器で使用可能であれば、背景分析器214モジュールにより制限されうる。
【0073】
回転画像生成。ある対象機器は回転及び鏡面対称操作のバギーな実行を提供している。汎用ゲームをこのような対象機器で動かすには、種々の回転状態の追加画像を事前に生成し、ゲームデータ構造に挿入しなければならない。記憶ペナルティを最小に保つため、特別な分析器が回転の必要性を判定する役割を担い、それに従い、回転操作の対象となるオブジェクトに対し追加画像の生成の旗をセットする。これは1つのモジュール、スキン分析器216が取り扱う。
【0074】
(符号生成)
図7は、本発明の実施形態に基づく、図3のコンパイル管理モジュール122内の符号生成部126の詳細ブロック図を示す。 コンパイル鎖の符号生成段階を通じて、機器に特異な符号は生成されコンパイルされる。この段階は上記の分析段階の成果物に大きく依存している。符号生成部126の構成は概略符号生成器に基づき、それは全ての必要サービスを定義する。現在のバージョンはJava(登録商標)ベースの符号生成を実行する。しかし発せられる符号は多重プラットフォームのJava(登録商標)符号である必要はなく、機器で直接実行可能な符号、または特定の機器に適合または特化されたJava(登録商標)符号でよい。
【0075】
符号生成部126は図7にそれぞれ符号生成器218,220,222として示すように複数の符号生成器を有し、それらは対象機器の性質に従って選択可能である。符号生成器218,220,222はコンテンツを「ゲーム言葉」で記述するために使用されるα言語と生成された符号との橋渡しをする。生成された符号は効率的に動く必要が有り、α言語ゲーム仕様には通常似ていない。其々の対象プラットフォーム、例えばJava(登録商標),Flash,Symbian(登録商標),IPhone(登録商標)は別々の符号生成器により実行され、その中で出力符号は必要なサービスを対象機器上に呼び出すことが出来る。符号生成器の一群218は少なくともα言語ゲーム仕様で定義された全ての機能を取り扱う必要がある。しかし符号生成器218は対象とする特定のプラットフォームに関連する追加の機能を実行することがある。
【0076】
Java(登録商標)クラスファイルのような符号ファイルの中にバイナリデータを保管するのは非効率であり、あるアプリケーションが幾つかの機器で動作しないという結果をもたらす。列データパッカー224は、バイナリデータを外部ファイルにしまうことにより、この可能性を最小にする。データ管理をこの要素に集約することにより、同一のシークエンスの冗長な保管が合体され、複雑化を防止する。列データパッカー224。
【0077】
符号生成器218の1つにより高度言語から生成された符号は幾つかの望ましくない特徴を持つ。1つの例はメソッド寸法である。性能を低下させる非常に大きなメソッドを避けることが望ましい。機能スプリッタ226はコンパイルされた符号状のメソッドを分析し、それをより小さな別々にロード可能な部分に分離する。機能の分離は機器依存性であり、コンパイル管理モジュール122によりこのように機器ベースに構成される。トリガーとなるパラメータは機器の一般的なメソッド寸法制限により制限され、また例えば機器構成が上記の図4のステップ164のように構築された時に決められる、
機器固有の性能特性により影響される。
【0078】
生成された符号を図3のパッチャー128により容易に変更可能とすることが符号生成段階で必要である。これは特に、種々の個人化パラメータ、例えばオンラインゲームでのスコア登録に典型的に使用される一意の顧客識別子、顧客がさらにゲームを獲得することを可能にする開発者サイトへのリンク、及びゲームに埋め込まれたテキストの宣伝、を更新するのに有用である。特別なパッチ準備モジュール228は、このような更新を許可する適切なインタフェースが存在することを確認する。
【0079】
生成されたコンテンツが梱包される前に符号難読化及びバイナリレベル変更の工程を通る。符号難読化モジュール230は、他者の分析や逆行分析を防止するため、既知の難読化技術を使用して生成された符号を変更する。
符号最適化モジュール232は種々のバイナリレベル最適化を生成された符号にっ適用する。例えばJava(登録商標)符号では不使用のフィールドとメソッドが除去される。
梱包はコンパイル工程の最終段階であり、それに続き生成されたコンテンツは対象機器にインストールされ、動作される。梱包段階は其々のプラットフォームについて別々の梱包モジュール234を使用して実行される。現在の実装はJava(登録商標)JARファイルを生成し、そして独自のBlackberry(登録商標)CODフォーマットに梱包される。
【0080】
図8は本発明の実施形態に基づく、クライアントの要求に対応するアプリケーションのコンパイルのステップを総括する、シークエンス図である。順序はステップ236において始まり、コンパイルされたアプリケーションがクライアントに返される流通ステップ238で終わる。
【0081】
本発明は上記で特に示され記述されたものに限定されないことは、当業者には認識される。むしろ本発明の範囲は上記に記載された種々の特徴の組合せや準組合せを含み、また上記の記載を読んだ当業者が想到する従来技術に無い変化形や変更を含む。
(コンピュータプログラムリスト)
(リスト1:タンク標的ゲーム:α言語の例)
【0082】
【表L1−1】

【表L1−2】

【表L1−3】

(リスト2:ゲーム記述子)
【表L2】

(リスト3:流通データ)
【表L3】

(リスト4:コンパイルされたゲーム)
【表L4】

(リスト5:構築された構成)
【表L5】

(リスト6:機器)
【表L6】

(リスト7:機器問題)
【表L7】

(リスト8:既知の問題)
【表L8】

(リスト9:顧客保存場所)
【表L9】

【符号の説明】
【0083】
20 MOPAD
30 道具箱 31 命令セット 32 α玩具箱
40 データセンター 41 α言語ライブラリ 42 顧客データ
50 メタ符号変換器 60 プロデューサ 70 消費者
112 サーバ 116 ゲーム貯蔵場所 118,120 インタフェース
122 コンパイル管理モジュール 124 ゲームデータベース
126 符号生成部 128 パッチャー 130 分析部
132 アプリケーション生成装置 134 機器貯蔵場所
138 機器指紋サブシステム 140 機器記述子生成器
142 顧客貯蔵場所 144 顧客データベース
146 顧客指紋サブシステム 148 顧客記述子生成器
150 流通システム 152 資金化マネージャ
154 アプリケーション開発マネージャ 156 アフィリエイトマネージャ
158 請求サブシステム 160 広告サービスサブシステム

【特許請求の範囲】
【請求項1】
コンピュータ用カスタムアプリケーションの作成のためのアプリケーションの流通システムであって、
処理装置と、
プログラムとデータオブジェクトを保管する前記処理装置にアクセス可能な記憶装置と、を有し、
前記プログラムの実行は前記処理装置に対し、
前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力からなる機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
からなるステップを実行させる、ことを特徴とするシステム。
【請求項2】
前記プログラムと前記データオブジェクトはさらに既知のタイプの遠隔機器の構成を有する機器貯蔵場所を有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器貯蔵場所は前記離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
前記機器構成を前記機器貯蔵場所に保管することにより、前記機器貯蔵場所を前記機器構成に適合させるステップと、
からなる、ことを特徴とする請求項1に記載のアプリケーション流通システム。
【請求項3】
前記プログラムと前記データオブジェクトはさらに機器指紋サブシステムを有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器指紋サブシステムを呼び出し、前記信号を分析して前記離れたクライアント機器の機器特性を識別し、そして前記機器特性に対応して前記離れたクライアント機器が前記機器貯蔵場所にある前記既知の機器構成と関連付けられるか否かを判定するステップを有する、ことを特徴とする請求項2に記載のアプリケーション流通システム。
【請求項4】
前記プログラムと前記データオブジェクトはさらに、其々の機器に依存しないアプリケーションアブストラクションと前記コンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースと、前記アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有し、
前記処理装置は、さらに
前記変数分析モジュールを呼び出し、前記アプリケーションアブストラクションの符号において変更点を判定するステップと、
前記フォント分析モジュールを呼び出し、前記特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
前記背景分析モジュールを呼び出し、前記機器構成における前記離れたクライアント機器の画像能力に適合させるために前記特定のアプリケーションを再構成する必要があるか否か判定するステップと、
前記スキン分析モジュールを呼び出し、前記機器構成における前記離れたクライアント機器の記憶容量に対応して、前記特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
を実行するように動作可能である、ことを特徴とする請求項1に記載のアプリケーション流通システム。
【請求項5】
前記プログラムと前記データオブジェクトはさらに、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
前記コンパイル構成を適用するステップは、
前記コンパイル構成に対応して符号生成器の1つを選択するステップと、
前記選択された1つの符号生成器で、前記特定のアプリケーションの前記コンパイルされたアプリケーションを有する、生成された符号を送信するステップと、
を有する、ことを特徴とする請求項1に記載のアプリケーション流通システム。
【請求項6】
前記生成された符号は、前記離れたクライアント機器用のネイティブな実行可能符号である、ことを特徴とする請求項5に記載のアプリケーション流通システム。
【請求項7】
前記生成された符号は、前記離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである、ことを特徴とする請求項5に記載のアプリケーション流通システム。
【請求項8】
前記プログラムと前記データオブジェクトはさらに、顧客指紋サブシステムを有し、
前記処理装置は、前記顧客指紋サブシステムを呼び出し前記顧客の顧客特性を識別し、前記顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能である、ことを特徴とする請求項1−7のいずれかに記載のアプリケーション流通システム。
【請求項9】
前記プログラムと前記データオブジェクトはさらに、パッチャーモジュールを有し、
前記処理装置は、前記パッチャーモジュールを呼び出して前記特定のアプリケーションの現在のコンパイルされたバージョンを変更し、前記現在のコンパイルされたバージョンを前記コンパイル構成に適合させるように動作可能である、ことを特徴とする請求項1−7のいずれかに記載のアプリケーション流通システム。
【請求項10】
前記プログラムと前記データオブジェクトはさらに、機能スプリッタモジュールを有し、
前記処理装置は、
前記コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
前記閾値の寸法は、前記コンパイル構成に含まれる前記離れたクライアント機器の記憶容量の制限に従って決定され、
前記機能スプリッタモジュールを呼び出し、前記機能をそれぞれ複数の符号セクションに分割するステップと、
からなる追加ステップを実行するように動作可能である、
ことを特徴とする請求項1−7のいずれかに記載のアプリケーション流通システム。
【請求項11】
前記プログラムと前記データオブジェクトはさらに、符号難読化モジュールを有し、
前記処理装置は、前記符号難読化モジュールを呼び出し前記コンパイルされたアプリケーションの少なくとも一部を難読化するように動作可能である、ことを特徴とする請求項1−7のいずれかに記載のアプリケーション流通システム。
【請求項12】
コンピュータ用カスタムアプリケーションの作成のためのコンピュータ用ソフトウェア製品であって、コンピュータプログラム命令を保管するコンピュータ用記憶媒体を有し、
前記命令はコンピュータに実行されると、コンピュータに対し、
アプリケーションの流通システムにおいて、前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
前記アプリケーションの流通システムにおいて、離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力を定義する機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
からなるステップを実行させることを特徴とするソフトウェア製品。
【請求項13】
既知のタイプの遠隔機器の構成を有する機器貯蔵場所を維持するステップをさらに有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器貯蔵場所は前記離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
前記機器構成を前記機器貯蔵場所に保管することにより、前記機器貯蔵場所を前記機器構成に適合させるステップと、
からなる、ことを特徴とする請求項12に記載のコンピュータ用ソフトウェア製品。
【請求項14】
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記信号を分析して前記離れたクライアント機器の機器特性を識別し、そして前記機器特性に対応して前記離れたクライアント機器が前記機器貯蔵場所にある前記既知の機器構成と関連付けられるか否かを判定するように動作可能な機器指紋サブシステムを実行するステップを有する、ことを特徴とする請求項13に記載のコンピュータ用ソフトウェア製品。
【請求項15】
前記アプリケーションの流通システムは、其々の機器に依存しないアプリケーションアブストラクションと前記コンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースを有し、
前記命令は、前記アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有する別個のソフトウェアモジュールに編成され、
前記命令は前記コンピュータに対し、
前記変数分析モジュールによって、前記アプリケーションアブストラクションの符号において変更点を判定するステップと、
前記フォント分析モジュールによって、前記特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
前記背景分析モジュールによって、前記機器構成における前記離れたクライアント機器の画像能力に適合させるために前記特定のアプリケーションを再構成する必要があるか否か判定するステップと、
前記スキン分析モジュールによって、前記機器構成における前記離れたクライアント機器の記憶容量に対応して、前記特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
からなる追加のステップを実行させる、ことを特徴とする請求項12に記載のコンピュータ用ソフトウェア製品。
【請求項16】
前記アプリケーションの流通システムは、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
前記コンパイル構成を適用するステップは、
前記コンパイル構成に対応して符号生成器の1つを選択するステップと、
前記選択された1つの符号生成器で、前記特定のアプリケーションの前記コンパイルされたアプリケーションを有する、生成された符号を送信するステップと、
を有する、ことを特徴とする請求項12に記載のコンピュータ用ソフトウェア製品。
【請求項17】
前記生成された符号は、前記離れたクライアント機器用のネイティブな実行可能符号である、ことを特徴とする請求項16に記載のコンピュータ用ソフトウェア製品。
【請求項18】
前記生成された符号は、前記離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである、ことを特徴とする請求項16に記載のコンピュータ用ソフトウェア製品。
【請求項19】
前記顧客構成を獲得するステップは、前記顧客の顧客特性を識別し、前記顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能な顧客指紋サブシステムを実行するステップを有する、ことを特徴とする請求項12−18のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項20】
前記命令は、パッチャーモジュールを含む別個のソフトウェアモジュールに編成され、
前記命令は、前記コンピュータに対し、前記パッチャーモジュールを呼び出して前記特定のアプリケーションの現在のコンパイルされたバージョンを変更し、前記現在のコンパイルされたバージョンを前記コンパイル構成に適合させるようにさせる、ことを特徴とする請求項12−18のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項21】
前記命令は、機能スプリッタモジュールを含む別個のソフトウェアモジュールに編成され、
前記命令は前記コンピュータが、
前記コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
前記閾値の寸法は、前記コンパイル構成に含まれる前記離れたクライアント機器の記憶容量の制限に従って決定され、
前記機能スプリッタモジュールを呼び出し、前記機能をそれぞれ複数の符号セクションに分割するステップと、
からなる追加ステップを実行するようにさせる、ことを特徴とする請求項12−18のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項22】
前記命令は、符号難読化モジュールを含む別個のソフトウェアモジュールに編成され、
前記命令は、前記コンピュータに対し、前記符号難読化モジュールを呼び出し前記コンパイルされたアプリケーションの少なくとも一部を難読化するようにさせる、ことを特徴とする請求項12−18のいずれかに記載のコンピュータ用ソフトウェア製品。
【請求項23】
コンピュータ用カスタムアプリケーションの作成のための方法であって、
アプリケーションの流通システムにおいて、前記コンピュータ用アプリケーションの仕様をプラットフォームに依存しない言語で保管するステップと、
前記アプリケーションの流通システムにおいて、離れたクライアント機器から信号を受信するステップと、
前記信号は前記離れたクライアント機器で実行される特定のアプリケーションの配送を求める顧客の要求を有し、
前記離れたクライアント機器に対し特性と能力を定義する機器構成を構築するように求めるステップと、
顧客の顧客構成を獲得するステップと、
前記機器構成と前記顧客構成に基づいてコンパイル構成を確立するステップと、
前記コンパイル構成を前記特定のアプリケーションの前記プラットフォームに依存しない言語に適用し、コンパイルされたアプリケーションを生成するステップと、
前記コンパイルされたアプリケーションは、前記離れたクライアント機器で動作し、前記顧客構成に対応したカスタム化されたコンテンツを含み、
前記コンパイルされたアプリケーションを前記離れたクライアント機器にダウンロードするステップと、
を有することを特徴とする方法。
【請求項24】
既知のタイプの遠隔機器の構成を有する機器貯蔵場所を維持するステップをさらに有し、
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記機器貯蔵場所は前記離れたクライアント機器の既知の機器構成を有していないと判定するステップと、
前記機器構成を前記機器貯蔵場所に保管することにより、前記機器貯蔵場所を前記機器構成に適合させるステップと、
からなる、ことを特徴とする請求項23に記載の方法。
【請求項25】
前記離れたクライアント機器に対し機器構成を構築するように求める前記ステップは、
前記信号を分析して前記離れたクライアント機器の機器特性を識別し、そして前記機器特性に対応して前記離れたクライアント機器が前記機器貯蔵場所にある前記既知の機器構成と関連付けられるか否かを判定するように動作可能な機器指紋サブシステムを実行するステップを有する、ことを特徴とする請求項24に記載の方法。
【請求項26】
前記アプリケーションの流通システムは、其々の機器に依存しないアプリケーションアブストラクションと前記コンピュータ用アプリケーションのコンパイルされたバージョンを保管する、アプリケーションデータベースを有し、また、前記アプリケーションアブストラクション上でアプリケーションオブジェクトの用途と依存性を判定するように動作可能な分析モジュールと、変数分析モジュールと、フォント分析モジュールと、背景分析モジュールと、及びスキン分析モジュールと、を有し、
前記方法はさらに、
前記変数分析モジュールによって、前記アプリケーションアブストラクションの符号において変更点を判定するステップと、
前記フォント分析モジュールによって、前記特定のアプリケーションの実行により表示されうる、テキストのテキストマップを構築するステップと、
前記背景分析モジュールによって、前記機器構成における前記離れたクライアント機器の画像能力に適合させるために前記特定のアプリケーションを再構成する必要があるか否か判定するステップと、
前記スキン分析モジュールによって、前記機器構成における前記離れたクライアント機器の記憶容量に対応して、前記特定のアプリケーションのデータ構造に挿入するための回転画像を再生成する必要性があるか否かを判断するステップと、
を有する、ことを特徴とする請求項23に記載の方法。
【請求項27】
前記アプリケーションの流通システムは、異なるタイプの遠隔機器にそれぞれインストール、実行可能な符号を生成する、複数の符号生成器を有し、
前記コンパイル構成を適用するステップは、
前記コンパイル構成に対応して符号生成器の1つを選択するステップと、
前記選択された1つの符号生成器で、前記特定のアプリケーションの前記コンパイルされたアプリケーションを有する、生成された符号を送信するステップと、
を有する、ことを特徴とする請求項23に記載の方法。
【請求項28】
前記生成された符号は、前記離れたクライアント機器用のネイティブな実行可能符号である、ことを特徴とする請求項27に記載の方法。
【請求項29】
前記生成された符号は、前記離れたクライアント機器上で仮想マシンを使用した実行に適合するアーカイブである、ことを特徴とする請求項27に記載の方法。
【請求項30】
前記顧客構成を獲得するステップは、前記顧客の顧客特性を識別し、前記顧客特性に対応してコンパイルされたアプリケーションに含まれる個人化されたコンテンツを選択する、ように動作可能な顧客指紋サブシステムを実行するステップを有する、ことを特徴とする請求項23−29のいずれかに記載の方法。
【請求項31】
前記コンパイル構成を適用するステップは、前記パッチャーモジュールを呼び出して前記特定のアプリケーションの現在のコンパイルされたバージョンを変更し、前記現在のコンパイルされたバージョンを前記コンパイル構成に適合させるステップを有する、ことを特徴とする請求項23−29のいずれかに記載の方法。
【請求項32】
前記コンパイル構成を適用するステップは、
前記コンパイルされたアプリケーションにおいて閾値を越える機能を識別するステップと、
前記閾値の寸法は、前記コンパイル構成に含まれる前記離れたクライアント機器の記憶容量の制限に従って決定され、
前記機能スプリッタモジュールを呼び出し、前記機能をそれぞれ複数の符号セクションに分割するステップと、
を有する、ことを特徴とする請求項23−29のいずれかに記載の方法。
【請求項33】
前記コンパイル構成を適用するステップは、前記符号難読化モジュールを呼び出し前記コンパイルされたアプリケーションの少なくとも一部を難読化するようにさせるステップを有する、ことを特徴とする請求項23−29のいずれかに記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2011−527465(P2011−527465A)
【公表日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2011−515711(P2011−515711)
【出願日】平成21年6月28日(2009.6.28)
【国際出願番号】PCT/IB2009/052777
【国際公開番号】WO2010/001324
【国際公開日】平成22年1月7日(2010.1.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
【出願人】(510312031)モミニス リミテッド (1)
【Fターム(参考)】