JP2009517752A - コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品 - Google Patents

コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品 Download PDF

Info

Publication number
JP2009517752A
JP2009517752A JP2008542861A JP2008542861A JP2009517752A JP 2009517752 A JP2009517752 A JP 2009517752A JP 2008542861 A JP2008542861 A JP 2008542861A JP 2008542861 A JP2008542861 A JP 2008542861A JP 2009517752 A JP2009517752 A JP 2009517752A
Authority
JP
Japan
Prior art keywords
graphics
computer
audio object
processor
audio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008542861A
Other languages
English (en)
Inventor
ヨアブ ツルヤ,
オハド シェオリー,
ユリ ツイッグ,
Original Assignee
エクセント テクノロジーズ, リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エクセント テクノロジーズ, リミテッド filed Critical エクセント テクノロジーズ, リミテッド
Publication of JP2009517752A publication Critical patent/JP2009517752A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0273Determination of fees for advertising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0252Targeted advertisements based on events or environment, e.g. weather or festivals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0272Period of advertisement exposure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Abstract

オリジナルのアプリケーションコードを変更及び再コンパイルする必要なしにコンピュータ装置上で実行中のビデオゲームのようなソフトウェアアプリケーションを動的に向上させるシステム、方法及びコンピュータプログラム製品。システムは、アプリケーションの実行を監視し、第1データベース内の、アプリケーションにより生成されたグラフィックス及び/またはオーディオ情報の各項目を索引付けるステージング環境を含む。その後、システム管理者または他のエンティティは、手動または自動手段により1つ以上のビジネスルールを第2データベースに投入する。各ビジネスルールは、第1データベース内の索引付けられたオブジェクトの1つ以上と関連する。

Description

(発明の分野)
本発明は、概して、ソフトウェアアプリケーションに関する。特に、本発明は、コンピュータ装置上で実行中のソフトウェアアプリケーションを動的に向上させる技術に関する。
(背景)
ソフトウェアアプリケーション、特にビデオゲームは、様々な技術を用いて表示装置にグラフィックス情報を描画する。1つの周知の技術は、DirectX(登録商標)またはOpenGL(登録商標)のような低レベルアプリケーションプログラミングインターフェース(API)への関数呼出しを行うことである。このような関数呼出しの受信に応答して、これらAPIは、コマンドをコンピュータシステムのグラフィックスハードウェアへ送出し、あるいはまた、ソフトウェアの関連のハードウェア機能をエミュレートしようとする。これに類似して、ソフトウェアアプリケーションは、DirectX(登録商標)APIスイート内のAPIであるDirectSound(登録商標)への関数呼出しを行うことによりオーディオ情報を再生することができる。
これらアプリケーションにより描画されるグラフィックス及びオーディオ情報の一部を動的な「ビジネスルール」セットに基づいて補強するため、このようなアプリケーションをエンドユーザ(例えば、パブリッシャ、リテイラ及びサービスプロバイダ)が利用できるようにすることは様々な関係者にとって興味深いことである。例えば、このようなビジネスルールを用いて、ビデオゲームにより描画されるグラフィックス要素上に広告コンテンツを表示するか、または、ビデオゲームにより再生されるオーディオストリーム内に広告コンテンツを挿入することができる。理想的には、これらをビジネスルールの動的性質により周期的に変更することができる。例えば、挿入された広告コンテンツを周期的に変更することができるのが有利である。
このことを達成する1つの可能な方法は、オリジナルのアプリケーションロジックまたは「ソースコード」へ直接にビジネスルールを埋め込み、その後、これらビジネスルールと一緒にアプリケーションを再コンパイルすることである。しかし、ビジネスルールに適合させるようにアプリケーションを符号化し再コンパイルするこの技術を、すべてのソフトウェアアプリケーションが達成できるとは限らない。一例として、ビジネスルールを挿入したい関係者はソースコードへのアクセス権を持っていないことがある。別の例として、向上されようとするアプリケーションは、この分野では既に配布されるか、または、消費者などにより購入される。
アプリケーションへのグラフィックスコンテンツの動的挿入を達成する別の方法は、アプリケーションのソフトウェア開発段階中、特別なクライアントソフトウェアをオリジナルのアプリケーションロジックへ組み入れることである。アプリケーションが実行された時、特別なクライアントソフトウェアは、予め定義された何らかのビジネスルールに基づいて、アプリケーションにより前もって識別され登録された予め割り当てられた空間内にアプリケーションへのグラフィックスコンテンツを動的に挿入することができるサーバと通信するようにアプリケーションを作用する。しかし、オリジナルにプログラムされたアプリケーションが、開発期間中に連結される必須の特別なクライアントソフトウェアを含み、動的に挿入されたグラフィックス情報が現れる空間を前もって識別した場合のみ、この方法が有効であるため、この方法は制限される。
従って、コンピュータ装置上で実行中のビデオゲームのようなアプリケーションを、オリジナルのアプリケーションコードを変更及び再コンパイルする必要なしに動的に向上させるシステム、方法及びコンピュータプログラム製品が求められる。アプリケーションの動的な向上は、アプリケーションにより実行中に生成されるグラフィックス及び/またはオーディオ情報を動的に変更するか、アプリケーションの実行中、追加のグラフィックス及び/またはオーディオ情報を動的に描画するか、または、アプリケーションのソースコードにより供給または呼出されていない実行中のアプリケーションに関連する他の関数を実行する機能を含む必要がある。
本発明は、オリジナルのアプリケーションコードを変更及び再コンパイルする必要なしにコンピュータ装置上で実行中のビデオゲームのようなアプリケーションを動的に向上させるシステム、方法及びコンピュータプログラム製品を提供する。一実施において、アプリケーションの動的な向上は、アプリケーションにより実行中に生成されたグラフィックス及び/またはオーディオ情報を動的に変更する機能を含む。別の実施において、アプリケーションの動的な向上は、アプリケーションの実行中、追加のグラフィックス及び/またはオーディオコンテンツを描画することを含む。更なる別の実施において、アプリケーションの動的な向上は、アプリケーションのソースコードにより供給または呼出されていない実行中のアプリケーションに関連する他の関数を実行することを含む。
一実施において、本発明の一実施形態によるシステムは、アプリケーションの実行を監視し、第1データベース内の、アプリケーションにより生成されたグラフィックス及び/またはオーディオ情報の各項目を索引付けるステージング環境を含む。その後、システム管理者または他のエンティティは、手動または自動手段により1つ以上のビジネスルールを第2データベースに投入する。各ビジネスルールは、第1データベース内の索引付けられた項目の1つ以上と関連する。このシステムは、実行時中、アプリケーションにより生成されたグラフィックス及び/またはオーディオ情報の項目を識別し、第2データベースを用いて、識別された項目がビジネスルールと関連するか否かを決定し、識別された項目がビジネスルールと関連するという決定に応答して、ビジネスルールを適用する実行時環境を更に含む。ビジネスルールの適用は、アプリケーションにより実行中に生成されたグラフィックス及び/またはオーディオ情報の変更、追加のグラフィックス及び/またはオーディオ情報の描画、または、アプリケーションのソースコードにより供給または呼出されていない実行中のアプリケーションに関連する他の関数の実行を生じさせることができる。
本発明の様々な実施形態の構造及び動作のみならず本発明の更なる特徴及び利点をも、添付図面を参照して以下に詳細に説明する。当然のことながら、本発明は、本明細書で説明される具体的な実施形態に限定されるものではない。このような実施形態は、本明細書において例示目的のみで示されている。本明細書に含まれた教示に基づく追加の実施形態は当業者に明らかである。
本明細書に組み入れられ、本明細書の一部を形成する添付図面は本発明を例示し、更に、図面に関する説明と併せて本発明の原理を説明し、当業者に本発明を製造及び使用させることができるようにする。
本発明の特徴及び利点は、同様の符号が対応する要素を特定する図面と併せて理解されれば、以下に述べる詳細な説明から更に明らかとなる。図中、一般的に、同様の符号は同一の、機能的に類似し、かつ/または構造的に類似した要素を示す。要素が始めて現れる図面は、要素に対応する符号の一番左の数字で示される。
(発明の詳細な説明)
(I. コンピュータ装置上で実行中のソフトウェアアプリケーションを動的に向上させるシステム)
図1には、本発明の一実施形態に従ってコンピュータ装置上で実行中のアプリケーションの動的な向上を容易にする例示的なシステム100のハードウェア構成要素を示す。図1に示されるように、システム100は、ステージング環境102及び実行時環境106の双方を含む。ステージング環境102は、後で実行時環境106により実行される動作を容易にするために行われるべき処理工程を実行する。特に、本明細書で更に詳細に説明されるように、ステージング環境102は、コンピュータ装置上で実行中のビデオゲームのようなソフトウェアアプリケーションを監視し、アプリケーションにより生成されたグラフィックス及びオーディオオブジェクトを識別し、グラフィックス/オーディオオブジェクトデータベース104内のこれらオブジェクトの各々に固有識別子(ID)と共に索引付ける。理想的には、この処理は、1つのソフトウェアアプリケーションにつき1回の実行を必要とするだけである。
本明細書で更に詳細に説明されるように、ステージング環境102にグラフィックス/オーディオオブジェクトデータベース104が投入された後、システム管理者または他のエンティティは、手動または自動手段により「ビジネスルール」セットをビジネスルールデータベース108に投入する。データベース108内の各ビジネスルールは、グラフィックス/オーディオオブジェクトデータベース104内の索引付けられたオブジェクトの固有IDの1つ以上と関連する。
実行時環境106は、エンドユーザがアプリケーションソフトウェアを実際に実行する環境を意味する。実行時環境106のアプリケーションは、完全に同一である必要はないが本質的に同じコンピュータプログラムの別のコピーまたはインスタンスであるという点で、ステージング環境102において実行されるアプリケーションと「同じ」である。本明細書で更に詳細に説明されるように、実行時環境106は、コンピュータ装置上のアプリケーションの実行を監視し、しかも、アプリケーションにより生成されたグラフィックス及びオーディオオブジェクトを識別する。アプリケーションにより生成されたオブジェクトが、前述したビジネスルールデータベース108内のオブジェクトと関連するビジネスルールに一致するということを実行時環境106が決定した場合、ビジネスルールを適用する。本明細書で他のビジネスルールも説明されるが、例えば、ビジネスルールを用いて、実行時中に(すなわち、ソフトウェアアプリケーションの実行中)オブジェクトを変更するか否かを決定することができる。
ハードウェア構成要素に関して、ステージング環境102及び実行時環境106の各々は、グラフィックス及びオーディオ情報を生成するソフトウェアアプリケーションを実行するように構成されたコンピュータ装置から成る。各コンピュータ装置は、アプリケーション生成グラフィックス情報を描画及び表示し、アプリケーション生成オーディオ情報を再生するアプリケーションプログラムインターフェースを更に含む。便宜上、この時点から、ステージング環境102及び実行時環境106の各々を、パーソナルコンピュータ(PC)に基づくコンピュータシステムを含むものとして説明する。ただし、本発明はこれに限定されない。例えば、ステージング環境102及び実行時環境106は各々、サーバ、コンソール、携帯情報端末(PDA)または、ソフトウェアアプリケーションを実行し関連のアプリケーション生成グラフィックス及びオーディオ情報をエンドユーザに表示することができる他の任意のコンピュータ装置を含むことができる。
図2には、システム100のソフトウェア構成要素を示す。図2に示すように、ステージング環境102は、アプリケーション202、代行受信構成要素(interception component)204、索引付け構成要素206及び低レベルグラフィックス/オーディオ関数208を含む。アプリケーション202は、ステージング環境102内で実行されるビデオゲームのようなソフトウェアアプリケーションである。低レベルグラフィックス/オーディオ関数208は、コンピュータシステムのメモリに存在し、アプリケーション202によるアクセスが可能であって、アプリケーション生成グラフィックス情報の描画及びアプリケーション生成オーディオ情報の再生中にアプリケーション202を支援するソフトウェア関数である。一実施形態では、低レベルグラフィックス/オーディオ関数208は、DirectX(登録商標)またはOpenGL(登録商標)のような低レベルアプリケーションプログラムインターフェース(API)内に1つ以上の関数を含む。
実行中、アプリケーション202が低レベルグラフィックス/オーディオ関数208への関数呼出しを行うように、アプリケーション202はプログラムされている。低レベルグラフィックス/オーディオ関数208とアプリケーション202との対話は当該技術分野において周知である。しかし、本発明の一実施形態によれば、このような関数呼出しは代行受信構成要素204により代行受信され、低レベルグラフィックス/オーディオ関数208に受け渡される前に索引付け構成要素206に供給される。代行受信構成要素204及び索引付け構成要素206は、アプリケーション202の実行前にステージング環境102のコンピュータシステムにインストールされるソフトウェア構成要素である。本明細書で更に詳細に説明されるように、索引付け構成要素206は、代行受信された関数呼出しと関連するグラフィックス及びオーディオオブジェクトを識別し、グラフィックス/オーディオオブジェクトデータベース104内の各オブジェクトを固有IDと共に索引付ける。
本発明の一実施形態では、代行受信構成要素204は、対応する低レベルグラフィックス/オーディオ関数208の1つ以上のエミュレートバージョンを含む。例えば、低レベルグラフィックス/オーディオ関数208が(動的リンクライブラリまたはDLLのような)グラフィックス及びオーディオライブラリに含まれる実施形態では、代行受信構成要素204は、エミュレートされた1つ以上のライブラリを含む。これらエミュレートされたライブラリは実行時にアプリケーション202にリンクされるように交換するためのものであるオリジナルのライブラリと同じ名前を有する。次に、エミュレーションによる受信代行の特定の一例を、図3及び図4を参照して説明する。
図3には、Microsoft(登録商標)Windows(登録商標)搭載PCの従来のソフトウェアアーキテクチャ300を示す。図3に示すように、ソフトウェアアーキテクチャ300は、PC上で実行する32ビットMicrosoft(登録商標)Windows(登録商標)アプリケーション302を含む。実行中、アプリケーション302は、周知の通りにDirect3D(登録商標)API304への関数呼出しを行う。当業者により明らかなように、Direct3D(登録商標)API304は、PCメモリに存在し、アプリケーション302によるアクセスが可能である一連のライブラリを含み、この一連のライブラリは、グラフィックス情報を描画及び表示するアプリケーション302により呼出すことができる関数を含む。アプリケーション302からの関数呼出しの受信に応答して、Direct3D(登録商標)API304は、このような関数をPC内のグラフィックスハードウェア308により実行できるか否かを決定する。このような関数をPC内のグラフィックスハードウェア308により実行できる場合、Direct3D(登録商標)API304は、コマンドをグラフィックスハードウェア308用の装置ドライバインターフェース(DDI)306へ送出する。次に、DDI306は、グラフィックスハードウェア308により処理されるコマンドを処理する。
図3に示される従来のソフトウェアアーキテクチャとは対照的に、図4には、本発明の一実施形態に従って、エミュレートされたグラフィックス及びオーディオライブラリを含むソフトウェアアーキテクチャを示す。図4に示すように、代行受信構成要素204は、アプリケーション302とDirect3D(登録商標)API304との間に挿入されている。このことを、Direct3D(登録商標)API304内の1つ以上のグラフィックスまたはオーディオライブラリをエミュレートすることにより達成することができる。結果として、アプリケーション302により生成された特定の関数呼出しは、Direct3D(登録商標)API304よりはむしろ代行受信構成要素204により受信される。代行受信構成要素204は、代行受信された関数呼出し、または、代行受信された関数呼出しと関連するグラフィックス及びオーディオオブジェクトを索引付け構成要素206へ供給する。代行受信構成要素204は、Direct3D(登録商標)API304への呼出しを行うことにより関数呼出しをDirect3D(登録商標)API304にも受け渡し、Direct3D(登録商標)API304では、これら関数呼出しは従来通りに処理される。しかし、関数呼出しは、本発明を実施するのにDirect3D(登録商標)API304へ必ずしも受け渡されることを必要としないことに留意すべきである。
オペレーティングシステムに依存して、純粋なグラフィックスAPIのエミュレーションを様々な方法で達成することができる。純粋なグラフィックスAPIをエミュレートする1つの方法はファイル置換である。例えば、DirectX(登録商標)及びOpenGL(登録商標)の双方はファイルから動的にロードされるので、適切なファイル(OpenGL(登録商標)に対するOpenGL.dll及びDirectX(登録商標)に対するd3dX.dll、ここで、XはDirectX(登録商標)バージョンである)を単に置換することによりエミュレーションを達成することができる。あるいはまた、DLLを、類似のインターフェースを有するスタブDLLと置換することができる。このインターフェースはhook関数以外のあらゆる関数に対してオリジナルのDLLへのパススルー呼出しを実施する。
用いることができる別の方法は、ワシントン州レッドモンドのMicrosoft(登録商標)社により公開された迂回(Detours)フックライブラリを用いてAPIへの関数呼出しを代行受信または「フック」することである。カーネルレベルでもフックを実施することができる。カーネルフックは、呼出されるAPIの通知ルーチンを有効にするオペレーティングシステム(OS)対応フックの使用を含むことができる。別の技術は、OS APIテーブルのポインタをフックルーチンポインタに変更し、フックロジックの実行の前及び/または後、オリジナルのOSルーチンへの呼出しを連鎖することによりOSルーチンを置換することである。別の可能な方法は、DLLをロードするようにレジストリキーを設定するか、または、システムグローバルフックを設定することにより、ロードされる任意の処理へDLLの導入を実行する、APIに基づくフック技術である。この導入は、処理アドレス空間内で実行するhook関数を有するためのみに行われる。OSがこのようなDLLをロードする間、DLL初期化コードは所望のDLLディスパッチテーブルを変更する。テーブルの変更は、(所望のAPIのみへの)DLL実施を指し示すオリジナルのAPI実施へのポインタを生じさせ、APIをフックする。フック技術は、例えば、ウェブページhttp://www.codeguru.com/system/apihook.htmlに記述されている。前述したフック技術は一例であって、これら技術が本発明を限定することを意味しないことに留意すべきである。グラフィックスまたはオーディオAPIへの関数呼出しを代行受信する他のツール及び方法は当業者に既知である。
図2に更に示されるように、実行時環境106は、アプリケーション210、代行受信構成要素212、ビジネスロジック214及び低レベルグラフィックス/オーディオ関数216を含む。完全に同一である必要はないが本質的に同じコンピュータプログラムの別のコピーまたはインスタンスであるという点で、アプリケーション210はステージング環境102のアプリケーション202と「同じ」である。低レベルグラフィックス/オーディオ関数216は、コンピュータシステムのメモリに存在し、アプリケーション202によるアクセスが可能であって、アプリケーション生成グラフィックス情報の描画及びアプリケーション生成オーディオ情報の再生中にアプリケーション210を支援するソフトウェア関数である。低レベルグラフィックス/オーディオ関数208,216は、それらが類似のAPIを介して同じ機能及びサービスをアプリケーション202及びアプリケーション210へそれぞれ提供するという意味で類似する。
実行時環境106のコンピュータシステム上の実行中、アプリケーション210は、アプリケーション220がステージング環境102の低レベルグラフィックス/オーディオ関数208への関数呼出しを行うことと同じ周知の通りに低レベルグラフィックス/オーディオ関数216への関数呼出しを行う。しかし、本発明の一実施形態によれば、このような関数呼出しは代行受信構成要素212により代行受信され、代行受信構成要素212は、関数呼出しを低レベルグラフィックス/オーディオ関数216及び/またはビジネスロジック214に受け渡される。代行受信構成要素212及びビジネスロジック214は、アプリケーション210の実行前に実行時環境106のコンピュータシステムにインストールされるソフトウェア構成要素である。
代行受信構成要素212が関数呼出しを代行受信する場合、関連のオブジェクトと一緒にコントロールをビジネスロジック214へ受け渡す。ビジネスロジック214は、オブジェクトがデータベース108内の1つ以上のビジネスルールと関連するか否かを決定する。オブジェクトがデータベース108内のビジネスルールと関連する場合、ビジネスロジック214はビジネスルールを適用する。
一実施形態では、ビジネスルールの適用は結果として、実行時、(照明源、視点、テクスチャまたは陰影付けを含むことができる)オブジェクトの変更を生じさせる。いかなる変更も生じさせない場合、代行受信された関数呼出しは単に低レベルグラフィックス/オーディオ関数216へ受け渡される。変更が生じる場合、ビジネスロジック214により単独で、または、低レベルグラフィックス/オーディオ関数216と連動してビジネスロジック214により、関数呼出しを処理することができる。本明細書で更に詳細に説明されるように、オブジェクトの変更は、オブジェクトの一部を変更すること、オブジェクトを異なるオブジェクトと置換すること、または、オブジェクトを単に描画または再生しないことを含む。本明細書には、他のビジネスルールの適用も説明される。
図5には、代行受信構成要素212がエミュレーションにより実施される実行時環境106用の例示的なソフトウェアアーキテクチャを示す。図5に示されるように、代行受信構成要素212は、Windows(登録商標)アプリケーション302とDirect3D(登録商標)API304との間に挿入されている。図4を参照して前述されたソフトウェアアーキテクチャと同様に、このことを、Direct3D(登録商標)API304内の1つ以上のグラフィックスまたはオーディオライブラリをエミュレートすることにより達成することができる。結果として、アプリケーション302により生成された特定の関数呼出しは、Direct3D(登録商標)API304よりはむしろ代行受信構成要素212により受信される。図5にも示されるように、一実施形態において、代行受信構成要素212及びビジネスロジック214の双方はDirect3D(登録商標)API304への関数呼出しを行うことができ、ビジネスロジック214はコマンドをDDI506へ直接に送信することができる。ビジネスロジック214がこの機能を有するか否かは、適用されるビジネスルールの性質に依存する。
一実施形態では、グラフィックス/オーディオオブジェクトデータベース104はステージング環境102のコンピュータシステムの局所メモリに生成または投入される。次に、システム管理者または他のエンティティは、手動または自動手段により1つ以上のビジネスルールをビジネスルールデータベース108に投入する。各ビジネスルールは、第1データベース内の索引付けられたオブジェクトの1つ以上と関連する。ビジネスルールとオブジェクトとの間の関連性は、データベース108内のビジネスルールとオブジェクトの固有IDとの間の関係を形成することにより生成される。一実施形態では、単一のビジネスルールに、論理的に関連したオブジェクト群と関連付けさせる「ワイルドカード」方式が用いられる。
一般的に言えば、ビジネスルールは、アプリケーション210のコンテキスト内で適用された場合に、オリジナルのアプリケーションのソースコードで供給されなかった関数をアプリケーション210に実行させる任意のロジックである。前述したように、ビジネスルールは、代行受信された関数呼出しと関連するグラフィックスオブジェクトの変更を要求することができ、これにより、グラフィックスオブジェクトが描画された時、変更されなかった場合に現れることになっていたグラフィックスオブジェクトと違うグラフィックスオブジェクトが現れる。例えば、ビジネスルールは広告コンテンツをグラフィックスオブジェクト内へ動的に挿入させることができる。ビジネスルール及びその用途の更なる例について、以下のIVに説明する。しかし、これらの例は例示目的のみで示され、本発明を限定するものではない。
システム管理者または他のエンティティによりいつでもビジネスルールを変更することができるので、ビジネスルールは、アプリケーション210を向上させる動的な機構を備える。例えば、ビジネスルールは、このアプリケーションにより生成されるグラフィックス及びオーディオコンテンツを補強する動的な機構を備える。
一実施形態では、ビジネスルールデータベース108がシステム管理者または他のエンティティにより生成または更新された後、データベース108のコピーは実行時環境106のコンピュータシステムの局所メモリに転送される。この転送は、データベース108のコピーを磁気または光ディスクのような記録可能なコンピュータ使用可能媒体へ転送し、次に、コンピュータ使用可能媒体を実行時環境106へ転送することにより達成することができる。あるいはまた、ローカルエリア及び/または広域データ通信ネットワークのようなデータ通信ネットワークを介してデータベース108のコピーを転送することができる。更なる別の実施形態では、データベース108は、実行時環境106のコンピュータシステムの局所メモリへは全く転送されないが、その代わりに、周知のネットワークアクセスプロトコルを用いて複数の実行時環境106がアクセスできるコンピュータネットワーク内の中央位置に記憶される。しかし、これらの例は本発明を限定するものではなく、実行時環境106にデータベース108を利用させる様々な方法を用いることができることは当業者に明らかである。
(II.コンピュータ装置上で実行中のソフトウェアアプリケーションを動的に向上させる方法)
図6には、本発明の一実施形態に従ってコンピュータ装置上で実行中のアプリケーションの動的な向上を容易にする方法のフローチャート600を示す。実質的には、図6は、単一のソフトウェアアプリケーションにより生成された単一のグラフィックスまたはオーディオ関数呼出しの処理に関してステージング環境102により行われる処理工程について記述する。ソフトウェアアプリケーションが多数のこのような関数呼出しを生成し、従って、ソフトウェアアプリケーションの実行中、フローチャート600の方法が何回も行われるであろうことは当業者にとって容易に明らかである。次に、この方法を一部において、図2に示され、この図について前述した特定のソフトウェア構成要素を参照して説明する。しかし、この実施形態にフローチャート600の方法が限定されないことは当業者に明らかである。
フローチャート600の方法の以下の説明は、ステージング環境102のソフトウェア構成要素の各々がコンピュータシステムに既にインストールされていると仮定する。更に、この方法は、ソフトウェアアプリケーション202がコンピュータシステム上で実行中であると仮定する。ソフトウェアアプリケーション202の実行は、アプリケーションを起動し、かつ、アプリケーションにグラフィックス及び/またはオーディオ情報を生成させるように1つ以上のユーザインターフェースを介してアプリケーションと対話することを含む。例えば、アプリケーション202がビデオゲームである場合、アプリケーションの実行は、ビデオゲームを起動し、適切なユーザ入出力(I/O)装置を用いてビデオゲームの少なくとも一部によりプレイすることを含む。
この方法は工程602から開始し、ソフトウェアアプリケーション202は、低レベルグラフィックス/オーディオ関数208に命令される関数呼出しを生成する。工程604では、関数呼出しが代行受信構成要素204により代行受信されるか否かを決定する。いかなる代行受信も行われない場合、処理は工程610に進行し、低レベルグラフィックス/オーディオ関数208が関数呼出しを通常通りに処理する。その後、工程612に示されるように関数呼出しの処理は終了する。しかし、関数呼出しが代行受信された場合、工程610に進行する代わりに、処理は工程606に進行する。
工程606では、代行受信構成要素204は、代行受信された関数呼出しと関連するグラフィックスまたはオーディオオブジェクトを識別する。グラフィックスオブジェクトは、モデル、テクスチャ、画像、パラメータ、または、代行受信された関数呼出しと関連し、アプリケーション202に代行してグラフィックス情報を描画するのに用いられる任意の他の別個の情報またはデータセットを含むことができる。オーディオオブジェクトは、オーディオファイル、デジタル音波、または、代行受信された関数呼出しと関連し、アプリケーション202に代行してオーディオ情報を再生するのに用いられる任意の他の別個の情報またはデータセットを含むことができる。グラフィックスまたはオーディオオブジェクトをそれ自体関数呼出しの一部とすることができ、または、関数呼出しによりアドレス指定または指し示すことができる。例えば、代行受信された関数呼出しがDirect3D(登録商標)APIへのSetTexture関数呼出しである場合、関連のグラフィックスオブジェクトは、SetTexture関数呼出しにより指し示されるテクスチャから構成することができる。
工程608では、索引付け構成要素206は、グラフィックス/オーディオオブジェクトデータベース104内の、工程606で識別されたグラフィックスまたはオーディオオブジェクトを索引付ける。一実施形態では、オブジェクトの索引付けは、オブジェクトまたはその一部分をオブジェクトの固有識別子(ID)と一緒にグラフィックス/オーディオオブジェクトデータベース104に記憶することを含む。固有IDを任意に割り当てることができ、または、オブジェクト自体に含まれる情報に基づいて計算することができる。例えば、一実施形態では、固有IDは、グラフィックスまたはオーディオオブジェクトのコンテンツの全部または一部に基づいて計算される巡回冗長コード(CRC)のようなエラー訂正コードを含む。代替の実施形態では、固有IDを生成するため、暗号化及び/またはハッシングアルゴリズムがグラフィックスまたはオーディオオブジェクトのコンテンツの全部または一部に適用される。例えば、固有IDを、グラフィックスまたはオーディオオブジェクトのコンテンツの全部または一部に基づいて計算されたMD5ハッシュシグニチャ(hash signature)とすることができる。オブジェクト自体のコンテンツに基づいて固有IDを生成する利点は、(極めて大規模であることがある)オブジェクト自体の代わりに固有IDを用いてビジネスルールデータベース108内の一致を検索することができる実行時環境106において実現されるということである。本発明の一実施形態では、内在するグラフィックスまたはオーディオオブジェクトを表すため、固有IDだけがビジネスルールデータベース108内に記憶される。結果として、ビジネスルールデータベース108の記憶要件をかなり減少させることができる。
一実施形態では、固有IDはフローチャート600の方法の一部として計算されないが、その代わりに、この方法の完了後、グラフィックス/オーディオオブジェクトデータベース104にグラフィックス及びオーディオオブジェクトが投入された時に行う別個の処理により計算される。
工程610では、索引付けが完了した後、関数呼出しを低レベルグラフィックス/オーディオ関数208へ受け渡し、これら関数呼出しは従来通りに処理される。その後、工程612に示されるように関数呼出しの処理は終了する。
前述したように、フローチャート600の方法は、ステージング環境102内でソフトウェアアプリケーションの実行中、何回も実行される可能性がある。更に、この方法を複数のソフトウェアアプリケーションの実行に適用してグラフィックス及びオーディオオブジェクトを索引付けることができる。複数のアプリケーションの索引付けられたグラフィックス及びオーディオオブジェクトを単一または複数のグラフィックス/オーディオオブジェクトデータベース104に記憶することができる。次に、これらデータベースの各々を用いて、1つ以上の実行時環境106内で用いるために供給される1つ以上のビジネスルールデータベース108を投入することができる。
図7には、本発明の一実施形態に従ってコンピュータ装置上で実行中のアプリケーションを動的に向上させる方法のフローチャート700を示す。実質的には、図7は、単一のソフトウェアアプリケーションにより生成された単一のグラフィックスまたはオーディオ関数呼出しの処理に関して実行時環境106により行われる処理工程について記述する。ソフトウェアアプリケーションが多数のこのような関数呼出しを生成し、従って、ソフトウェアアプリケーションの実行中、フローチャート700の方法が何回も行われるであろうことは当業者にとって容易に明らかである。次に、この方法を一部において、図2に示され、この図について前述した特定のソフトウェア構成要素を参照して説明する。しかし、この実施形態にフローチャート700の方法が限定されないことは当業者に明らかである。
フローチャート700の方法の以下の説明は、実行時環境106のソフトウェア構成要素の各々がコンピュータシステムに既にインストールされていると仮定する。更に、この方法は、ソフトウェアアプリケーション210がコンピュータシステム上で実行中であると仮定する。ソフトウェアアプリケーション210の実行は、アプリケーションを起動し、かつ、アプリケーションにグラフィックス及び/またはオーディオ情報を生成させるように1つ以上のユーザインターフェースを介してアプリケーションと対話することを含む。
この方法は工程702から開始し、ソフトウェアアプリケーション210は、低レベルグラフィックス/オーディオ関数216に命令される関数呼出しを生成する。工程704では、関数呼出しが代行受信構成要素により代行受信されるか否かを決定する。いかなる代行受信も行われない場合、処理は工程712に進行し、低レベルグラフィックス/オーディオ関数216が関数呼出しを通常通りに処理する。その後、工程714に示されるように関数呼出しの処理は終了する。しかし、関数呼出しが代行受信された場合、工程712に進行する代わりに、処理は工程706に進行する。
工程706では、代行受信構成要素212は、代行受信された関数呼出しと関連するグラフィックスまたはオーディオオブジェクトを識別する。前述したように、グラフィックスオブジェクトは、モデル、テクスチャ、画像、パラメータ、または、代行受信された関数呼出しと関連する任意の他の別個のグラフィックス情報セットを含むことができ、オーディオオブジェクトは、オーディオファイル、デジタル音波、または、代行受信された関数呼出しと関連する任意の他の別個のオーディオ情報セットを含むことができる。グラフィックスまたはオーディオオブジェクトをそれ自体関数呼出しの一部とすることができ、または、関数呼出しによりアドレス指定または指し示すことができる。例えば、代行受信された関数呼出しがDirect3D(登録商標)APIへのSetTexture関数呼出しである場合、関連のグラフィックスオブジェクトは、SetTexture関数呼出しにより指し示されるテクスチャから構成することができる。
工程708では、ビジネスロジック214は、識別されたオブジェクトがビジネスルールデータベース108内の少なくとも1つのビジネスルールと関連するか否かを決定する。この工程は、識別されたオブジェクトまたはその一部分を、データベース108に記憶されたグラフィックスまたはオーディオオブジェクト、またはその一部分と比較することを含むことができる。あるいはまた、この工程は、識別されたオブジェクトの固有IDを計算し、次に、識別されたオブジェクトの固有IDを、データベース108に記憶された一連の固有IDと比較することを含むことができる。例えば、図6を参照して前述したように、固有IDは、識別されたオブジェクトのコンテンツの全部または一部に基づいて計算されるCRCのようなエラー訂正コード、または、暗号化及び/またはハッシングアルゴリズムを、識別されたオブジェクトのコンテンツの全部または一部に適用することにより導き出されるMD5ハッシュシグニチャのようなシグニチャを含むことができる。本発明によれば、「ワイルドカード」または他の論理的なオブジェクト分類を用いてビジネスルールを複数のオブジェクトと関連付けることができることに留意すべきである。例えば、ビジネスルールデータベース108は、包括的に一致する表現により識別された全オブジェクトに適用されるビジネスルールを含むことができる。
識別されたオブジェクトがデータベース108内の少なくとも1つのビジネスルールと関連しない場合、処理は工程712に進行し、低レベルグラフィックス/オーディオ関数216により関数呼出しを従来通りに処理する。
しかし、識別されたオブジェクトがデータベース108内の少なくとも1つのビジネスルールと関連する場合、工程710に示されるようにビジネスロジック214は少なくとも1つのビジネスルールを適用する。一実施形態では、ビジネスルールの適用は結果として、識別されたオブジェクトの変更を生じさせる。このような変更は、識別されたオブジェクトを異なるオブジェクトと置換すること、識別されたオブジェクトのコンテンツを変更すること、または、識別されたオブジェクトを単に全く描画または再生しないことを含む。しかし、本発明は、オブジェクトを単に変更することに限定されない。例えば、ビジネスルールは、或るオブジェクトの描画または再生を別のオブジェクトの描画または再生より先に行うか、または、或るオブジェクトの描画または再生を別のオブジェクトの描画または再生より後に行うことを含むことができる。ビジネスルールの適用がオブジェクトの描画または再生を含みうるので、このような適用は、低レベルグラフィックス/オーディオ関数216への1つ以上の関数呼出しを行うことを含みうるということに留意すべきである。
実際には、ビジネスルールは、任意のグラフィックス情報の描画または任意のオーディオ情報の再生を含む必要はない。その代わりとして、単に、代行受信構成要素212による特定のグラフィックスまたはオーディオオブジェクトの識別に応答してソフトウェアアプリケーション210のコンテキスト内の何らかのアクティビティを実行することからビジネスルールを構成することができる。一例として、ビジネスルールは、(シューティングゲームにおける自動照準、または、画面上のゲームメニュー内の自動的な方向付けに有用である)表示画面の予め定義された領域までの、ユーザ入力装置と関連するポインタを移動し、(「チートコード」の入力のような)キー列を生成し、ソフトウェアアプリケーション内のユーザ進行状況をロギング及び/または報告し、または、他のアクティビティを実行することを含むことができる。代行受信された関数呼出しと関連するグラフィックスまたはオーディオオブジェクトが、エミュレートされないオリジナルの低レベルグラフィックスまたはオーディオライブラリにより描画または再生される前か後に、あるいは、その代わりとして、前述した各イベントを実行することができる。
工程710において1つ以上のビジネスルールが適用された後、工程712に示されるように、関数呼出しの処理は終了する。
(III.実行時環境へのソフトウェア構成要素の配布/インストール)
前述したように、本発明の一実施形態は、コンピュータ装置上で実行中のソフトウェアアプリケーションへのビジネスルールの適用を容易にし、これにより、オリジナルのアプリケーションコードを変更及び再コンパイルする必要なしに動的にアプリケーションを向上させることができる。更に、エミュレートされたライブラリを用いて本発明の一実施形態を実行時環境106において実施することができるので、動作を本質的にエンドユーザに気付かれなくすることができる。実際に、実行時環境106への必要なソフトウェア構成要素(すなわち、代行受信構成要素212、ビジネスロジック214及び、任意選択的にビジネスルールデータベース108)のインストールを除いて、エンドユーザは、ソフトウェアアプリケーションを外部のソフトウェア構成要素に連結またはインターフェース接続するいかなる事前措置も取る必要はない。
エンドユーザのコンピュータ装置への必要なソフトウェア構成要素の配布を様々な方法で達成することができる。例えば、インターネットのようなデータ通信ネットワークを介してソフトウェア構成要素を集中型エンティティから多数の実行時環境へ配布することができる。このようなシステムを図8に示す。図示のように、集中型ネットワークエンティティ802は、データ通信ネットワーク804を介して複数のユーザ実行時環境106a,106b,106cと通信する。このようなネットワークに基づく配布を自動インストールソフトウェアと組み合わせることにより、エンドユーザのコンピュータ装置上でのこのような構成要素のインストールを、最小限のエンドユーザ介入で足りる方法で達成することができる。更に、エンドユーザマシン上で実行時構成要素の単一コピーしか必要としないので、これらの構成要素を1つ以上のアプリケーション210と統合することもできる。
本発明の一実施形態では、所定のアプリケーションを異なるように向上させるため、エンティティ(例えば、パブリッシャ、リテイラまたはサービスプロバイダ)がビジネスルールを周期的に変更することができるという意味でビジネスルール自体は動的である。ビジネスルールデータベース108に変更を行うことによりビジネスルールを変更または追加することができる。図8に示されるようなネットワークシステムを用いてデータ通信ネットワークを介してビジネスルールデータベース108のコピーまたは更新情報を集中型ネットワークエンティティから複数の実行時環境106へ配布することができる。
代替の実施形態では、ビジネスルールデータベース108のコピーは実行時環境106へ全く配布されないが、その代わり、ビジネスルールデータベース108は実行時環境106に対して遠隔的に存在し、必要とされる時だけにインターネットのようなデータ通信ネットワークを介してアクセスされる。例えば、ビジネスロジックルールデータベース108は、複数の実行時環境106と関連するコンピュータ装置によりアクセスされるサーバのような集中型ネットワークエンティティに存在することができる。この場合も、このようなネットワーク構成を図8に示す。この実施形態は、ビジネスルールの変更を中央サーバで1度だけ実施すれば良く、複数の実行時環境106に盛んに配布される必要はないという点で有利である。
代行受信構成要素212が、1つ以上のエミュレートされたライブラリを含む実施形態では、ライブラリをエミュレートすべきかの決定を、代行受信構成要素212のインストール中またはアプリケーションの実行時に行うことができる。従って、異なるライブラリセットを、動的に向上すべきソフトウェアアプリケーションごとにエミュレートすることができる。この決定を、動的に向上すべきソフトウェアアプリケーションの特性に基づいて、または、外部から供給された何らかのメタデータに基づいて行うことができ、あるいは、何らかの手段によりステージング環境から供給することができる。
(IV.本発明の例示的な用途)
次に、本願の幾つかの例示的な用途を説明する。これらの例は例示目的のみで示され、決して本発明を限定するものではない。
(A.ゲーム内広告の埋め込み)
本発明の一実施形態は、ゲーム内広告を、このような機能を支援するように設計されていないゲームへ埋め込むのを容易にする。この実施形態によれば、ステージング環境102は、グラフィックス/オーディオオブジェクトデータベース104内の、レースゲームにおける車のボンネットのようなゲーム関連の表面のテクスチャを索引付けるように動作する。次に、システム管理者は、宣伝製品と関連するロゴで車のボンネットを覆うためのビジネスルールを定義する。このビジネスルールは、ビジネスルールが車のボンネットに対するテクスチャと関連するビジネスルールデータベース108に獲得される。実行時環境106では、代行受信構成要素212は、エンドユーザのコンピュータ上に描画するためにアクセスされるテクスチャを識別し、ビジネスロジック214はテクスチャを、データベース108に記憶されたビジネスルールと突き合わせる。結果として、ビジネスルールは、製品のロゴを有する車のボンネットに対するテクスチャの画像を補強し、操作された画像を画面上で描画するように適用される。最終結果として、製品のロゴは、ゲームと関連するグラフィック表示装置「内の」車のボンネット上に表示される。
本明細書で示された教示に基づいて、ゲームのコンテキスト内で再生されるオーディオオブジェクト内へオーディオ広告コンテンツを挿入することに本発明を同様に適用できることは当業者に明らかである。更に、任意の特定の代行受信されたオブジェクトに無関係であり、このオブジェクトとは無関係に描画または再生されるグラフィックス及びオーディオ広告コンテンツを描画することにも本発明を適用することができる。
本発明の更なる実施形態では、実行時環境106は、キーボードまたはマウスのようなエンドユーザ装置から入出力(I/O)を獲得するロジックを更に含む。このような実施形態のソフトウェア構成要素を図9に示す。特に、図9に示すように、実行時環境106のソフトウェア構成要素は、図2に示されたソフトウェアアーキテクチャに類似して、アプリケーション910、低レベルグラフィックス/オーディオ関数916及び、これらの間に「挿入され」、ビジネスロジック914と通信する代行受信構成要素912を含む。しかし、図9に示される実施形態では、キーボードまたはマウスのようなユーザ入力装置の使用と関連するイベントをビジネスロジック914に監視させることができる追加のI/O獲得構成要素918が備えられている。一実施形態では、この監視は、マウスまたはキーボード入力の処理と関連する関数をエミュレートすることにより達成される。
図9によるシステムを用いて、ゲーム内広告の埋め込みを容易にする本発明の一実施形態の機能を拡張することができる。例えば、埋め込まれた製品のロゴは、ゲームと関連するグラフィック表示装置内に描画される間、I/O構成要素918は、例えば、ロゴをマウスで指し示しクリックすることによりユーザがロゴと対話した時を識別するためにユーザ入力を監視する。ユーザ対話が生じたという決定に応答して、ビジネスロジック914は関数を実行する。一例として、この関数は、サーバへ送信すべきデータを入力する記入用紙をユーザへ表示するか、他のグラフィックスまたはオーディオコンテンツをユーザへ表示するか、または、賞品または、ユーザが賞品を受け取るであろうという通知をユーザに供給することを含むことができる。
(B.ゲーム中の進行状況及び達成の識別)
本発明の一実施形態によれば、ゲーム中のレベル進行状況及び達成を識別することができ、進行状況または達成に基づいて特定の措置を取ることができる。例えば、複数のレベルまたは段階に分割されたゲーム中の特定レベルまたは段階を表すか、または、これに対して一意的である、ステージング環境102内で識別されたグラフィックスまたはオーディオオブジェクトと、ビジネスルールとを関連付けることができる。同じオブジェクトが実行時環境106内で識別された場合、エンドユーザはゲーム中の或るレベルまたは段階に達し、ビジネスルールは適用される。ビジネスルールは、達成または進行状況に関する情報をロギングし、次に、この情報を、インターネットのようなデータ通信ネットワークを介して集中型リポジトリに送信してトーナメント及び効果割り当て方式を可能にすることを含むことができる。あるいはまた、ゲーム採点を画面上に表示するゲームにおいて、描画された情報を獲得することができ、ユーザが達成した実際の採点をロギングし、トーナメント及び効果割り当て方式を可能にするデータとして用いることができる。
(C.ビデオゲームコントロールの表示)
本発明の前述した実施形態では、ビジネスルールは、実行時環境106による特定のアプリケーション生成グラフィックスまたはオーディオオブジェクトの識別の結果として適用される。しかし、代替の実施形態では、その代わりに、ビジネスルールは、実行中のソフトウェアアプリケーションのコンテキスト内、または、実行時環境106のコンピュータシステム内で生じた他のイベントの検出に応答して適用される。
このような一実施形態を図10に示す。図10に示すように、実行時環境106のソフトウェア構成要素は、図2に示されたソフトウェアアーキテクチャに類似して、アプリケーション1010、低レベルグラフィックス/オーディオ関数1016及び、これらの間に「挿入され」、ビジネスロジック1014と通信する代行受信構成要素1012を含む。しかし、図10に示される実施形態では、実行中のソフトウェアアプリケーションのコンテキスト内、または、実行時環境106のコンピュータシステム内で生じたイベントをビジネスロジック1018に通知させる追加のイベント検出構成要素1018が備えられている。図10に示されるシステムでは、ビジネスロジック1014は、このようなイベントの検出に応答してビジネスルールを選択的に適用する。
このようなシステムの例示的な用途は、ビデオゲームと関連するグラフィック表示装置内にビデオゲームコントロールの表示をトグルオンまたはオフすることを含み、このような機能はビデオゲーム自体により供給されない。この例示的な用途によれば、イベント検出構成要素1018は、画面上コントロールをターンオンまたはオフするためにユーザがキーボード入力の組み合わせのようなコンピュータシステムへの入力を供給したことを検出する。このイベントの検出に応答して、ビジネスロジック1014は、コントロールがトグルオンされる場合にコントロールを画面上に描画させ、コントロールがトグルオフされる場合にコントロールを画面上に描画させない。コントロールの描画は、必要な低レベルグラフィックス/オーディオ関数1016への関数呼出しを行ってこのタスクを実行することにより達成される。この機能は、エンドユーザによりビデオゲームの有用性を向上させる。
ユーザがゲーム中に特定の「段階」に到達したことを識別する特定のグラフィックスまたはオーディオオブジェクトの識別により更に、このようなコントロールの画面上表示を起動することができる。従って、新たな「レベル」に達すると、画面上コントロール情報をユーザに自動的に供給することができ、ゲームにおいてユーザの役に立つ。
(D.試用メッセージ)
図10のシステムの別の例示的な用途は、アプリケーションソフトウェアを用いる試用期間の終了についてエンドユーザに通知することを含む。アプリケーションソフトウェアは、限定期間中のみに、及び/または限定数の「レベル」中に用いられることを対象とする。この例によれば、イベント検出構成要素1018は、アプリケーションの実行に対して所定のしきい値に達した時にビジネスロジック1014に通知する。例えば、しきい値を、アプリケーションが用いられた合計時間(例えば、総使用の1時間)、または、アプリケーションが起動された合計回数(例えば、10セッション)とすることができる。このしきい値は、実際の試用期間の終了にマークを付けるか、または、試用期間の終了が近づいてきた時のみにマークを付けることができる。いずれの場合でも、このような通知に応答して、ビジネスロジック1014は、試用期間の終了についてユーザに警告するため、ユーザへのグラフィックスまたはオーディオメッセージを描画または再生させる。このようなメッセージを、アプリケーションにより生成されるグラフィックスまたはオーディオオブジェクトの一部として描画することができ、または、任意のこのようなオブジェクトから切り離して描画することができる。メッセージは、アプリケーションを用いる残り時間の量または残りのセッションをユーザに示すことができる。このようなメッセージの描画は、必要な低レベルグラフィックス/オーディオ関数1016への関数呼出しを行うことにより達成される。
本発明の別の実施形態では、代行受信構成要素は、新たな「段階」または「レベル」に達したことを示す特定のオブジェクトを識別することができ、これにより、アプリケーションの使用を特定のレベルまたは段階に制限するビジネスルールを管理者または他のエンティティに設定させる。このような新たなレベルまたは段階を識別する際に、(必要とされるキー列を生成することにより)ゲームを自動的に保存することができ、適切なメッセージをユーザに表示することができる。
図9を参照して前述した獲得機能のようなI/O獲得機能を含む更なる実施形態(図示せず)では、I/O獲得構成要素は、例えば、マウスでメッセージを指し示しクリックすることによりユーザが、グラフィックに描画された試用メッセージと対話した時を識別するためにユーザ入力を監視する。ユーザ対話が生じたという決定に応答して、ビジネスロジック1014は関数を実行する。一例として、関数は、アプリケーションを用いる追加のライセンス期間をエンドユーザに入手させる処理を起動することを含むことができる。
(E.ペアレンタルコントロール)
図10のシステムの更なる例示的な用途は、ソフトウェアアプリケーションの使用を管理するペアレンタルコントロールの動的な実施を可能にする。例えば、親は、ビデオゲームアプリケーションが1日のような所定の期間にわたってプレイされる時間量を制限したいことがある。この例によれば、イベント検出構成要素1018は、規定期間の終了に達した時にビジネスロジック1014に通知する。このような通知に応答して、ビジネスロジック1014は、規定期間の終了の到達についてユーザに警告するため、ユーザへのグラフィックスまたはオーディオメッセージを描画または再生させる。更に、規定期間が切れた場合、ビジネスロジック1014は通知され、ビデオゲーム中の任意の進行状況を保存させ、その後、アプリケーションを終了する。
本明細書の別の部分に説明されているように、ソフトウェアアプリケーションの実行中、特定の識別されたグラフィックスまたはオーディオオブジェクトを描画または再生させないビジネスルールを実施することもできる。このような実施形態は、ビデオゲーム中、特定のグラフィックス及び/またはオーディオオブジェクトコンテンツの提示を選択的に遮断するペアレンタルコントロールを供給するのに特に有用である。
(F.画面上通信メッセージ)
図10のシステムの別の例示的な用途では、イベント検出構成要素1018は、実行時環境106のコンピュータシステムにも常駐する電子メールクライアント及び/またはインスタントメッセンジャを監視し、これらアプリケーションの1つによりメッセージのような情報が受信された時にビジネスロジック1014に通知する。その後、ビジネスロジック1014は、アプリケーション1010と関連するグラフィック表示装置内にメッセージを描画することによりメッセージをエンドユーザに供給する。ビジネスロジック1014は、低レベルグラフィックス/オーディオ関数1016にアクセスすることによりこのタスクを実行する。このような機能を用いて、ビデオゲームを、干渉されずに途切れなくプレイしながら、電子メール及びインスタントメッセンジャメッセージをエンドユーザに供給させることができる。実際に、このような機能は、全画面DirectX(登録商標)アプリケーションの場合、別の方法では不可能である。
(G.メニューシステム認識及び操作)
本発明の別の実施形態では、メニューシステム認識及び操作機能を提供する。例えば、このような実施形態によれば、代行受信構成要素212は、ビデオゲームのようなアプリケーション210が、メニューシステムと関連するグラフィックスを描画していることを識別する。これに応答して、ビジネスロジック214は1つ以上のアクティビティを実行する。例えば、ビジネスロジック214は、メニューシステム内で容易なナビゲーションを可能にするメニュー項目スナップ機能を有効にする。このような機能は、エンドユーザのマウスポインタを近接のメニュー項目へ移動することを含むことができる。その代わりに、または、これに加えて、図9を参照して前述したような、キーボード入力を獲得することによるI/O獲得機能を含む実施形態(図示せず)では、ビジネスロジックは、アナログのマウス動作から離散的な矢印キーベースの動作へ変換することによりメニュー項目間で移動させることができる。更なるアプリケーションは、ペアレンタルコントロールまたは使用許可関連のパラメータに応じて特定のメニュー項目を選択するエンドユーザの能力を遮断することを含むことができる。
(H.シーン操作)
本発明の別の実施形態では、特定のシーンについて様々な操作を実行することができる。例えば、これら操作の一部には、以下のことが含まれる。
(投影操作)シーンのグラフィック出力、またはその一部を、平面とは異なる表面上に示すように操作することができる。例えば、描画された出力を球状に投影する場合、この表面への投影を導入するのに特定のレンズを必要とはしないが、その表面に応じて、シーン内の選択された設定の指標及び頂点に変換を加える。「BeginScene」及び「EndScene」呼出しへの呼出しを代行受信すると、特定のビジネスロジックを、その間のすべての呼出しに適用することができる。その後の適用は、表面の形状に従って動的に適応するように表面自体からフィードバックすることを更に含むことができる。
(オブジェクト寸法及び形状)別の例は、シーンオブジェクトの伸縮及び変更を含むことができる。例えば、シーン画像を、より高くしたり、より細くしたりすることなどができる。
(視点操作)既存のシーンの視点を変更可能にするためにビジネスロジックを用いることができる。例えば、レースゲームにおいて、ゲームのオリジナル機能により提供されない車の屋根からの視点を追加するのに本発明を用いることができる。その後、オリジナル画像または異なる画面上の代わりにゲーム自体の内部のピクチャインピクチャとしてシーンを表示することができる。画像が異なる画面上に表示される場合、操作された画像との双方向性を追加して、ゲームをする人のユーザ体験に影響を与えることなしに様々な視点から視聴者にゲームを見せることができる。
(照明操作)照明定義の変更を可能にするのにビジネスロジックが用いられる。例えば、暗いゲームまたはシーンを照明する。
(陰影付け操作)陰影付け定義の変更を可能にするのにビジネスロジックが用いられる。例えば、この操作を用いて、曇りを追加または除去するか、あるいは透明度を変更することができる。
(V.例示的なコンピュータシステム実施形態)
図11には、ステージング環境102または実行時環境106を実施するのに用いることができる例示的なコンピュータシステム1100を示す。しかし、コンピュータシステム1100の以下の説明は一例であって、本発明を限定するものではない。むしろ、本明細書の別の部分に説明されているように、ステージング環境102及び実行時環境106は各々、サーバ、コンソール、携帯情報端末(PDA)または、ソフトウェアアプリケーションを実行し関連のアプリケーション生成グラフィックス及びオーディオ情報をエンドユーザに表示することができる他の任意のコンピュータ装置を含むことができる。
図11に示されるように、例示的なコンピュータシステム1100は、ソフトウェアルーチンを実行するプロセッサ1104を含む。図面を明瞭とするために、単一のプロセッサが示されているが、コンピュータシステム1100はマルチプロセッサシステムを含むこともできる。プロセッサ1104は、コンピュータシステム1100の他の構成要素と通信するため、通信基盤1106に接続されている。通信基盤1106は、例えば、通信バス、クロスバーまたはネットワークを含むことができる。
コンピュータシステム1100は、ランダムアクセスメモリ(RAM)のような主メモリ1108と、2次メモリ1110とを更に含む。2次メモリ1110は、例えば、ハードディスクドライブ1112及び/または、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブなどを含むことができる取り外し可能なストレージドライブ1114を含むことができる。取り外し可能なストレージドライブ1114は周知の通りに、取り外し可能なストレージユニット1118から読み取り、かつ/または取り外し可能なストレージユニット1118へ書き込む。取り外し可能なストレージユニット1118は、取り外し可能なストレージドライブ1114により読み取りまたは書き込まれるフロッピー(登録商標)ディスク、磁気テープ、光ディスクなどを含むことができる。当業者に明らかなように、取り外し可能なストレージユニット1118は、コンピュータソフトウェア及び/またはデータが記憶されたコンピュータ使用可能ストレージ媒体を含む。
代替の実施形態では、2次メモリ1110は、コンピュータプログラムまたは他の命令をコンピュータシステム1100へロードさせる他の類似の手段を含むことができる。このような手段は、例えば、取り外し可能なストレージユニット1122及びインターフェース1120を含むことができる。取り外し可能なストレージユニット1122及びインターフェース1120の一例として、(ビデオゲームコンソール装置内に見受けられるような)プログラムカートリッジ及びカートリッジインターフェース、(EPROMまたはPROMのような)取り外し可能なメモリチップ及び関連のソケット、並びに、ソフトウェア及びデータを取り外し可能なストレージユニット1122からコンピュータシステム1100へ転送させる他の取り外し可能なストレージユニット1122及びインターフェース1120が挙げられる。
コンピュータシステム1100は少なくとも1つの通信インターフェース1124も含む。通信インターフェース1124は、通信経路1126を介してコンピュータシステム1100と外部装置との間でソフトウェア及びデータを転送させる。特に、通信インターフェース1124は、コンピュータシステム1100と、公衆データまたは専用データ通信ネットワークのようなデータ通信ネットワークとの間でデータを転送させる。通信インターフェース1124の一例として、モデム、(Ethernet(登録商標)カードのような)ネットワークインターフェース及び通信ポートなどを挙げることができる。通信インターフェース1124を介して転送されたソフトウェア及びデータは、通信インターフェース1124により受信されうる電子信号、電磁気信号、光信号または他の信号とすることができる信号の形態を取る。これら信号は、通信経路1126を介して通信インターフェースへ供給される。
図11に示されるように、コンピュータシステム1100は、関連の表示装置1130に画像を描画する動作を実行する表示インターフェース1102と、関連の(1つ以上の)スピーカ1134を介してオーディオコンテンツを再生する動作を実行するオーディオインターフェース1132とを更に含む。
本明細書で用いられるように、「コンピュータプログラム製品」なる用語は、一部において、取り外し可能なストレージユニット1118、取り外し可能なストレージユニット1122、ハードディスクドライブ1112にインストールされたハードディスク、または、通信経路1126(無線リンクまたはケーブル)を介して通信インターフェース1124へソフトウェアを伝送する搬送波を意味することができる。コンピュータ使用可能媒体は、磁気媒体、光学媒体または他の記録可能媒体、あるいは、搬送波または他の信号を送信する媒体を含むことができる。これらコンピュータプログラム製品は、ソフトウェアをコンピュータシステム1100へ供給する手段である。
(コンピュータ制御ロジックとも称される)コンピュータプログラムは、主メモリ1108及び/または2次メモリ1110に記憶されている。また、通信インターフェース1124を介してコンピュータプログラムを受信することができる。このようなコンピュータプログラムは実行されると、本明細書で説明されているようにコンピュータシステム1100に本発明の1つ以上の特徴を実行させる。特に、コンピュータプログラムは実行されると、プロセッサ1104に本発明の特徴を実行される。従って、このようなコンピュータプログラムはコンピュータシステム1100のコントローラを意味する。
本発明を実施するソフトウェアをコンピュータプログラム製品に記憶し、取り外し可能なストレージドライブ1114、ハードディスクドライブ1112またはインターフェース1120を用いてコンピュータシステム1100へロードすることができる。あるいはまた、通信経路1126を介してコンピュータプログラム製品をコンピュータシステム1100へダウンロードすることができる。ソフトウェアはプロセッサ1104により実行されると、本明細書で説明されているようにプロセッサ1104に本発明の関数を実行させる。
(D.結論)
本発明の様々な実施形態を前述したが、当然のことながら、これら実施形態は例示目的のみで示され、本発明を限定するものではない。本明細書において、以下の特許請求の範囲に定義された本発明の意図及び範囲から逸脱することなしに形態及び細部に変更を行うことができることは当業者に明らかである。従って、前述した例示的な実施形態のいずれかにより本発明の範囲を制限すべきでなく、以下の特許請求の範囲及び等価なものだけにより定義すべきである。
図1には、本発明の一実施形態に従ってコンピュータ装置上で実行中のアプリケーションの動的な向上を容易にするシステムの物理的構成要素を示す。 図2には、本発明の一実施形態に従って、コンピュータ装置上で実行中のアプリケーションの動的な向上を容易にするシステムのソフトウェア構成要素を示す。 図3には、グラフィックスライブラリを用いるMicrosoft(登録商標)Windows(登録商標)搭載PC用の従来のソフトウェアアーキテクチャを示す。 図4には、本発明の一実施形態に従って、グラフィックス及びオーディオオブジェクトを索引付ける構成要素を含み、エミュレートされたグラフィックス及びオーディオライブラリを含むステージング環境のソフトウェアアーキテクチャを示す。 図5には、本発明の一実施形態に従って、グラフィックス及びオーディオオブジェクトを識別し、識別されたオブジェクトと関連するビジネスルールを適用する構成要素を含み、エミュレートされたグラフィックス及びオーディオライブラリを含む実行時環境のソフトウェアアーキテクチャを示す。 図6には、本発明の一実施形態に従ってコンピュータ装置上で実行中のアプリケーションの動的な向上を容易にするため、ステージング環境において用いられる方法のフローチャートを示す。 図7には、本発明の一実施形態に従ってコンピュータ装置上で実行中のアプリケーションを動的に向上させるため、実行時環境において用いられる方法のフローチャートを示す。 図8には、本発明の一実施形態に従ってソフトウェア構成要素を配布し、かつ/またはソフトウェア構成要素にアクセスするネットワークシステムを示す。 図9には、エンドユーザ装置から入出力を獲得し、獲得された関数呼出し及び可能なオブジェクト識別情報に基づいてビジネスルールを適用する機能を含む本発明による実行時環境の一実施形態を示す。 図10には、イベント検出機能、ロギング及びこのようなイベントの報告を含む本発明による実行時環境の一実施形態を示す。 図11には、本発明の一実施形態に従ってコンピュータ装置を実施するのに用いることができる例示的なコンピュータシステムを示す。

Claims (47)

  1. ソフトウェアアプリケーションを動的に向上させる方法であって、
    (a)前記ソフトウェアアプリケーションを第1コンピュータ装置上で実行する工程と、
    (b)前記第1コンピュータ装置上での実行中、前記ソフトウェアアプリケーションにより生成された関数呼出しを代行受信する工程と、
    (c)前記工程(b)で代行受信された前記関数呼出しと関連するグラフィックスまたはオーディオオブジェクトがビジネスルールと関連するか否かを決定する工程と、
    (d)前記グラフィックスまたはオーディオオブジェクトがビジネスルールと関連するという決定に応答して前記ビジネスルールを適用する工程と
    を含む方法。
  2. 前記工程(b)は、グラフィックスまたはオーディオアプリケーションプログラムインターフェース(API)への関数呼出しを代行受信する工程を含む、請求項1に記載の方法。
  3. グラフィックスまたはオーディオAPIへの関数呼出しを代行受信する前記工程は、前記グラフィックスまたはオーディオAPIをエミュレートする工程を含む、請求項2に記載の方法。
  4. 前記ビジネスルールを適用する前記工程は、前記グラフィックスまたはオーディオオブジェクトを変更する工程を含む、請求項1に記載の方法。
  5. 前記グラフィックスまたはオーディオオブジェクトを変更する前記工程は、前記グラフィックスまたはオーディオオブジェクトの一部を変更する工程を含む、請求項4に記載の方法。
  6. 前記グラフィックスまたはオーディオオブジェクトの一部を変更する前記工程は、広告コンテンツを前記グラフィックスまたはオーディオオブジェクト内に挿入する工程を含む、請求項5に記載の方法。
  7. 前記グラフィックスまたはオーディオオブジェクトを変更する前記工程は、前記グラフィックスまたはオーディオオブジェクトを異なるグラフィックスまたはオーディオオブジェクトと置換する工程を含む、請求項4に記載の方法。
  8. 前記グラフィックスまたはオーディオオブジェクトを変更する前記工程は、前記グラフィックスまたはオーディオオブジェクトを描画または再生しない工程を含む、請求項4に記載の方法。
  9. ビジネスルールを適用する前記工程は、前記工程(b)において代行受信された前記関数呼出しと関連する前記グラフィックスまたはオーディオオブジェクトを描画または再生する前または後に、異なるグラフィックスまたはオーディオオブジェクトを描画または再生する工程を含む、請求項1に記載の方法。
  10. 前記ビジネスルールを適用する前記工程は、前記ソフトウェアアプリケーションと関連するグラフィック表示装置内に広告コンテンツを描画する工程を含む、請求項1に記載の方法。
  11. 前記ビジネスルールを適用する前記工程は、
    前記描画された広告コンテンツとのユーザ対話を検出する工程と、
    前記ユーザ対話の検出に応答して追加の情報をユーザに供給する工程と
    を更に含む、請求項10に記載の方法。
  12. 前記ビジネスルールを適用する前記工程は、
    前記ソフトウェアアプリケーション内のエンドユーザの進行状況に関する情報をロギングする工程と、
    前記ロギングされた情報またはその一部をネットワークエンティティへ送信する工程と
    を含む、請求項1に記載の方法。
  13. 前記工程(a)の前に、
    (i)前記ソフトウェアアプリケーションを第2コンピュータ装置上で実行する工程と、
    (ii)前記第2コンピュータ装置上での実行中、前記ソフトウェアアプリケーションにより生成された関数呼出しを代行受信する工程と、
    (iii)第1データベース内の、前記工程(ii)で代行受信された前記関数呼出しと関連するグラフィックス及びオーディオオブジェクトを索引付ける工程と、
    (iv)第2データベース内の、前記工程(iii)で索引付けられた前記グラフィックス及びオーディオオブジェクトの1つ以上とビジネスルールとを関連付ける工程とを更に含み、
    前記工程(c)は、前記工程(b)で代行受信された前記関数呼出しと関連するグラフィックスまたはオーディオオブジェクトが、前記第2データベースに記憶されたビジネスルールと関連するか否かを決定する工程を含む、請求項1に記載の方法。
  14. 前記工程(iii)は、前記工程(ii)で代行受信された前記関数呼出しと関連する前記グラフィックス及びオーディオオブジェクトごとに固有識別子(ID)を計算する工程と、各固有IDを前記第1データベースに記憶する工程とを含み、前記工程(iv)は、ビジネスルールを前記第2データベース内の前記固有IDの1つ以上と関連付ける工程を含む、請求項13に記載の方法。
  15. 固有IDを計算する前記工程は、前記工程(ii)で代行受信された前記関数呼出しと関連する前記グラフィックス及びオーディオオブジェクトごとに巡回冗長コードを計算する工程を含む、請求項14に記載の方法。
  16. 固有IDを計算する前記工程は、暗号化及び/またはハッシングアルゴリズムを、前記工程(ii)で代行受信された前記関数呼出しと関連する前記グラフィックス及びオーディオオブジェクトの各々に適用する工程を含む、請求項14に記載の方法。
  17. 前記工程(c)は、前記工程(b)で代行受信された前記関数呼出しと関連する前記グラフィックスまたはオーディオオブジェクトの固有IDを計算する工程と、前記工程(b)で代行受信された前記関数呼出しと関連する前記グラフィックスまたはオーディオオブジェクトの前記固有IDが、前記第2データベースに記憶された固有IDに一致するか否かを決定する工程とを含む、請求項14に記載の方法。
  18. プロセッサと、
    前記プロセッサと通信するメモリと
    を含むコンピュータシステムであって、前記メモリは、複数の処理命令を記憶し、
    ソフトウェアアプリケーションを実行するように前記プロセッサに命令する処理命令と、
    前記ソフトウェアアプリケーションにより実行中に生成された関数呼出しを代行受信するように前記プロセッサに命令する処理命令と、
    前記代行受信された関数呼出しと関連するグラフィックスまたはオーディオオブジェクトがビジネスルールと関連するか否かを決定するように前記プロセッサに命令する処理命令と、
    前記グラフィックスまたはオーディオオブジェクトがビジネスルールと関連するという決定に応答して前記ビジネスルールを適用するように前記プロセッサに命令する処理命令と
    を記憶する、コンピュータシステム。
  19. 前記ソフトウェアアプリケーションにより実行中に生成された関数呼出しを代行受信するように前記プロセッサに命令する前記処理命令は、グラフィックスまたはオーディオアプリケーションプログラムインターフェース(API)への関数呼出しを代行受信するように前記プロセッサに命令する処理命令を含む、請求項18に記載のコンピュータシステム。
  20. グラフィックスまたはオーディオアプリケーションプログラムインターフェース(API)への関数呼出しを代行受信するように前記プロセッサに命令する前記処理命令は、前記グラフィックスまたはオーディオAPIをエミュレートするように前記プロセッサに命令する処理命令を含む、請求項19に記載のコンピュータシステム。
  21. 前記ビジネスルールを適用するように前記プロセッサに命令する前記処理命令は、前記グラフィックスまたはオーディオオブジェクトを変更するように前記プロセッサに命令する処理命令を含む、請求項18に記載のコンピュータシステム。
  22. 前記グラフィックスまたはオーディオオブジェクトを変更するように前記プロセッサに命令する前記処理命令は、前記グラフィックスまたはオーディオオブジェクトの一部を変更するように前記プロセッサに命令する処理命令を含む、請求項21に記載のコンピュータシステム。
  23. 前記グラフィックスまたはオーディオオブジェクトの一部を変更するように前記プロセッサに命令する前記処理命令は、広告コンテンツを前記グラフィックスまたはオーディオオブジェクト内に挿入するように前記プロセッサに命令する処理命令を含む、請求項22に記載のコンピュータシステム。
  24. 前記グラフィックスまたはオーディオオブジェクトを変更するように前記プロセッサに命令する前記処理命令は、前記グラフィックスまたはオーディオオブジェクトを異なるグラフィックスまたはオーディオオブジェクトと置換するように前記プロセッサに命令する処理命令を含む、請求項21に記載のコンピュータシステム。
  25. 前記グラフィックスまたはオーディオオブジェクトを変更するように前記プロセッサに命令する前記処理命令は、前記グラフィックスまたはオーディオオブジェクトを描画または再生しないように前記プロセッサに命令する処理命令を含む、請求項21に記載のコンピュータシステム。
  26. 前記ビジネスルールを適用するように前記プロセッサに命令する前記処理命令は、前記代行受信された関数呼出しと関連する前記グラフィックスまたはオーディオオブジェクトを描画または再生する前または後に、異なるグラフィックスまたはオーディオオブジェクトを描画または再生するように前記プロセッサに命令する処理命令を含む、請求項18に記載のコンピュータシステム。
  27. 前記ビジネスルールを適用するように前記プロセッサに命令する前記処理命令は、前記ソフトウェアアプリケーションと関連するグラフィック表示装置内に広告コンテンツを描画するように前記プロセッサに命令する処理命令を含む、請求項18に記載のコンピュータシステム。
  28. 前記ビジネスルールを適用するように前記プロセッサに命令する前記処理命令は、
    前記描画された広告コンテンツとのユーザ対話を検出するように前記プロセッサに命令する処理命令と、
    前記ユーザ対話の検出に応答して追加の情報をユーザに供給するように前記プロセッサに命令する処理命令と
    を更に含む、請求項27に記載のコンピュータシステム。
  29. 前記ビジネスルールを適用するように前記プロセッサに命令する前記処理命令は、
    前記ソフトウェアアプリケーション内のエンドユーザの進行状況に関する情報をロギングするように前記プロセッサに命令する処理命令と、
    前記ロギングされた情報またはその一部をネットワークエンティティへ送信するように前記プロセッサに命令する処理命令と
    を含む、請求項18に記載のコンピュータシステム。
  30. 前記代行受信された関数呼出しと関連するグラフィックスまたはオーディオオブジェクトがビジネスルールと関連するか否かを決定するように前記プロセッサに命令する前記処理命令は、
    前記グラフィックスまたはオーディオオブジェクト用に固有識別子(ID)を計算するように前記プロセッサに命令する処理命令と、
    前記グラフィックスまたはオーディオオブジェクト用に計算された前記固有IDを、データベースに記憶されたビジネスルールと関連する固有IDと比較するように前記プロセッサに命令する処理命令と
    を含む、請求項18に記載のコンピュータシステム。
  31. 前記グラフィックスまたはオーディオオブジェクト用に固有IDを計算するように前記プロセッサに命令する前記処理命令は、前記グラフィックスまたはオーディオオブジェクト用に巡回冗長コードを計算するように前記プロセッサに命令する処理命令を含む、請求項30に記載のコンピュータシステム。
  32. 前記グラフィックスまたはオーディオオブジェクト用に固有IDを計算するように前記プロセッサに命令する前記処理命令は、暗号化及び/またはハッシングアルゴリズムを前記グラフィックスまたはオーディオオブジェクトに適用するように前記プロセッサに命令する処理命令を含む、請求項30に記載のコンピュータシステム。
  33. 制御ロジックが記憶されたコンピュータ使用可能媒体を含むコンピュータプログラム製品であって、前記制御ロジックは、
    ソフトウェアアプリケーションにより実行中に生成された関数呼出しをコンピュータに代行受信させる第1コンピュータ可読プログラムコード手段と、
    前記代行受信された関数呼出しと関連するグラフィックスまたはオーディオオブジェクトがビジネスルールと関連するか否かを前記コンピュータに決定させる第2コンピュータ可読プログラムコード手段と、
    前記グラフィックスまたはオーディオオブジェクトが前記ビジネスルールと関連するという決定に応答して前記コンピュータにビジネスルールを適用させる第3コンピュータ可読プログラムコード手段と
    を含むコンピュータプログラム製品。
  34. 前記第1コンピュータ可読プログラムコード手段は、グラフィックスまたはオーディオアプリケーションプログラムインターフェース(API)への関数呼出しを前記コンピュータに代行受信させる手段を含む、請求項33に記載のコンピュータプログラム製品。
  35. グラフィックスまたはオーディオAPIへの関数呼出しを前記コンピュータに代行受信させる前記手段は、前記グラフィックスまたはオーディオAPIを前記コンピュータにエミュレートさせる手段を含む、請求項34に記載のコンピュータプログラム製品。
  36. 前記第3コンピュータ可読プログラムコード手段は、前記グラフィックスまたはオーディオオブジェクトを前記コンピュータに変更させる手段を含む、請求項33に記載のコンピュータプログラム製品。
  37. 前記グラフィックスまたはオーディオオブジェクトを前記コンピュータに変更させる前記手段は、前記グラフィックスまたはオーディオオブジェクトの一部を前記コンピュータに変更させる手段を含む、請求項36に記載のコンピュータプログラム製品。
  38. 前記グラフィックスまたはオーディオオブジェクトの一部を前記コンピュータに変更させる前記手段は、前記グラフィックスまたはオーディオオブジェクト内へ広告コンテンツを前記コンピュータに挿入させる手段を含む、請求項37に記載のコンピュータプログラム製品。
  39. 前記グラフィックスまたはオーディオオブジェクトを前記コンピュータに変更させる前記手段は、前記コンピュータに前記グラフィックスまたはオーディオオブジェクトを異なるグラフィックスまたはオーディオオブジェクトと置換させる手段を含む、請求項36に記載のコンピュータプログラム製品。
  40. 前記グラフィックスまたはオーディオオブジェクトを前記コンピュータに変更させる前記手段は、前記コンピュータに前記グラフィックスまたはオーディオオブジェクトを描画または再生させない手段を含む、請求項36に記載のコンピュータプログラム製品。
  41. 前記第3コンピュータ可読プログラムコード手段は、前記代行受信された関数呼出しと関連する前記オブジェクトを描画または再生する前または後に、異なるグラフィックスまたはオーディオオブジェクトを前記コンピュータに描画または再生させる手段を含む、請求項33に記載のコンピュータプログラム製品。
  42. 前記第3コンピュータ可読プログラムコード手段は、前記ソフトウェアアプリケーションと関連するグラフィック表示装置内に広告コンテンツを前記コンピュータに描画させる手段を含む、請求項33に記載のコンピュータプログラム製品。
  43. 前記第3コンピュータ可読プログラムコード手段は、
    前記描画された広告コンテンツとのユーザ対話を前記コンピュータに検出させる手段と、
    前記ユーザ対話の検出に応答してユーザへ追加の情報を前記コンピュータに供給させる手段と
    を更に含む、請求項42に記載のコンピュータプログラム製品。
  44. 前記第3コンピュータ可読プログラムコード手段は、
    前記ソフトウェアアプリケーション内のエンドユーザの進行状況に関する情報を前記コンピュータにロギングさせる手段と、
    前記ロギングされた情報またはその一部をネットワークエンティティへ前記コンピュータに送信させる手段と
    を含む、請求項33に記載のコンピュータプログラム製品。
  45. 前記第2コンピュータ可読プログラムコード手段は、
    前記グラフィックスまたはオーディオオブジェクト用に固有識別子(ID)を前記コンピュータに計算させる手段と、
    前記グラフィックスまたはオーディオオブジェクト用に計算された前記固有IDと、データベースに記憶されたビジネスルールと関連する固有IDとを前記コンピュータに比較させる手段と
    を含む、請求項33に記載のコンピュータプログラム製品。
  46. 前記グラフィックスまたはオーディオオブジェクト用に固有IDを前記コンピュータに計算させる前記手段は、前記グラフィックスまたはオーディオオブジェクト用に巡回冗長コードを前記コンピュータに計算させる手段を含む、請求項45に記載のコンピュータプログラム製品。
  47. 前記グラフィックスまたはオーディオオブジェクト用に固有IDを前記コンピュータに計算させる前記手段は、暗号化及び/またはハッシングアルゴリズムを前記グラフィックスまたはオーディオオブジェクトへ前記コンピュータに適用させる手段を含む、請求項45に記載のコンピュータプログラム製品。
JP2008542861A 2005-12-01 2006-11-28 コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品 Pending JP2009517752A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/290,830 US7596540B2 (en) 2005-12-01 2005-12-01 System, method and computer program product for dynamically enhancing an application executing on a computing device
PCT/IB2006/003968 WO2007063422A2 (en) 2005-12-01 2006-11-28 System, method and computer program product for dynamically enhancing an application executing on a computing device

Publications (1)

Publication Number Publication Date
JP2009517752A true JP2009517752A (ja) 2009-04-30

Family

ID=38092630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008542861A Pending JP2009517752A (ja) 2005-12-01 2006-11-28 コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品

Country Status (7)

Country Link
US (3) US7596540B2 (ja)
EP (1) EP1960871A2 (ja)
JP (1) JP2009517752A (ja)
KR (1) KR100968661B1 (ja)
CN (1) CN101322101A (ja)
CA (1) CA2631772C (ja)
WO (1) WO2007063422A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015011342A (ja) * 2013-06-26 2015-01-19 アップリフィエル オーユーApplifier Oy 携帯デバイスのオーディオ装置
JP2015511041A (ja) * 2012-03-22 2015-04-13 インテル コーポレイション ネスト構造化されたエミュレーションおよび動的リンキング環境
JP2020500569A (ja) * 2016-11-22 2020-01-16 ソニー・インタラクティブエンタテインメント エルエルシー エミュレーションによるリマスタリング

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
CA2548598A1 (en) * 2003-12-01 2005-06-16 Research In Motion Limited Previewing a new event on a small screen device
US7694232B2 (en) 2004-08-03 2010-04-06 Research In Motion Limited Method and apparatus for providing minimal status display
WO2006055445A2 (en) 2004-11-13 2006-05-26 Stream Theory, Inc. Hybrid local/remote streaming
WO2006102621A2 (en) 2005-03-23 2006-09-28 Stream Theory, Inc. System and method for tracking changes to files in streaming applications
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US8629885B2 (en) * 2005-12-01 2014-01-14 Exent Technologies, Ltd. System, method and computer program product for dynamically identifying, selecting and extracting graphical and media objects in frames or scenes rendered by a software application
US20070296718A1 (en) * 2005-12-01 2007-12-27 Exent Technologies, Ltd. Dynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics content
US20070168309A1 (en) * 2005-12-01 2007-07-19 Exent Technologies, Ltd. System, method and computer program product for dynamically extracting and sharing event information from an executing software application
US7596540B2 (en) 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US20070129990A1 (en) * 2005-12-01 2007-06-07 Exent Technologies, Ltd. System, method and computer program product for dynamically serving advertisements in an executing computer game based on the entity having jurisdiction over the advertising space in the game
US7596536B2 (en) * 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing device
US8548452B2 (en) 2006-04-13 2013-10-01 Blackberry Limited System and method for controlling device usage
US20070300179A1 (en) * 2006-06-27 2007-12-27 Observe It Ltd. User-application interaction recording
US8121534B2 (en) * 2006-09-27 2012-02-21 Sirius Xm Radio Inc. System and method for sending and receiving images via wireless audio channels
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US20080228298A1 (en) * 2006-11-09 2008-09-18 Steven Rehkemper Portable multi-media device
US20080281686A1 (en) * 2007-05-08 2008-11-13 Chris Houtzer Dynamic content insertion method and system
JP4484900B2 (ja) * 2007-05-31 2010-06-16 株式会社スクウェア・エニックス ゲーム利用型広告配布システム
US20090079690A1 (en) * 2007-09-21 2009-03-26 Sony Computer Entertainment America Inc. Method and apparatus for enhancing entertainment software through haptic insertion
US20090083753A1 (en) * 2007-09-25 2009-03-26 Exent Technologies, Ltd. Dynamic thread generation and management for improved computer program performance
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
ITMI20080550A1 (it) * 2008-03-31 2009-10-01 Incard Sa Scheda a circuito integrato con funzioni wireless.
US20110184805A1 (en) * 2008-09-25 2011-07-28 Tictacti Ltd. System and method for precision placement of in-game dynamic advertising in computer games
US20100125740A1 (en) * 2008-11-19 2010-05-20 Accenture Global Services Gmbh System for securing multithreaded server applications
JP2012510118A (ja) 2008-11-26 2012-04-26 カルガリー・サイエンティフィック・インコーポレイテッド アプリケーションプログラムの状態への遠隔アクセスを提供するための方法およびシステム
GB2465841A (en) * 2008-12-05 2010-06-09 Taylor Nelson Sofres Plc Identifying audio output by comparing samples with the contents of a database
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
KR101168108B1 (ko) 2009-06-23 2012-07-25 엔에이치엔(주) 온라인 게임을 이용한 광고 방법, 및 그 방법을 수행하기 위한 프로그램이 기록된 기록매체
US20110154226A1 (en) * 2009-12-21 2011-06-23 Sap Ag Chip model of an extensible plug-in architecture for enterprise mashups
CN102255868A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种广告发布系统和广告发布方法
KR102126910B1 (ko) * 2010-09-13 2020-06-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
JP5398692B2 (ja) 2010-12-10 2014-01-29 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
US9361132B2 (en) * 2011-02-08 2016-06-07 Qualcomm Incorporated System and method for providing application-based user interface features on a computing device
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
US9720747B2 (en) 2011-08-15 2017-08-01 Calgary Scientific Inc. Method for flow control and reliable communication in a collaborative environment
SG10201606764XA (en) 2011-08-15 2016-10-28 Calgary Scient Inc Non-invasive remote access to an application program
WO2013035901A1 (ko) * 2011-09-08 2013-03-14 Kim A Lim 스마트폰을 이용한 마케팅 방법
CN103959708B (zh) 2011-09-30 2017-10-17 卡尔加里科学公司 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展
KR20140106551A (ko) 2011-11-23 2014-09-03 캘거리 싸이언티픽 인코포레이티드 협업 원격 애플리케이션 공유 및 회의를 위한 방법들 및 시스템들
WO2013128284A1 (en) * 2012-03-02 2013-09-06 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (dll) injection
US9860483B1 (en) * 2012-05-17 2018-01-02 The Boeing Company System and method for video processing software
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
KR101531562B1 (ko) * 2012-11-27 2015-06-25 (주)원더피플 명령 인식 수행 방법 및 장치
CN103853576B (zh) * 2012-12-06 2017-05-24 腾讯科技(深圳)有限公司 一种截图方法,及装置
US9561436B2 (en) * 2013-02-26 2017-02-07 Gree, Inc. Shooting game control method and game system
CN103150513B (zh) * 2013-03-20 2015-12-09 北京奇虎科技有限公司 拦截应用程序中的植入信息的方法及装置
JP2017505473A (ja) 2013-11-29 2017-02-16 カルガリー サイエンティフィック インコーポレイテッド クライアントサーバリモートアクセスシステムにおけるクライアントの非管理サービスへの接続の提供方法
US10277717B2 (en) 2013-12-15 2019-04-30 Nicira, Inc. Network introspection in an operating system
CN106232194B (zh) * 2014-04-22 2020-06-30 索尼互动娱乐股份有限公司 游戏递送设备、游戏递送方法和游戏递送程序
US9166897B1 (en) 2014-09-24 2015-10-20 Oracle International Corporation System and method for supporting dynamic offloading of video processing for user account management in a computing environment
US9148454B1 (en) 2014-09-24 2015-09-29 Oracle International Corporation System and method for supporting video processing load balancing for user account management in a computing environment
US9185175B1 (en) 2014-09-24 2015-11-10 Oracle International Corporation System and method for optimizing visual session recording for user account management in a computing environment
US9167047B1 (en) 2014-09-24 2015-10-20 Oracle International Corporation System and method for using policies to support session recording for user account management in a computing environment
CN104573334B (zh) * 2014-12-24 2017-10-27 珠海金山网络游戏科技有限公司 一种利用标签事件触发特效和音效的播放系统和方法
KR101717470B1 (ko) * 2015-01-07 2017-03-21 엔에이치엔엔터테인먼트 주식회사 모바일 어플리케이션의 프로모션 플랫폼 제공 방법 및 시스템
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
US11310348B2 (en) 2015-01-30 2022-04-19 Calgary Scientific Inc. Highly scalable, fault tolerant remote access architecture and method of connecting thereto
US10845963B2 (en) 2015-03-04 2020-11-24 Rocketchicken Interactive Inc. Systems for rapid development and delivery of interactive content
US10339299B1 (en) 2016-03-08 2019-07-02 Kashmoo, Inc. Runtime management of application components
US9804752B1 (en) * 2016-06-27 2017-10-31 Atlassian Pty Ltd Machine learning method of managing conversations in a messaging interface
US10852920B2 (en) * 2016-06-30 2020-12-01 Wipro Limited Method and system for automating execution of processes
CN106775986B (zh) * 2016-12-26 2020-09-01 努比亚技术有限公司 一种进程管理方法及电子设备
KR101884404B1 (ko) 2017-01-17 2018-08-02 부산대학교 산학협력단 중앙 집중식 제어 구조 서버를 갖는 포그 컴퓨팅 운용을 위한 시스템 및 그의 제어 방법
CN111083569B (zh) * 2018-10-18 2021-11-05 杭州海康威视数字技术股份有限公司 一种视频播放方法及装置
US10467062B1 (en) * 2019-03-11 2019-11-05 Coupang, Corp. Systems and methods for managing application programming interface information
US11886434B1 (en) 2019-08-05 2024-01-30 Bildr, Inc. Management of application entities
CN110807687A (zh) * 2019-10-29 2020-02-18 阿里巴巴(中国)有限公司 对象数据处理方法、装置、计算设备和介质
US20220092658A1 (en) * 2020-09-22 2022-03-24 Gopesh Kumar System and method for expert service providers to provide one on one chat advice services through unique empowered independent agents to consumers
CN114610405B (zh) * 2022-03-03 2024-03-29 深圳盛显科技有限公司 一种多应用截屏及网络编码输出方法、设备、介质、产品
CN116506428B (zh) * 2023-06-20 2023-09-08 成都博点科技有限公司 一种基于kotlin的数据离线上传方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312286A (ja) * 2000-05-02 2001-11-09 Noritsu Koki Co Ltd データ管理装置およびデータ管理方法、ならびにデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2661061B1 (fr) 1990-04-11 1992-08-07 Multi Media Tech Procede et dispositif de modification de zone d'images.
IL108957A (en) 1994-03-14 1998-09-24 Scidel Technologies Ltd Video sequence imaging system
US6202058B1 (en) * 1994-04-25 2001-03-13 Apple Computer, Inc. System for ranking the relevance of information objects accessed by computer users
US5687376A (en) * 1994-12-15 1997-11-11 International Business Machines Corporation System for monitoring performance of advanced graphics driver including filter modules for passing supported commands associated with function calls and recording task execution time for graphic operation
JP4040117B2 (ja) * 1995-06-30 2008-01-30 ソニー株式会社 ゲーム機及びゲーム機制御方法
US5737553A (en) * 1995-07-14 1998-04-07 Novell, Inc. Colormap system for mapping pixel position and color index to executable functions
US5737619A (en) * 1995-10-19 1998-04-07 Judson; David Hugh World wide web browsing with content delivery over an idle connection and interstitial content display
US20020049832A1 (en) * 1996-03-08 2002-04-25 Craig Ullman Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5905492A (en) * 1996-12-06 1999-05-18 Microsoft Corporation Dynamically updating themes for an operating system shell
WO1998029974A1 (en) * 1996-12-25 1998-07-09 Sony Corporation Game machine system, broadcasting system, data distribution system and its method, and program executing device and its method
US6047123A (en) * 1997-03-27 2000-04-04 Hewlett-Packard Company Methods for recording a compilable graphics call trace
GB2324450A (en) * 1997-04-19 1998-10-21 Ibm Graphical user interface
US5991836A (en) * 1997-05-02 1999-11-23 Network Computing Devices, Inc. System for communicating real time data between client device and server utilizing the client device estimating data consumption amount by the server
US6021438A (en) * 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US6314470B1 (en) * 1997-07-25 2001-11-06 Hewlett Packard Company System and method for asynchronously accessing a graphics system for graphics application evaluation and control
WO1999024904A1 (en) 1997-11-07 1999-05-20 Intergraph Corporation Apparatus and method for logging information relating to function calls to a function library
US6631423B1 (en) * 1998-03-31 2003-10-07 Hewlett-Packard Development Company, L.P. System and method for assessing performance optimizations in a graphics system
JP4064060B2 (ja) * 1998-05-15 2008-03-19 ユニキャスト・コミュニケーションズ・コーポレイション 参照ウェブページに埋め込まれた広告タグをもちいて、ブラウザにより開始される、ユーザには見えないネットワーク分散隙間ウェブ公告を実施するための技術
US6278966B1 (en) * 1998-06-18 2001-08-21 International Business Machines Corporation Method and system for emulating web site traffic to identify web site usage patterns
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6330711B1 (en) * 1998-07-30 2001-12-11 International Business Machines Corporation Method and apparatus for dynamic application and maintenance of programs
IL127073A0 (en) 1998-11-15 1999-09-22 Tiktech Software Ltd Software translation system and method
US6036601A (en) * 1999-02-24 2000-03-14 Adaboy, Inc. Method for advertising over a computer network utilizing virtual environments of games
US6907566B1 (en) * 1999-04-02 2005-06-14 Overture Services, Inc. Method and system for optimum placement of advertisements on a webpage
US6467052B1 (en) * 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
US6868525B1 (en) * 2000-02-01 2005-03-15 Alberti Anemometer Llc Computer graphic display visualization system and method
US7003781B1 (en) * 2000-05-05 2006-02-21 Bristol Technology Inc. Method and apparatus for correlation of events in a distributed multi-system computing environment
US6954728B1 (en) * 2000-05-15 2005-10-11 Avatizing, Llc System and method for consumer-selected advertising and branding in interactive media
US6616533B1 (en) * 2000-05-31 2003-09-09 Intel Corporation Providing advertising with video games
US7487112B2 (en) * 2000-06-29 2009-02-03 Barnes Jr Melvin L System, method, and computer program product for providing location based services and mobile e-commerce
US20030167202A1 (en) * 2000-07-21 2003-09-04 Marks Michael B. Methods of payment for internet programming
US20020112033A1 (en) * 2000-08-09 2002-08-15 Doemling Marcus F. Content enhancement system and method
US20020154214A1 (en) * 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US9047609B2 (en) * 2000-11-29 2015-06-02 Noatak Software Llc Method and system for dynamically incorporating advertising content into multimedia environments
US7171670B2 (en) * 2001-02-14 2007-01-30 Ricoh Co., Ltd. Method and system of remote diagnostic, control and information collection using multiple formats and multiple protocols with verification of formats and protocols
US6851117B2 (en) * 2001-05-25 2005-02-01 Sun Microsystems, Inc. Supplanting motif dialog boxes via modifying intercepted function calls from an application
US8538803B2 (en) * 2001-06-14 2013-09-17 Frank C. Nicholas Method and system for providing network based target advertising and encapsulation
US6802055B2 (en) * 2001-06-27 2004-10-05 Microsoft Corporation Capturing graphics primitives associated with any display object rendered to a graphical user interface
ES2228910T3 (es) * 2001-07-04 2005-04-16 Okyz Metodo y sistema de exportacion de datos asociados a entidades geometricas bidimensionales o tridimensionales.
WO2003007254A2 (en) * 2001-07-13 2003-01-23 Gameaccount Limited System and method for providing enhanced services to a user of a gaming application
US7076736B2 (en) * 2001-07-31 2006-07-11 Thebrain Technologies Corp. Method and apparatus for sharing many thought databases among many clients
US20030204275A1 (en) * 2002-04-26 2003-10-30 Krubeck Ronald Lee Sports charting system
US8099325B2 (en) * 2002-05-01 2012-01-17 Saytam Computer Services Limited System and method for selective transmission of multimedia based on subscriber behavioral model
AU2003251879A1 (en) * 2002-07-12 2004-02-02 Raytheon Company Scene graph based display for desktop applications
US20040116183A1 (en) * 2002-12-16 2004-06-17 Prindle Joseph Charles Digital advertisement insertion system and method for video games
US20040122940A1 (en) * 2002-12-20 2004-06-24 Gibson Edward S. Method for monitoring applications in a network which does not natively support monitoring
US7610575B2 (en) * 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US7729946B2 (en) * 2003-01-24 2010-06-01 Massive Incorporated Online game advertising system
US7487460B2 (en) * 2003-03-21 2009-02-03 Microsoft Corporation Interface for presenting data representations in a screen-area inset
US7124145B2 (en) * 2003-03-27 2006-10-17 Millennium It (Usa) Inc. System and method for dynamic business logic rule integration
US7120619B2 (en) * 2003-04-22 2006-10-10 Microsoft Corporation Relationship view
US20040217987A1 (en) * 2003-05-01 2004-11-04 Solomo Aran Method and system for intercepting and processing data during GUI session
US7246254B2 (en) * 2003-07-16 2007-07-17 International Business Machines Corporation System and method for automatically and dynamically optimizing application data resources to meet business objectives
US8077341B2 (en) * 2003-09-25 2011-12-13 Ricoh Co., Ltd. Printer with audio or video receiver, recorder, and real-time content-based processing logic
US7620893B2 (en) * 2004-03-31 2009-11-17 Sap Ag Aiding a user in using a software application
US8712986B2 (en) 2004-04-07 2014-04-29 Iac Search & Media, Inc. Methods and systems providing desktop search capability to software application
US20050246174A1 (en) * 2004-04-28 2005-11-03 Degolia Richard C Method and system for presenting dynamic commercial content to clients interacting with a voice extensible markup language system
US20060085812A1 (en) * 2004-10-15 2006-04-20 Shishegar Ahmad R Method for monitoring television usage
US8849701B2 (en) * 2004-12-13 2014-09-30 Google Inc. Online video game advertising system and method supporting multiplayer ads
US20060143675A1 (en) * 2004-12-17 2006-06-29 Daniel Willis Proxy advertisement server and method
US20060155643A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Payment instrument notification
US7507157B2 (en) * 2005-07-14 2009-03-24 Microsoft Corporation Peripheral information and digital tells in electronic games
US20070072676A1 (en) * 2005-09-29 2007-03-29 Shumeet Baluja Using information from user-video game interactions to target advertisements, such as advertisements to be served in video games for example
US20070296718A1 (en) * 2005-12-01 2007-12-27 Exent Technologies, Ltd. Dynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics content
US8629885B2 (en) * 2005-12-01 2014-01-14 Exent Technologies, Ltd. System, method and computer program product for dynamically identifying, selecting and extracting graphical and media objects in frames or scenes rendered by a software application
US7596536B2 (en) 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing device
US20070168309A1 (en) 2005-12-01 2007-07-19 Exent Technologies, Ltd. System, method and computer program product for dynamically extracting and sharing event information from an executing software application
US20070129990A1 (en) 2005-12-01 2007-06-07 Exent Technologies, Ltd. System, method and computer program product for dynamically serving advertisements in an executing computer game based on the entity having jurisdiction over the advertising space in the game
US7596540B2 (en) 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US8321947B2 (en) * 2005-12-15 2012-11-27 Emc Corporation Method and system for dynamically generating a watermarked document during a printing or display operation
US9028329B2 (en) * 2006-04-13 2015-05-12 Igt Integrating remotely-hosted and locally rendered content on a gaming device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312286A (ja) * 2000-05-02 2001-11-09 Noritsu Koki Co Ltd データ管理装置およびデータ管理方法、ならびにデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015511041A (ja) * 2012-03-22 2015-04-13 インテル コーポレイション ネスト構造化されたエミュレーションおよび動的リンキング環境
US10761867B2 (en) 2012-03-22 2020-09-01 Intel Corporation Nested emulation and dynamic linking environment
US9483229B2 (en) 2013-02-13 2016-11-01 Unity Technologies Finland Oy Audio apparatus for portable devices
JP2015011342A (ja) * 2013-06-26 2015-01-19 アップリフィエル オーユーApplifier Oy 携帯デバイスのオーディオ装置
JP2020500569A (ja) * 2016-11-22 2020-01-16 ソニー・インタラクティブエンタテインメント エルエルシー エミュレーションによるリマスタリング
JP7125389B2 (ja) 2016-11-22 2022-08-24 ソニー・インタラクティブエンタテインメント エルエルシー エミュレーションによるリマスタリング

Also Published As

Publication number Publication date
US8069136B2 (en) 2011-11-29
CA2631772A1 (en) 2007-06-07
CN101322101A (zh) 2008-12-10
KR100968661B1 (ko) 2010-07-06
US7596540B2 (en) 2009-09-29
KR20080076919A (ko) 2008-08-20
EP1960871A2 (en) 2008-08-27
US20090307173A1 (en) 2009-12-10
WO2007063422A2 (en) 2007-06-07
US20070130292A1 (en) 2007-06-07
CA2631772C (en) 2015-01-27
WO2007063422A3 (en) 2007-11-08
US20120054781A1 (en) 2012-03-01

Similar Documents

Publication Publication Date Title
JP2009517752A (ja) コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品
US11596861B2 (en) Add-on management methods
US8629885B2 (en) System, method and computer program product for dynamically identifying, selecting and extracting graphical and media objects in frames or scenes rendered by a software application
US8060460B2 (en) System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing device
EP2174288B1 (en) Dynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics content
US20070129990A1 (en) System, method and computer program product for dynamically serving advertisements in an executing computer game based on the entity having jurisdiction over the advertising space in the game
US20060135230A1 (en) Post-deployment spot creation
US10262115B2 (en) Secure connected digital media platform
WO2020247535A1 (en) System and methods for generating a platform-agnostic game shortcut to launch a game for cloud gaming

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110930