CN101322101A - 用于动态增强在计算装置上执行的应用程序的系统、方法和计算机程序产品 - Google Patents
用于动态增强在计算装置上执行的应用程序的系统、方法和计算机程序产品 Download PDFInfo
- Publication number
- CN101322101A CN101322101A CNA2006800450115A CN200680045011A CN101322101A CN 101322101 A CN101322101 A CN 101322101A CN A2006800450115 A CNA2006800450115 A CN A2006800450115A CN 200680045011 A CN200680045011 A CN 200680045011A CN 101322101 A CN101322101 A CN 101322101A
- Authority
- CN
- China
- Prior art keywords
- audio object
- business rule
- function call
- instruct
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0273—Determination of fees for advertising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0252—Targeted advertisements based on events or environment, e.g. weather or festivals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0272—Period of advertisement exposure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0277—Online advertisement
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
Abstract
本发明提供一种用于动态地增强在计算装置上执行的软件应用程序(例如视频游戏)而不必改变和重新编译原始应用程序代码的系统、方法和计算机程序产品。所述系统包含分级环境,其监视所述应用程序的执行并将由所述应用程序产生的图形和/或音频信息的每个项目索引到第一数据库中。系统管理员或其他实体接着用手动或自动手段向第二数据库中填充一个或一个以上商务规则,其中每个商务规则与在所述第一数据库中索引的对象中的一者或一者以上相关联。所述系统进一步包含运行时间环境,其在运行时间期间在所述应用程序产生图形和/或视频信息的项目时识别所述项目,使用所述第二数据库来确定所识别的项目是否与商务规则相关联,且响应于确定所识别的项目与商务规则相关联而应用所述商务规则。
Description
技术领域
本发明大体上涉及软件应用程序。明确地说,本发明涉及用于在软件应用程序在计算装置上执行期间动态地增强所述软件应用程序的技术。
背景技术
软件应用程序(特别是视频游戏)使用各种技术向显示装置再现图形信息。一种众所周知的技术是对例如DirectX或OpenGL等低级别应用程序编程接口(API)进行函数调用。响应于接收到此类函数调用,这些API向计算机系统的图形硬件发布命令,或在替代方案中,试图在软件中仿真相关的硬件功能性。类似地,软件应用程序可通过对DirectSound(其是API的DirectX套件内的API)进行函数调用来播放音频信息。
各方所关心的是使此类应用程序可供最终用户(例如,发行商、零售商和服务提供商)使用以基于一组动态的“商务规则”来增加由这些应用程序再现的一些图形和音频信息。举例来说,此类商务规则可用于在由视频游戏再现的图形元素上显示广告内容,或将广告内容插入在由视频游戏播放的音频流内。理想的是,商务规则的动态性质将允许其周期性变化。举例来说,如果可在周期性基础上改变所插入的广告内容,那么将是有利的。
实现这种效果的一种可能方法是直接将商务规则嵌入在原始应用程序逻辑或“源代码”中,并接着用那些商务规则来重新编译所述应用程序。然而,这种为适应商务规则而对应用程序进行编码和重新编译的技术可能并不是对所有软件应用程序都可用的。举例来说,希望插入商务规则的人可能无法获得源代码。作为另一实例,设法增强的应用程序可能已经被部署在现场或由消费者或其他人购买。
另一种实现将图形内容动态插入到应用程序中的方法是在应用程序的软件开发阶段期间将特殊的客户端软件集成到原始应用程序逻辑中。当执行应用程序时,所述特殊的客户端软件帮助应用程序与服务器通信,所述服务器可基于一些预定义的商务规则而在所述应用程序中在已经由应用程序预先识别和登记的预分配空间中动态插入图形内容。然而,这种方法存在限制性,因为其将只有在以下情况下才会奏效:原始编程的应用程序包含必要的特殊客户端软件(其在开发时间期间介接)且已经预先识别出可能出现动态插入的图形信息的区域。
于是需要一种用于动态地增强计算装置上执行的应用程序(例如视频游戏)而不必改变和重新编译原始应用程序代码的系统、方法和计算机程序产品。动态地增强应用程序应包含以下能力:动态地修改由应用程序在执行期间产生的图形和/或音频信息;在应用程序执行期间动态地再现额外图形和/或音频信息;或执行与正在执行的应用程序相关的未由应用程序的源代码提供或调用的其它函数。
发明内容
本发明提供一种用于动态地增强在计算装置上执行的应用程序(例如视频游戏)而不必改变和重新编译原始应用程序代码的系统、方法和计算机程序产品。在一个实施方案中,动态地增强应用程序包含动态地修改应用程序在执行期间产生的图形和/或音频信息的能力。在另一实施方案中,动态地增强应用程序包含在应用程序执行期间动态地再现额外图形和/或音频内容。在又一实施方案中,动态地增强应用程序包含执行与正在执行的应用程序相关的未由应用程序的源代码提供或调用的其它函数。
在一个实施方案中,根据本发明实施例的系统包含分级环境,其监视所述应用程序的执行并将应用程序所产生的图形和/或音频信息的每个项目索引到第一数据库中。系统管理员或其他实体接着通过手动或自动手段向第二数据库填充一个或一个以上商务规则,其中每个商务规则与第一数据库中所索引的项目中的一者或一者以上相关联。所述系统进一步包含运行时间环境,其在应用程序在运行时间期间产生图形和/或视频信息的项目时识别所述项目,使用第二数据库来确定所识别的项目是否与商务规则相关联,且响应于确定所识别的项目与商务规则相关联而应用商务规则。商务规则的应用可能导致:修改由应用程序在执行期间产生的图形和/或音频信息;再现额外图形和/或音频信息;或执行与正在执行的应用程序相关的未由应用程序的源代码提供或调用的其它函数。
下文中参看附图详细描述本发明的另外特征和优点以及其各种实施例的结构和操作。应注意,本发明并不限于本文中描述的具体实施例。本文中呈现此些实施例只是出于说明目的。所属领域的技术人员基于本文中含有的教示将容易明白额外的实施例。
附图说明
附图并入本文中并形成本说明书的一部分,其说明本发明并连同实施方式一起进一步用以解释本发明的原理并使所属领域的技术人员能够制作和使用本发明。
图1说明根据本发明实施例促进动态增强在计算装置上执行的应用程序的系统的物理组件。
图2说明根据本发明实施例促进动态增强在计算装置上执行的应用程序的系统的软件组件。
图4说明根据本发明实施例包含仿真图形和音频库的分级环境的软件结构,所述分级环境包括用于索引图形和音频对象的组件。
图5说明根据本发明实施例包含仿真图形和音频库的运行时间环境的软件结构,所述运行时间环境包括用于识别图形和音频对象且应用与所识别的对象相关联的商务规则的组件。
图6说明根据本发明实施例用于促进动态增强在计算装置上执行的应用程序的分级环境中的方法的流程图。
图7说明根据本发明实施例用于动态地增强在计算装置上执行的应用程序的运行时间环境中的方法的流程图。
图8说明根据本发明实施例用于分配和/或接入软件组件的网络系统。
图9说明根据本发明的运行时间环境的实施方案,所述运行时间环境包含用于捕获来自最终用户装置的输入/输出并基于所捕获的函数调用和对于对象的可能识别来应用商务规则的功能性。
图10说明根据本发明的运行时间环境的实施方案,所述运行时间环境包含事件检测功能性,其登录和报告此类事件。
图11描绘根据本发明的实施方案可用于实施计算装置的实例性计算机系统。
结合附图阅读下文阐述的具体实施方式将更加容易明白本发明的特征和优点,在附图中相同参考符号始终识别相应元件。在附图中,相同参考数字大体上指示完全相同的、功能上相似的和/或结构上相似的元件。通过相应参考数字中最左边的数字来指示首次出现该元件的图式。
具体实施方式
I.用于动态地增强在计算装置上执行的软件应用程序的系统
图1说明根据本发明实施例促进动态增强在计算装置上执行的应用程序的示范性系统100的硬件组件。如图1所示,系统100包含分级环境102和运行时间环境106两者。分级环境102执行必须发生以促进稍后将由运行时间环境106执行的操作的处理步骤。明确地说且如本文中将更详细解释的,分级环境102在例如视频游戏等软件应用程序在计算装置上执行期间监视所述软件应用程序,识别由所述应用程序产生的图形和音频对象,并将这些对象中的每一者连同唯一识别符(ID)一起在图形/音频对象数据库104中索引。理想的是,这个过程只需要对每个软件应用程序执行一次。
如本文中将更详细描述的,在已经由分级环境102填充图形/音频对象数据库104之后,系统管理员或其他实体接着以手动或自动手段用一组“商务规则”填充商务规则数据库108,其中数据库108中的每个商务规则与在图形/视频对象数据库104中索引的对象的唯一ID中的一者或一者以上相关联。
运行时间环境106表示最终用户实际上运行应用程序软件的环境。所述应用程序与在分级环境102中执行的应用程序“相同”,因为其是本质上同一计算机程序的另一拷贝或实例,但其不需要完全相同。如本文中将更详细描述的,运行时间环境106监视应用程序在计算装置上的执行,且还识别应用程序所产生的图形和音频对象。如果运行时间环境106确定应用程序所产生的对象和商务规则数据库108中的与以上提到的对象相关联的商务规则匹配,那么其应用所述商务规则。举例来说,所述商务规则可用于确定是否在运行时间中(即,在软件应用程序执行期间)修改对象,但本文中还将描述其它商务规则。
就硬件组件而言,分级环境102和运行时间环境106中的每一者由经配置以执行产生图形和音频信息的软件应用程序的计算装置组成。每个计算装置进一步包含应用程序编程接口,用于再现和显示应用程序所产生的图形信息,并用于回放应用程序所产生的音频信息。为了方便起见,从此处开始,将把分级环境102和运行时间环境106中的每一者描述为包括基于个人计算机(PC)的计算机系统,但本发明并不局限于此。举例来说,分级环境102和运行时间环境106可每一者包括服务器、控制台、个人数字助理(PDA)或其它任何能够执行软件应用程序并向最终用户显示相关联的由应用程序产生的图形和音频信息的计算装置。
图2说明系统100的软件组件。如图2所示,分级环境102包含应用程序202、拦截组件204、索引组件206和低级别图形/音频函数208。应用程序202是在分级环境102内执行的软件应用程序,例如视频游戏。低级别图形/音频函数208是驻存在计算机系统的存储器中的软件函数,其可由应用程序202存取并辅助应用程序202再现由应用程序产生的图形信息和播放由应用程序产生的音频信息。在实施例中,低级别图形/音频函数208包括一个或一个以上位于例如DirectX或OpenGL等低级别应用程序编程接口(API)内的函数。
对应用程序202进行编程,以使得在执行期间其对低级别图形/音频函数208进行函数调用。应用程序202与低级别图形/音频函数208的交互在所属领域中是众所周知的。然而,根据本发明的实施例,此类函数调用在被传递到低级别图形/音频函数208之前被拦截组件204拦截并提供到索引组件206。拦截组件204和索引组件206是在执行应用程序202之前安装在分级环境102的计算机系统上的软件组件。如本文中将更详细描述的,索引组件206识别与所拦截的函数调用相关联的图形和音频对象,并将所述对象中的每一者连同唯一ID一起在图形/音频对象数据库104中索引。
在本发明的实施方案中,拦截组件204包括相应低级别图形/音频函数208的一个或一个以上仿真版本。举例来说,在低级别图形/音频函数208包含在图形和音频库中(例如在动态链接库或DLL中)的实施方案中,拦截组件204包括那些库中的一者或一者以上的仿真版本。这些仿真库具有与其意图替换的原始库相同的名称,使得其在运行时间链接到应用程序202。现在将参看图3和图4解释通过仿真来拦截的特定实例。
图3说明用于基于MicrosoftWindows的PC的常规软件结构300。如图3所示,软件结构300包含在PC上执行的32位MicrosoftWindows应用程序302。在执行期间,应用程序302用众所周知的方式对Direct3DAPI 304进行函数调用。如所属领域的技术人员将明白的,Direct3DAPI 304包括一系列库,所述库驻存在PC存储器中并可由应用程序302存取且包含可由应用程序302调用以再现和显示图形信息的函数。响应于从应用程序302接收到函数调用,Direct3DAPI 304确定是否可由PC内的图形硬件308执行此类函数。如果是的话,Direct3DAPI 304向图形硬件308的装置驱动器接口(DDI)306发布命令。DDI 306接着处理所述命令以供图形硬件308处理。
与图3中说明的常规软件结构形成对比,图4说明根据本发明实施例的包含仿真图形和音频库的软件结构。如图4所示,已经将拦截组件204插入在应用程序302与Direct3DAPI 304之间。这可通过仿真Direct3DAPI 304内的一个或一个以上图形或音频库来实现。结果,由拦截组件204而不是Direct3DAPI 304接收应用程序302所产生的特定函数调用。拦截组件204向索引组件206提供所拦截的函数调用或与所拦截的函数调用相关联的图形和音频对象。拦截组件204还通过对Direct3DAPI 304进行调用而将函数调用传递到所述API,在所述API处以常规方式处理所述函数调用。然而应注意,无需为了实践本发明而必须将函数调用传递到Direct3DAPI 304。
依据操作系统而定,可用各种方式来实现对真实图形API的仿真。一种用于对真实图形API进行仿真的方法是文件替换。举例来说,由于DirectX和OpenGL两者是从文件中动态加载的,所以可简单地通过替换相关文件(OpenGL的OpenGL.dll和DirectX的d3dX.dll,其中X是DirectX版本)来实现仿真。或者,可用具有类似接口的存根DLL来替换所述DLL,所述存根DLL实施对除挂钩函数之外的所有函数的原始DLL的传递调用。
另一种可使用的方法是使用华盛顿州雷蒙德市的Microsoft公布的Detours挂钩库来拦截或“挂钩”对API的函数调用。也可在内核级别处实施挂钩。内核挂钩可包含使用操作系统(OS)准备就绪的挂钩来启用用于正被调用的API的通知例行程序。另一种技术是通过将OS API表中的指针改变成挂钩例行程序指针从而在执行挂钩逻辑之前和/或之后将调用链接到原始OS例行程序来替换OS例行程序。另一种可能方法是基于API的挂钩技术,其通过设置系统全局挂钩或通过设置注册密钥以加载此DLL来执行将DLL注入到任何正被加载的过程。进行此注入只是为了使挂钩函数在过程地址空间中运行。尽管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是驻存在计算机系统的存储器中的软件函数,其可由应用程序210存取并辅助应用程序210再现由应用程序产生的图形信息和播放由应用程序产生的音频信息。低级别图形/音频函数208和216在其通过相似API分别向应用程序202和应用程序210提供相同功能性和服务的意义上是相似的。
当在运行时间环境106的计算机系统上执行期间,应用程序210用与应用程序202在分级环境102中对低级别图形/音频函数208进行函数调用相同的众所周知的方式对低级别图形/音频函数216进行函数调用。然而,根据本发明的实施例,此类函数调用被拦截组件212拦截,所述拦截组件212将函数调用继续传递到低级别图形/音频函数216,继续传递到商务逻辑214,或继续传递到所述两者。拦截组件212和商务逻辑214是在应用程序210执行之前安装在运行时间环境106的计算机系统上的软件组件。
当拦截组件212拦截函数调用时,其将控制连同相关对象一起传递到商务逻辑214,所述商务逻辑214确定所述对象是否与数据库108中的一个或一个以上商务规则相关联。如果所述对象与数据库108中的商务规则相关联,那么商务逻辑214应用商务规则。
在一个实施方案中,在运行时间期间应用商务规则导致修改对象(其可包含光源、视点、纹理或阴影)。如果将不会发生任何修改,那么简单地将所拦截的函数调用继续传递到低级别图形/音频函数216。如果将发生修改,那么可由商务逻辑214单独或由商务逻辑214结合低级别图形/音频函数216来处理函数调用。如本文中将更详细描述的,修改对象可包含更改对象的一部分、用不同对象来替换对象,或仅仅是不再现或回放所述对象。本文中还将描述其它商务规则的应用。
图5说明借助于仿真来实施拦截组件212的运行时间环境106的实例性软件结构。如图5所示,拦截组件212已经被插入在Windows应用程序302与Direct3DAPI 304之间。与上文参看图4描述的软件结构一样,这通过仿真Direct3DAPI 304内的一个或一个以上图形或音频库来实现。结果,由拦截组件212而不是Direct3DAPI 304来接收应用程序302所产生的某些函数调用。还如图5所示,在实施方案中,拦截组件212和商务逻辑214两者可对Direct3DAPI 304进行函数调用,且商务逻辑214可直接向DDI 506发送命令。商务逻辑214是否具有此能力取决于所应用的商务规则的性质。
在一个实施方案中,在分级环境102的计算机系统的本地存储器中创建或填充图形/音频对象数据库104。系统管理员或其他实体接着通过手动或自动手段用一个或一个以上商务规则来填充商务规则数据库108,其中每个商务规则与第一数据库中索引的对象中的一者或一者以上相关联。通过在商务规则与数据库108中的对象的唯一ID之间形成关系来创建商务规则与对象之间的关联。在一个实施方案中,“通配符”方案用来准许将单个商务规则与一组逻辑上有关的对象相关联。
一般来说,商务规则是当在应用程序210的上下文内应用时致使应用程序210执行未在原始应用程序源代码中提供的函数的任何逻辑。如上文指出的,商务规则可要求对与所拦截的函数调用相关联的图形对象进行修改,使得图形对象在被再现时看起来不同于其在未经修改时将展现的。举例来说,商务规则可致使将广告内容动态地插入到图形对象中。下文在IV章节中阐述商务规则及其应用的另外实例。然而,提供这些实例只是用于说明目的,而并不意图限制本发明。
因为可在任何时候由系统管理员或其他实体来改变商务规则,所以所述商务规则提供用以增强应用程序210的动态机制。举例来说,商务规则提供用以增加由所述应用程序产生的图形和音频内容的动态机制。
在一个实施方案中,一旦已经由系统管理员或其他实体创建或更新商务规则数据库108,便将数据库108的拷贝传送到运行时间环境106的计算机系统的本地存储器。可通过以下方式来发生传送:将数据库108的拷贝传送到可记录的计算机可用媒体(例如磁盘或光盘),并接着将计算机可用媒体传送到运行时间环境106。或者,可经由数据通信网络(例如局域和/或广域数据通信网络)来传送数据库108的拷贝。在又一实施方案中,根本不将数据库108传送到运行时间环境106的计算机系统的本地存储器,而是改为将其存储在计算网络中的中心位置处,在此处多个运行时间环境106可使用众所周知的网络接入协议来存取所述数据库108。然而,这些实例并不意图是限制性的,且所属领域的技术人员将明白,各种各样的方法可用来使数据库108可供运行时间环境106使用。
II.用于动态地增强在计算装置上执行的软件应用程序的方法
图6说明根据本发明实施例的用于促进动态增强在计算装置上执行的应用程序的方法的流程图600。图6本质上描述由分级环境102相对于处理由单个软件应用程序产生的单个图形或音频函数调用而进行的处理步骤。所属领域的技术人员将容易明白,软件应用程序将很可能产生许多此类函数调用,且因此流程图600的方法将很可能在软件应用程序执行期间被进行许多次。现在将继续参看图2中说明并在上文中参看该图描述的某些软件组件来部分地描述所述方法。然而,所属领域的技术人员将明白,流程图600的方法并不局限于所述实施方案。
以下对流程图600的方法的描述假设分级环境102的软件组件中的每一者已经安装在计算机系统上。所述方法还假设软件应用程序202正在计算机系统上执行。执行软件应用程序202包含启动应用程序和用致使应用程序产生图形和/或音频信息的方式通过一个或一个以上用户接口与所述应用程序交互两者。举例来说,如果应用程序202是视频游戏,那么执行所述应用程序包含启动视频游戏和使用适当的用户输入/输出(I/O)装置来玩所述视频游戏的至少一部分两者。
所述方法在步骤602处开始,其中软件应用程序202产生针对低级别图形/音频函数208的函数调用。在步骤604处,确定所述函数调用是否被拦截组件204拦截。如果未发生拦截,那么处理前进到步骤610,其中由低级别图形/音频函数208用常规方式来处理函数调用。接着函数调用的处理结束,如步骤612处指示。然而,如果函数调用已经被拦截,那么处理改为前进到步骤606。
在步骤606处,拦截组件204识别与所拦截的函数调用相关联的图形或音频对象。图形对象可包括模型、纹理、图像、参数或其它任何离散组与所拦截的函数调用相关联且用于代表应用程序202来再现图形信息的信息或数据。音频对象可包括音频文件、数字声波或其它任何离散组与所拦截的函数调用相关联且用于代表应用程序202来回放音频信息的信息或数据。图形或音频对象可以是函数调用自身的一部分或可由函数调用处理或指向。举例来说,如果所拦截的函数调用是对Direct3DAPI的“设置纹理”函数调用,那么相关联的图形对象可由“设置纹理”函数调用所指向的纹理组成。
在步骤608处,索引组件206索引图形/音频对象数据库104中的在步骤606中识别的图形或音频对象。在一个实施方案中,索引对象包含将对象或其一部分连同所述对象的唯一识别符(ID)一起存储在图形/音频对象数据库104中。可任意指派唯一ID,或可基于对象本身中所含有的信息来计算唯一ID。举例来说,在实施方案中,唯一ID包括错误校正码,例如循环冗余码(CRC),其是基于图形或音频对象的全部或部分内容来计算的。在替代实施方案中,将加密和/或散列算法应用于图形或音频对象的全部或部分内容以产生唯一ID。举例来说,唯一ID可以是基于图形或音频对象的全部或部分内容而计算的MD5散列签名。在运行时间环境106中实现基于对象自身的内容来产生唯一ID的益处,其中唯一ID而不是对象本身(其可能相当大)可用来在商务规则数据库108中搜索匹配。在本发明的一个实施方案中,仅将唯一ID存储在商务规则数据库108中以代表潜在的图形或音频对象。结果,可实质上降低对商务规则数据库108的存储要求。
在一个实施方案中,唯一ID不是作为流程图600的方法的一部分来计算,而是由在方法完成之后当图形/音频对象数据库104中已经充满图形和音频对象时发生的单独过程来计算。
在步骤610处,当索引完成后,接着将函数调用传递到低级别图形/音频函数208,在此处用常规方式来处理函数调用。此后,函数调用的处理结束,如步骤612处指示。
如上所述,流程图600的方法将很可能在执行分级环境102内的软件应用程序期间执行许多次。此外,所述方法可应用于多个软件应用程序的执行,以便从其中索引图形和音频对象。可将用于多个应用程序的经索引的图形和音频对象存储在单个图形/音频对象数据库104中或多个数据库104中。这些数据库中的每一者接着可用来填充一个或一个以上商务规则数据库108,提供所述商务规则数据库108以用于一个或一个以上运行时间环境106。
图7说明根据本发明实施例的用于动态地增强在计算装置上执行的应用程序的方法的流程图700。图7本质上描述由运行时间环境106相对于处理由单个软件应用程序产生的单个图形或音频函数调用而进行的处理步骤。所属领域的技术人员将容易明白,软件应用程序将很可能产生许多此类函数调用,且因此流程图700的方法将很可能在软件应用程序执行期间进行许多次。现在将继续参看图2中说明并在上文中参看该图描述的某些软件组件来部分地描述所述方法。然而,所属领域的技术人员将明白,流程图700的方法并不局限于所述实施方案。
以下对流程图700的方法的描述假设运行时间环境106的软件组件中的每一者已经安装在计算机系统上。所述方法还假设软件应用程序210正在计算机系统上执行。执行软件应用程序210包含启动应用程序和用致使应用程序产生图形和/或音频信息的方式通过一个或一个以上用户接口与所述应用程序交互两者。
所述方法在步骤702处开始,其中软件应用程序210产生针对低级别图形/音频函数216的函数调用。在步骤704处,确定函数调用是否被拦截组件拦截。如果未发生拦截,那么处理前进到步骤712,其中由低级别图形/音频函数216用常规方式来处理所述函数调用。接着函数调用的处理结束,如在步骤714处指示。然而,如果函数调用已经被拦截,那么处理改为前进到步骤706。
在步骤706处,拦截组件212识别与所拦截的函数调用相关联的图形或音频对象。如上所述,图形对象可包括模型、纹理、图像、参数或其它任何离散组与所拦截的函数调用相关联的图形信息,且音频对象可包括音频文件、数字声波或其它任何离散组与所拦截的函数调用相关联的音频信息。图形或音频对象可以是函数调用自身的一部分或可由函数调用处理或指向。举例来说,如果所拦截的函数调用是对Direct3DAPI的“设置纹理”函数调用,那么相关联的图形对象可由“设置纹理”函数调用所指向的纹理组成。
在步骤708处,商务逻辑214确定所识别的对象是否与商务规则数据库108中的至少一个商务规则相关联。这个步骤可包含将所识别的对象或其一部分与数据库108中所存储的图形或音频对象或其一部分进行比较。或者,这个步骤可包含为所识别的对象计算唯一ID且接着将所识别的对象的唯一ID与数据库108中所存储的一组唯一ID进行比较。举例来说,如上文参看图6所述,唯一ID可包括基于所识别的对象的全部或部分内容而计算的错误校正码(例如CRC),或通过向所识别的对象的全部或部分内容应用加密和/或散列算法而导出的签名(例如MD5散列签名)。应注意,可根据本发明使用“通配符”或其它对象逻辑分组来将商务规则与多个对象相关联。举例来说,商务规则数据库108可包含将应用于由全面匹配表达式识别的所有对象。
如果所识别的对象不与数据库108中的至少一个商务规则相关联,那么处理前进到步骤712,其中低级别图形/音频函数216用常规方式处理函数调用。
然而,如果所识别的对象与数据库108中的至少一个商务规则相关联,那么商务逻辑214应用所述至少一个商务规则,如在步骤710处所示。在一个实施方案中,应用商务规则导致修改所识别的对象。此修改可包含用不同对象替换所识别的对象、改变所识别的对象的内容、或仅仅是根本不再现或播放所识别的对象。然而,本发明不限于仅仅修改对象。举例来说,商务规则可包含在再现或播放所述对象之前再现或播放另一对象,或者在再现或播放所述对象之后再现或播放另一对象。请注意,因为商务规则的应用可包含再现或播放对象,所以此应用可包含对低级别图形/音频函数216进行一次或一次以上函数调用。
实际上,商务规则无需包含再现任何图形信息或播放任何音频信息。而是,商务规则可简单地由以下内容组成:响应于拦截组件212识别出某一图形或音频对象而在软件应用程序210的上下文内执行某种活动。举例来说,商务规则可包含将与用户输入装置相关联的指针移动到显示屏幕的预定义区域(可用于在射击游戏中自动瞄准或用于在屏幕上游戏菜单内自动定向)、产生密钥序列(例如输入“作弊码”)、记录和/或报告用户在软件应用程序内的进展或其它活动。这些事件中的每一者均可在由原始非仿真低级别图形或音频库再现或播放与所拦截的函数调用相关联的图形或音频对象之前、作为其替代或在其之后执行。
在步骤710处应用了一个或一个以上商务规则之后,函数调用的处理即告结束,如在步骤712处所示。
III.向运行时间环境分配/安装软件组件
如上所述,本发明的实施例促进向在计算装置上执行的软件应用程序应用商务规则,进而准许用不需要修改和重新编译原始应用程序代码的动态方式来增强应用程序。此外,因为可使用仿真库在运行时间环境106中实施本发明的实施例,所以所述操作可对于最终用户来说本质上是透明的。实际上,除了在运行时间环境106中安装必要的软件组件(即,拦截组件212、商务逻辑214和可选的商务规则数据库108)以外,最终用户无需采取任何前摄性步骤来将软件应用程序与外部软件组件链接或介接。
可通过各种方式来实现对最终用户的计算装置分配必要的软件组件。举例来说,软件组件可经由例如因特网等数据通信网络从集中式实体分配到许多运行时间环境。图8中说明此系统,其中集中式网络实体802经展示为经由数据通信网络804与多个用户运行时间环境106a、106b和106c通信。通过将此基于网络的分配与自动安装软件组合,可用有利地需要最少的最终用户干涉的方式来实现将此类组件安装在最终用户的计算装置上。此外,由于最终用户机器上只需要运行时间组件的单个拷贝,所以可将这些组件与一个或一个以上应用程序210捆绑。
在本发明的实施方案中,商务规则自身在实体(例如,发行商、零售商或服务提供商)可周期性对其进行改变以用不同方式增强给定应用程序的意义上是动态的。可通过对商务规则数据库108进行修改来改变或添加商务规则。可使用例如图8所示的网络系统经由数据通信网络将商务规则数据库108的拷贝或对其的更新从集中式网络实体分配到多个运行时间环境106。
在替代的实施方案中,根本没有将商务规则数据库108的拷贝分配到运行时间环境106,而是改为商务规则数据库108相对于运行时间环境106驻存在远端,且只有在需要时才经由例如因特网等数据通信网络来存取。举例来说,商务逻辑规则数据库108可驻存在例如服务器等集中式网络实体上,在此处由与多个运行时间环境106相关联的计算装置来存取所述数据库。同样,在图8中说明此网络配置。此实施方案是有利的,因为只需要在中央服务器处实施一次对商务规则的改变,且不需要活跃地将所述改变分配到多个运行时间环境106。
在拦截组件212包括一个或一个以上仿真库的实施方案中,可在安装拦截组件212期间或在应用程序运行时间时做出关于应仿真哪些库的确定。因此,可针对待动态增强的每个软件应用程序来仿真不同组的库。可根据某些外部提供的元数据基于待动态增强的软件应用程序的特征来作出所述确定,或者可通过一种手段或其它手段从分级环境供应所述确定。
IV.本发明的实例性应用
现在将描述本发明的一些示范性应用。提供这些实例仅用于说明目的,且并不意图用任何方式来限制本发明。
A.嵌入游戏内广告
本发明的实施方案促进在游戏中嵌入游戏内广告,所述游戏原本未经设计以支持此特征。根据此实施方案,分级环境102操作以在图形/音频对象数据库104中索引与游戏有关的表面的纹理,例如赛车游戏中的汽车的车头盖。系统管理员接着定义用以用与广告宣传的产品相关联的标志覆盖汽车的车头盖的商务规则。在商务规则数据库108中捕获所述商务规则,在此处其与汽车的车头盖的纹理相关联。在运行时间环境106中,拦截组件212在存取纹理以供在最终用户的计算机上再现时识别所述纹理,且商务逻辑214将其与数据库108中所存储的商务规则匹配。结果,应用所述商务规则以增加用于汽车车头盖的带有产品标志的纹理图像,并将经过操纵的图像再现到屏幕上。最终结果是将在与游戏相关联的图形显示器“内部”的汽车车头盖上显示产品标志。
基于本文中提供的教示,所属领域的技术人员将明白,本发明同样适用于在游戏的上下文内所播放的音频对象内插入音频广告内容。此外,本发明还适用于再现与任何特定拦截对象无关且独立于所述对象再现或播放的图形和音频广告内容。
在本发明的另一实施例中,运行时间环境106进一步包含用于捕获来自例如键盘或鼠标等最终用户装置的输入/输出(I/O)的逻辑。图9中展示用于此实施例的软件组件。明确地说,如图9所示,运行时间环境106的软件组件包含应用程序910、低级别图形/音频函数916和“插入”在它们之间的与商务逻辑914通信的拦截组件912,这类似于图2所示的软件结构。然而,在图9所示的实施方案中,已经提供额外I/O捕获组件918,其允许商务逻辑914监视与使用例如键盘或鼠标等用户输入装置相关联的事件。在一个实施方案中,通过仿真与处理鼠标或键盘输入相关联的函数来实现此监视。
根据图9的系统可用来扩展本发明实施方案促进嵌入游戏内广告的功能性。举例来说,在与游戏相关联的图形显示器内再现所嵌入的产品标志的同时,I/O组件918监视用户输入以识别用户何时已经通过例如用鼠标指向标志和点击而与标志交互。响应于确定已经发生用户交互,商务逻辑914执行函数。举例来说,所述函数可包含显示供用户键入拟发送到服务器的数据的表格、向用户显示其它某图形或音频内容、或向用户提供奖励或其将受到奖励的通知。
B.识别游戏内的进展和成绩
根据本发明的实施方案,可识别游戏中的级别进展和成绩,并可基于所述进展或成绩来采取某些措施。举例来说,商务规则可与在分级环境102中识别的图形或音频对象相关联,所述对象对于划分成多个级别或级的游戏内的特定级别或级是唯一的或者代表所述特定级别或级。当在运行时间环境106中识别到同一对象时,最终用户已经达到游戏内的所述级别或级,且应用商务规则。商务规则可包含记录关于成绩或进展的信息,并接着将其经由例如因特网等数据通信网络传输到集中式存储库以启动比赛和颁奖方案。或者,在屏幕上显示游戏得分的游戏中,可捕获所再现的信息,且可记录用户已经获得的实际得分并用作启动比赛和颁奖方案的数据。
C.显示视频游戏控制
在本发明的前述实施方案中,因为运行时间环境106识别到由特定应用程序产生的图形或音频对象而应用商务规则。然而,在替代的实施方案中,改为响应于检测到在执行软件应用程序的上下文内或在运行时间环境106的计算机系统内发生其它某事件而应用商务规则。
在图10中描绘此实施方案。如图10所示,运行时间环境106的软件组件包含应用程序1010、低级别图形/音频函数1016和插入在它们之间的与商务逻辑1014通信的拦截组件1012,这类似于图2所示的软件结构。然而,在图10所示的实施方案中,已经提供额外的事件检测组件1018,其允许向商务逻辑1018通知在执行软件应用程序的上下文内或在运行时间环境106的计算机系统内发生事件。在图10所示的系统中,商务逻辑1014响应于检测到此事件而选择性应用商务规则。
此系统的实例性应用包含触发打开或关闭图形显示器内与视频游戏相关联的视频游戏控制的显示,其中此能力不由视频游戏本身提供。根据此实例性应用,事件检测组件108检测到用户已经将例如键盘键入的组合等输入提供到计算机系统,以便打开或关闭屏幕上控制。响应于检测到此事件,商务逻辑1014在所述控制被触发打开时致使在屏幕上再现所述控制或在所述控制被触发关闭时致使在屏幕上不再现所述控制。通过对必要的低级别图形/音频函数1016进行函数调用以执行此任务来实现对控制的再现。此功能性增强了最终用户对视频游戏的可用性。
可进一步通过某些识别用户已经达到游戏中的特定“级”的图形或音频对象的识别来触发对此类控制的屏幕上显示。因此,一旦达到新的“级别”,可自动向用户提供屏幕上控制信息,从而在游戏中对其进行帮助。
D.试用消息
图10的系统的另一实例性应用涉及通知最终用户使用应用程序软件的试用期结束,其中所述应用程序软件既定仅使用有限时间和/或使用有限数目的“级别”。根据此实例,事件检测组件1018通知商务逻辑1014何时已经相对于执行应用程序而到达预定阈值。举例来说,阈值可以是已经使用所述应用程序的总时间量(例如,总共使用1小时)或已经启动所述应用程序的总次数(例如,10次会话)。此阈值可标记试用期的实际结束或只是试用期即将结束。在任何情况下,商务逻辑1014均响应于此通知而致使向用户再现或回放图形或音频消息以警告用户试用期结束。此消息可作为由应用程序产生的图形或音频对象的一部分来再现,或与任何此类对象分开再现。所述消息可指示用户使用所述应用程序的剩余时间量或剩余会话。通过向必要的低级别图形/音频函数1016进行函数调用来实现对此消息的再现。
在本发明的另一实施例中,拦截组件可将特定对象识别为指示达到新的“级”或“级别”,进而允许管理员或其他实体设置将应用程序的使用限制于特定级别或级的商务规则。一旦识别到此新级别或级,便可自动保存游戏(通过产生所需的密钥序列)并可向用户显示适当的消息。
在包含上文参看图9所述的I/O捕获能力的另一实施例(未图示)中,I/O捕获组件监视用户输入以识别何时用户已经例如通过用鼠标和点击指向消息而与已用图形形式再现的试用消息交互。响应于确定已经发生用户交互,商务逻辑1014执行函数。举例来说,所述函数可包含启动允许最终用户取得用于使用所述应用程序的额外许可证有效期的过程。
E.父母控制
图10的系统的另一实例性应用允许动态实施父母控制,父母控制可管理对软件应用程序的使用。举例来说,父母可能希望限制在给定时段(例如一天)内玩视频游戏应用程序的时间量。根据此实例,事件检测组件1018在所允许的时间即将结束时通知商务逻辑1014。商务逻辑1014响应于此通知而致使向用户再现或回放图形或音频消息,以警告用户所允许的时间即将结束。此外,当所允许的时间已经期满时,商务逻辑1014接到通知,并致使保存视频游戏中的任何进展并接着退出应用程序。
如本文中其它地方所述,也可实施致使不在软件应用程序执行期间再现或回放某些所识别的图形或音频对象的商务规则。此实施方案特别可用于提供父母控制,所述父母控制在视频游戏期间选择性地阻断某些图形和/或音频对象内容的展现。
F.屏幕上通信消息
在图10的系统的另一实例性应用中,事件检测组件1018监视也驻存在运行时间环境106的计算机系统上的电子邮件客户端和/或即时消息传送器,并在这些应用程序中的一者已经接收到例如消息等信息时通知商务逻辑1014。商务逻辑1014接着通过将消息在与应用程序1010相关联的图形显示器内再现而向最终用户提供所述消息。商务逻辑1014通过存取低级别图形/音频函数1016来执行此任务。此功能性可用来允许在玩视频游戏的同时用无缝且不打扰的方式向最终用户提供电子邮件和即时消息传送器消息。实际上,原本用全屏DirectX应用程序将不可能实现此功能性。
G.菜单系统辨认和操纵
在本发明的另一实施方案中,提供菜单系统辨认和操纵功能性。举例来说,根据此实施方案,拦截组件212识别到例如视频游戏等应用程序210正在再现与菜单系统相关联的图形。作为响应,商务规则214执行一个或一个以上活动。举例来说,商务规则214可启用跳到菜单选项功能性,以允许容易在菜单系统内导航。此功能性可包含将最终用户的鼠标指针移动到最近的菜单选项。作为替代或补充,在包含上文参看图9所述的I/O捕获能力的实施方案(未图示)中,商务逻辑可通过捕获键盘输入而通过从模拟鼠标移动转译成离散的基于箭头键的移动而致使在菜单选项之间移动。另一应用可包含依据父母控制或与许可有关的参数来阻断最终用户选择特定菜单选项的能力。
H.场景操纵
在本发明的另一实施方案中,可对特定场景执行各种操纵。举例来说,这些操纵中的一些包含:
突出操纵——场景的图形输出或其一部分可经操纵以展示在不同于平坦表面的表面上。举例来说,当将再现输出突出成球形表面时,无需特定透镜根据所述表面来调适突出,而是相应地在场景内的选定组的指数和顶点上应用转换。一旦拦截了对“开始场景”和“结束场景”调用的调用,便可向两者之间的所有调用应用特定商务逻辑。将来的应用可进一步包含来自表面自身的用将根据表面形状来动态调适的方式的反馈。对象尺寸和形状——另一实例可包含伸长或改变场景对象。举例来说,场景图像可变长、变细等。
视点操纵——可提供商务逻辑以实现改变现有场景的视点。举例来说,在赛车游戏中,本发明可用来添加车顶处的视点,这未由游戏的原始功能性提供。接着可将所述场景显示为游戏本身内部的画中画而不是显示原始图像或在不同屏幕上显示。在不同屏幕上显示所述图像的情况下,可添加与经操纵的图像的交互,以允许观看者从各种视点观看游戏,而不会影响玩家的用户体验。
照明操纵——提供商务逻辑以允许改变照明定义。举例来说,照明黑暗的游戏或场景。
着色器操纵——提供商务逻辑以允许改变着色器定义。举例来说,这可用来添加或移除雾化或改变透明度。
V.实例性计算机系统实施方案
图11描绘实例性计算机系统1100,其可用来实施分级环境102或运行时间环境106。然而,下文对计算机系统1100的描述只是以举例方式提供的,而并不意图是限制性的。而是,如本文中其它地方提到的,分级环境102和运行时间环境106可每一者包括服务器、控制台、个人数字助理(PDA)或其它任何能够执行软件应用程序并向最终用户显示相关联的由应用程序产生的图形和音频信息的计算装置。
如图11所示,实例性计算机系统1100包含处理器1104以用于执行软件例行程序。虽然为了清楚起见只展示了单个处理器,但计算机系统1100也可包括多处理器系统。处理器1104连接到通信基础设施1106以用于与计算机系统1100的其它组件通信。通信基础设施1106可例如包括通信总线、纵横开关或网络。
计算机系统1100进一步包含主存储器1108(例如随机存取存储器(RAM))和二级存储器1110。二级存储器1110可包含(例如)硬盘驱动器1112和/或可移动存储驱动器1114,其可包括软盘驱动器、磁盘驱动器、光盘驱动器或类似装置。可移动存储驱动器1114用众所周知的方式对可移动存储单元1118进行读取和/或写入。可移动存储单元1118可包括软盘、磁盘、光盘或类似装置,其由可移动存储驱动器1114读取和写入。如所属领域的技术人员将明白的,可移动存储单元1118包含其中存储有计算机软件和/或数据的计算机可用存储媒体。
在替代性实施方案中,二级存储器1110可包含其它用于允许将计算机程序或其它指令加载到计算机系统1100中的类似构件。举例来说,此类构件可包含可移动存储单元1122和接口1120。可移动存储单元1122和接口1120的实例包含程序盒式磁盘和盒式磁盘接口(例如视频游戏控制台装置中存在的)、可移动存储器芯片(例如EPROM或PROM)和相关联的插口,以及其它允许将软件和数据从可移动存储单元1122传送到计算机系统1100的可移动存储单元1122和接口1120。
计算机系统1100还包含至少一个通信接口1124。通信接口1124允许经由通信路径1126在计算机系统1100与外部装置之间传送软件和数据。明确地说,通信接口1124准许在计算机系统1100与例如公共数据或专用数据通信网络等数据通信网络之间传送数据。通信接口1124的实例可包含调制解调器、网络接口(例如以太网卡)、通信端口等。经由通信接口1124传送的软件和数据是采用信号的形式,所述信号可以是能够由通信接口1124接收的电子、电磁、光学或其它信号。这些信号经由通信路径1126提供到通信接口。
如图11所示,计算机系统1100进一步包含:显示接口1102,其执行用于向相关联的显示器1130再现图像的操作;以及音频接口1132,其用于执行经由相关联的扬声器1134播放音频内容的操作。
如本文中使用的,术语“计算机程序产品”可部分指代可移动存储单元1118、可移动存储单元1122、安装在硬盘驱动器1112中的硬盘或经由通信路径1126(无线链路或电缆)将软件载运到通信接口1124的载波。计算机可用媒体可包含磁性媒体、光学媒体或其它可记录媒体,或传输载波或其它信号的媒体。这些计算机程序产品是用于向计算机系统1100提供软件的构件。
计算机程序(也称为计算机控制逻辑)存储在主存储器1108和/或二级存储器1110中。计算机程序也可经由通信接口1124接收。此类计算机程序在被执行时使得计算机系统1100能够执行如本文中论述的本发明的一个或一个以上特征。明确地说,计算机程序在被执行时使得处理器1104能够执行本发明的特征。因此,此类计算机程序代表计算机系统1100的控制器。
用于实施本发明的软件可存储在计算机程序产品中,并使用可移动存储驱动器1114、硬盘驱动器1112或接口1120加载到计算机系统1100中。或者,计算机程序产品可经由通信路径1126下载到计算机系统1100。所述软件在由处理器1104执行时致使处理器1104执行如本文中描述的本发明的功能。
D.结论
尽管上文已经描述了本发明的各种实施例,但应了解,其只是以举例方式而非作为限制来展现的。所属领域的技术人员将了解,在不偏离由所附权利要求书界定的本发明精神和范围的情况下可在其中作出各种形式和细节上的改变。因此,本发明的宽度和范围不应由上述示范性实施例中的任一者限制,而是应只根据所附权利要求书及其等效物来界定。
Claims (47)
1.一种用于动态地增强软件应用程序的方法,其包括:
(a)在第一计算装置上执行所述软件应用程序;
(b)拦截由所述软件应用程序在所述第一计算装置上执行期间产生的函数调用;
(c)确定与在步骤(b)中拦截的所述函数调用相关联的图形或音频对象是否与商务规则相关联;以及
(d)响应于确定所述图形或音频对象与商务规则相关联,应用所述商务规则。
2.根据权利要求1所述的方法,其中步骤(b)包括拦截对图形或音频应用程序编程接口(API)的函数调用。
3.根据权利要求2所述的方法,其中拦截对图形或音频API的函数调用包括仿真所述图形或音频API。
4.根据权利要求1所述的方法,其中应用所述商务规则包括修改所述图形或音频对象。
5.根据权利要求4所述的方法,其中修改所述图形或音频对象包括更改所述图形或音频对象的一部分。
6.根据权利要求5所述的方法,其中更改所述图形或音频对象的一部分包括在所述图形或音频对象内插入广告内容。
7.根据权利要求4所述的方法,其中修改所述图形或音频对象包括用不同的图形或音频对象替换所述图形或音频对象。
8.根据权利要求4所述的方法,其中修改所述图形或音频对象包括不再现或播放所述图形或音频对象。
9.根据权利要求1所述的方法,其中应用商务规则包括在再现或播放与在步骤(b)中拦截的所述函数调用相关联的所述图形或音频对象之前或之后再现或播放不同的图形或音频对象。
10.根据权利要求1所述的方法,其中应用所述商务规则包括在与所述软件应用程序相关联的图形显示内再现广告内容。
11.根据权利要求10所述的方法,其中应用所述商务规则进一步包括:
检测用户与所述再现的广告内容的交互;以及
响应于检测到所述用户交互而向所述用户提供额外信息。
12.根据权利要求1所述的方法,其中应用所述商务规则包括:
记录与最终用户在所述软件应用程序内的进展相关的信息;以及
将所述记录的信息或其一部分传输到网络实体。
13.根据权利要求1所述的方法,其进一步包括在步骤(a)之前:
(i)在第二计算装置上执行所述软件应用程序;
(ii)拦截由所述软件应用程序在所述第二计算装置上执行期间产生的函数调用;以及
(iii)在第一数据库中索引与在步骤(ii)中拦截的所述函数调用相关联的图形和音频对象;以及
(iv)在第二数据库中将商务规则与在步骤(iii)中索引的所述图形和音频对象中的一者或一者以上相关联;
其中步骤(c)包括确定与在步骤(b)中拦截的所述函数调用相关联的图形或音频对象是否与所述第二数据库中存储的商务规则相关联。
14.根据权利要求13所述的方法,其中步骤(iii)包括为与在步骤(ii)中拦截的所述函数调用相关联的所述图形和音频对象中的每一者计算唯一识别符(ID)并将每个唯一ID存储在所述第一数据库中,且其中步骤(iv)包括将商务规则与所述第二数据库中的所述唯一ID中的一者或一者以上相关联。
15.根据权利要求14所述的方法,其中计算唯一ID包括为与在步骤(ii)中拦截的所述函数调用相关联的所述图形和音频对象中的每一者计算循环冗余码。
16.根据权利要求14所述的方法,其中计算唯一ID包括向与在步骤(ii)中拦截的所述函数调用相关联的所述图形和音频对象中的每一者应用加密和/或散列算法。
17.根据权利要求14所述的方法,其中步骤(c)包括为与在步骤(b)中拦截的所述函数调用相关联的所述图形或音频对象计算唯一ID,及确定与在步骤(b)中拦截的所述函数调用相关联的所述图形或音频对象的所述唯一ID是否与所述第二数据库中存储的唯一ID匹配。
18.一种计算机系统,其包括:
处理器;以及
与所述处理器通信的存储器,所述存储器存储用于指导所述处理器执行以下操作的多个处理指令:
执行软件应用程序;
拦截由所述软件应用程序在执行期间产生的函数调用;
确定与所述拦截的函数调用相关联的图形或音频对象是否与商务规则相关联;以及
响应于确定所述图形或音频对象与商务规则相关联,应用所述商务规则。
19.根据权利要求18所述的计算机系统,其中所述用于指导所述处理器拦截由所述软件应用程序在执行期间产生的函数调用的处理指令包括用于指导所述处理器拦截对图形或音频应用程序编程接口(API)的函数调用的处理指令。
20.根据权利要求19所述的计算机系统,其中所述用于指导所述处理器拦截对图形或音频应用程序编程接口(API)的函数调用的处理指令包括用于指导所述处理器仿真所述图形或音频API的处理指令。
21.根据权利要求18所述的计算机系统,其中所述用于指导所述处理器应用所述商务规则的处理指令包括用于指导所述处理器修改所述图形或音频对象的处理指令。
22.根据权利要求21所述的计算机系统,其中所述用于指导所述处理器修改所述图形或音频对象的处理指令包括用于指导所述处理器更改所述图形或音频对象的一部分的处理指令。
23.根据权利要求22所述的计算机系统,其中所述用于指导所述处理器更改所述图形或音频对象的一部分的处理指令包括用于指导所述处理器在所述图形或音频对象内插入广告内容的处理指令。
24.根据权利要求21所述的计算机系统,其中所述用于指导所述处理器修改所述图形或音频对象的处理指令包括用于指导所述处理器用不同的图形或音频对象替换所述图形或音频对象的处理指令。
25.根据权利要求21所述的计算机系统,其中所述用于指导所述处理器修改所述图形或音频对象的处理指令包括用于指导所述处理器不再现或播放所述图形或音频对象的处理指令。
26.根据权利要求18所述的计算机系统,其中所述用于指导所述处理器应用所述商务规则的处理指令包括用于指导所述处理器在再现或播放与所述拦截的函数调用相关联的所述图形或音频对象之前或之后再现或播放不同的图形或音频对象。
27.根据权利要求18所述的计算机系统,其中所述用于指导所述处理器应用所述商务规则的处理指令包括用于指导所述处理器在与所述软件应用程序相关联的图形显示内再现广告内容的处理指令。
28.根据权利要求27所述的计算机系统,其中所述用于指导所述处理器应用所述商务规则的处理指令进一步包括用于指导所述处理器执行以下操作的处理指令:检测用户与所述再现的广告内容的交互;以及
响应于检测到所述用户交互而向所述用户提供额外信息。
29.根据权利要求18所述的计算机系统,其中所述用于指导所述处理器应用所述商务规则的处理指令包括用于指导所述处理器执行以下操作的处理指令:记录与最终用户在所述软件应用程序内的进展相关的信息;以及
将所述记录的信息或其一部分传输到网络实体。
30.根据权利要求18所述的计算机系统,其中所述用于指导所述处理器确定与所述拦截的函数调用相关联的图形或音频对象是否与商务规则相关联的处理指令包括用于指导所述处理器执行以下操作的处理指令:
为所述图形或音频对象计算唯一识别符(ID);以及
将为所述图形或音频对象计算的所述唯一ID和与存储在数据库中的商务规则相关联的唯一ID进行比较。
31.根据权利要求30所述的计算机系统,其中所述用于指导所述处理器为所述图形或音频对象计算唯一ID的处理指令包括用于指导所述处理器为所述图形或音频对象计算循环冗余码的处理指令。
32.根据权利要求30所述的计算机系统,其中所述用于指导所述处理器为所述图形或音频对象计算唯一ID的处理指令包括用于指导所述处理器向所述图形或音频对象应用加密和/或散列算法的处理指令。
33.一种计算机程序产品,其包括其中存储有控制逻辑的计算机可用媒体,所述控制逻辑包括:
第一计算机可读程序码构件,其用于致使计算机拦截由软件应用程序在执行期间产生的函数调用;
第二计算机可读程序码构件,其用于致使所述计算机确定与所述拦截的函数调用相关联的图形或音频对象是否与商务规则相关联;以及
第三计算机可读程序码构件,其用于致使所述计算机响应于确定所述图形或音频对象与所述商务规则相关联而应用商务规则。
34.根据权利要求33所述的计算机程序产品,其中所述第一计算机可读程序码构件包括用于致使所述计算机拦截对图形或音频应用程序编程接口(API)的函数调用的构件。
35.根据权利要求34所述的计算机程序产品,其中所述用于致使所述计算机拦截对图形或音频API的函数调用的构件包括用于致使所述计算机仿真所述图形或音频API的构件。
36.根据权利要求33所述的计算机程序产品,其中所述第三计算机可读程序码构件包括用于致使所述计算机修改所述图形或音频对象的构件。
37.根据权利要求36所述的计算机程序产品,其中所述用于致使所述计算机修改所述图形或音频对象的构件包括用于致使所述计算机更改所述图形或音频对象的一部分的构件。
38.根据权利要求37所述的计算机程序产品,其中所述用于致使所述计算机更改所述图形或音频对象的一部分的构件包括用于致使所述计算机在所述图形或音频对象内插入广告内容的构件。
39.根据权利要求36所述的计算机程序产品,其中所述用于致使所述计算机修改所述图形或音频对象的构件包括用于致使所述计算机用不同的图形或音频对象替换所述图形或音频对象的构件。
40.根据权利要求36所述的计算机程序产品,其中所述用于致使所述计算机修改所述图形或音频对象的构件包括用于致使所述计算机不再现或播放所述图形或音频对象的构件。
41.根据权利要求33所述的计算机程序产品,其中所述第三计算机可读程序码构件包括用于致使所述计算机在再现或播放与所述拦截的函数调用相关联的所述对象之前或之后再现或播放不同的图形或音频对象的构件。
42.根据权利要求33所述的计算机程序产品,其中所述第三计算机可读程序码构件包括用于致使所述计算机在与所述软件应用程序相关联的图形显示内再现广告内容的构件。
43.根据权利要求42所述的计算机程序产品,其中所述第三计算机可读程序码构件进一步包括用于致使所述计算机执行以下操作的构件:
检测用户与所述再现的广告内容的交互;以及
响应于检测到所述用户交互而向用户提供额外信息。
44.根据权利要求33所述的计算机程序产品,其中所述第三计算机可读程序码构件包括用于致使所述计算机执行以下操作的构件:
记录与最终用户在所述软件应用程序内的进展相关的信息;以及
将所述记录的信息或其一部分传输到网络实体。
45.根据权利要求33所述的计算机程序产品,其中所述第二计算机可读程序码构件包括用于致使所述计算机执行以下操作的构件:
为所述图形或音频对象计算唯一识别符(ID);以及
将为所述图形或音频对象计算的所述唯一ID和与存储在数据库中的商务规则相关联的唯一ID进行比较。
46.根据权利要求45所述的计算机程序产品,其中所述用于致使所述计算机为所述图形或音频对象计算唯一ID的构件包括用于致使所述计算机为所述图形或音频对象计算循环冗余码的构件。
47.根据权利要求45所述的计算机程序产品,其中所述用于致使所述计算机为所述图形或音频对象计算唯一ID的构件包括用于致使所述计算机向所述图形或音频对象应用加密和/或散列算法的构件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/290,830 | 2005-12-01 | ||
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101322101A true CN101322101A (zh) | 2008-12-10 |
Family
ID=38092630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800450115A Pending CN101322101A (zh) | 2005-12-01 | 2006-11-28 | 用于动态增强在计算装置上执行的应用程序的系统、方法和计算机程序产品 |
Country Status (7)
Country | Link |
---|---|
US (3) | US7596540B2 (zh) |
EP (1) | EP1960871A2 (zh) |
JP (1) | JP2009517752A (zh) |
KR (1) | KR100968661B1 (zh) |
CN (1) | CN101322101A (zh) |
CA (1) | CA2631772C (zh) |
WO (1) | WO2007063422A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255868A (zh) * | 2010-05-21 | 2011-11-23 | 卓望数码技术(深圳)有限公司 | 一种广告发布系统和广告发布方法 |
CN103150513A (zh) * | 2013-03-20 | 2013-06-12 | 北京奇虎科技有限公司 | 拦截应用程序中的植入信息的方法及装置 |
CN104573334A (zh) * | 2014-12-24 | 2015-04-29 | 珠海金山网络游戏科技有限公司 | 一种利用标签事件触发特效和音效的播放系统和方法 |
CN106232194A (zh) * | 2014-04-22 | 2016-12-14 | 索尼互动娱乐股份有限公司 | 游戏递送设备、游戏递送方法和游戏递送程序 |
CN110121380A (zh) * | 2016-11-22 | 2019-08-13 | 索尼互动娱乐有限责任公司 | 通过仿真进行重新录制 |
CN114610405A (zh) * | 2022-03-03 | 2022-06-10 | 深圳盛显科技有限公司 | 一种多应用截屏及网络编码输出方法、设备、介质、产品 |
Families Citing this family (72)
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 |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
WO2005055034A1 (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 |
US8359591B2 (en) | 2004-11-13 | 2013-01-22 | Streamtheory, Inc. | Streaming from a media device |
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 |
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 |
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 |
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 |
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 |
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 |
WO2010060206A1 (en) | 2008-11-26 | 2010-06-03 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
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 |
CN103403694B (zh) * | 2010-09-13 | 2019-05-21 | 索尼电脑娱乐美国公司 | 附加组件管理 |
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 |
SG2014011506A (en) | 2011-08-15 | 2014-05-29 | Calgary Scient Inc | Non-invasive remote access to an application program |
EP2745467A4 (en) | 2011-08-15 | 2015-10-14 | Calgary Scient Inc | METHOD FOR FLOW CONTROL AND RELIABLE COMMUNICATION IN A COMMUNITY ENVIRONMENT |
WO2013035901A1 (ko) * | 2011-09-08 | 2013-03-14 | Kim A Lim | 스마트폰을 이용한 마케팅 방법 |
CN103959708B (zh) | 2011-09-30 | 2017-10-17 | 卡尔加里科学公司 | 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展 |
AU2012342170B2 (en) | 2011-11-23 | 2017-03-09 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
US9602581B2 (en) * | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
EP2828739A4 (en) * | 2012-03-22 | 2015-12-09 | Intel Corp | ENVIRONMENT FOR NESTED EMULATIONS AND DYNAMIC LINKS |
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 | 腾讯科技(深圳)有限公司 | 一种截图方法,及装置 |
US8781613B1 (en) * | 2013-06-26 | 2014-07-15 | Applifier Oy | Audio apparatus for portable devices |
US9561436B2 (en) * | 2013-02-26 | 2017-02-07 | Gree, Inc. | Shooting game control method and game system |
JP2017505473A (ja) | 2013-11-29 | 2017-02-16 | カルガリー サイエンティフィック インコーポレイテッド | クライアントサーバリモートアクセスシステムにおけるクライアントの非管理サービスへの接続の提供方法 |
US10277717B2 (en) | 2013-12-15 | 2019-04-30 | Nicira, Inc. | Network introspection in an operating system |
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 |
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 |
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 |
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 |
CA2974204A1 (en) | 2015-01-30 | 2016-08-04 | Calgary Scientific Inc. | Method of providing access to a service in a client-server remote access system |
CA2978536A1 (en) | 2015-03-04 | 2016-09-09 | 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 |
CN116506428B (zh) * | 2023-06-20 | 2023-09-08 | 成都博点科技有限公司 | 一种基于kotlin的数据离线上传方法及装置 |
Family Cites Families (73)
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 |
CA2245887C (en) | 1996-12-25 | 2008-10-28 | 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 |
WO1999060504A1 (en) * | 1998-05-15 | 1999-11-25 | Unicast Communications Corporation | A technique for implementing browser-initiated network-distributed advertising and for interstitially displaying an advertisement |
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 |
JP2001312286A (ja) * | 2000-05-02 | 2001-11-09 | Noritsu Koki Co Ltd | データ管理装置およびデータ管理方法、ならびにデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
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 |
JP2003044297A (ja) * | 2000-11-20 | 2003-02-14 | Humming Heads Inc | コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム |
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 |
CN1318975C (zh) | 2001-07-04 | 2007-05-30 | Okyz公司 | 与二维或三维几何实体相关的数据的输出方法 |
US6884166B2 (en) | 2001-07-13 | 2005-04-26 | Gameaccount Limited | System and method for establishing a wager for 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 |
US7436406B2 (en) | 2002-07-12 | 2008-10-14 | 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 |
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 |
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 |
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 |
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 |
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 |
-
2005
- 2005-12-01 US US11/290,830 patent/US7596540B2/en not_active Expired - Fee Related
-
2006
- 2006-11-28 WO PCT/IB2006/003968 patent/WO2007063422A2/en active Application Filing
- 2006-11-28 KR KR1020087013180A patent/KR100968661B1/ko not_active IP Right Cessation
- 2006-11-28 CA CA2631772A patent/CA2631772C/en not_active Expired - Fee Related
- 2006-11-28 EP EP06842386A patent/EP1960871A2/en not_active Withdrawn
- 2006-11-28 CN CNA2006800450115A patent/CN101322101A/zh active Pending
- 2006-11-28 JP JP2008542861A patent/JP2009517752A/ja active Pending
-
2009
- 2009-08-18 US US12/542,840 patent/US8069136B2/en not_active Expired - Fee Related
-
2011
- 2011-11-04 US US13/289,246 patent/US20120054781A1/en not_active Abandoned
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255868A (zh) * | 2010-05-21 | 2011-11-23 | 卓望数码技术(深圳)有限公司 | 一种广告发布系统和广告发布方法 |
CN103150513A (zh) * | 2013-03-20 | 2013-06-12 | 北京奇虎科技有限公司 | 拦截应用程序中的植入信息的方法及装置 |
CN103150513B (zh) * | 2013-03-20 | 2015-12-09 | 北京奇虎科技有限公司 | 拦截应用程序中的植入信息的方法及装置 |
CN106232194A (zh) * | 2014-04-22 | 2016-12-14 | 索尼互动娱乐股份有限公司 | 游戏递送设备、游戏递送方法和游戏递送程序 |
CN106232194B (zh) * | 2014-04-22 | 2020-06-30 | 索尼互动娱乐股份有限公司 | 游戏递送设备、游戏递送方法和游戏递送程序 |
CN104573334A (zh) * | 2014-12-24 | 2015-04-29 | 珠海金山网络游戏科技有限公司 | 一种利用标签事件触发特效和音效的播放系统和方法 |
CN110121380A (zh) * | 2016-11-22 | 2019-08-13 | 索尼互动娱乐有限责任公司 | 通过仿真进行重新录制 |
CN110121380B (zh) * | 2016-11-22 | 2022-03-29 | 索尼互动娱乐有限责任公司 | 通过仿真进行重新录制 |
CN114610405A (zh) * | 2022-03-03 | 2022-06-10 | 深圳盛显科技有限公司 | 一种多应用截屏及网络编码输出方法、设备、介质、产品 |
CN114610405B (zh) * | 2022-03-03 | 2024-03-29 | 深圳盛显科技有限公司 | 一种多应用截屏及网络编码输出方法、设备、介质、产品 |
Also Published As
Publication number | Publication date |
---|---|
KR20080076919A (ko) | 2008-08-20 |
CA2631772C (en) | 2015-01-27 |
US20090307173A1 (en) | 2009-12-10 |
US8069136B2 (en) | 2011-11-29 |
KR100968661B1 (ko) | 2010-07-06 |
JP2009517752A (ja) | 2009-04-30 |
US20120054781A1 (en) | 2012-03-01 |
WO2007063422A2 (en) | 2007-06-07 |
US7596540B2 (en) | 2009-09-29 |
WO2007063422A3 (en) | 2007-11-08 |
EP1960871A2 (en) | 2008-08-27 |
CA2631772A1 (en) | 2007-06-07 |
US20070130292A1 (en) | 2007-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101322101A (zh) | 用于动态增强在计算装置上执行的应用程序的系统、方法和计算机程序产品 | |
Du et al. | Zero latency: Real-time synchronization of BIM data in virtual reality for collaborative decision-making | |
JP6649426B2 (ja) | 表示制御プログラム、コンピュータ装置、表示制御方法及び表示制御システム | |
CN103608811B (zh) | 用于所连接的设备的上下文感知应用模型 | |
CN101553771B (zh) | 绘制超文本标记语言内容 | |
CN104246659B (zh) | 可实例化的手势对象 | |
US20090132403A1 (en) | Licensing interface for user generated content | |
JP2020099725A (ja) | タグコンテンツおよびソーシャルネットワークコンテンツに基くクラウドで実行されたミニゲームをランク付けするシステムおよび方法 | |
US20140047413A1 (en) | Developing, Modifying, and Using Applications | |
CN103902806A (zh) | 用于对共享云执行迷你游戏的内容进行标记的系统和方法以及标签共享控件 | |
CN101661504A (zh) | 动态改变播放列表 | |
CN102918491B (zh) | 在用户界面内再现不兼容内容 | |
US20090132422A1 (en) | Machine-readable and enforceable license | |
CN105721608A (zh) | 用于处理器可执行内容的传送的方法和系统 | |
CN101917392A (zh) | 视频游戏开发系统的通信集线器 | |
CN104885074A (zh) | 管理设计数据的云平台 | |
CN103874993A (zh) | 用于将媒体资产分类的方法以及用户界面 | |
US8448190B2 (en) | Methods, systems, and computer readable media for high reliability downloading of background assets using a manifest in a virtual world application | |
JP5246680B2 (ja) | コンテンツ提供装置、コンテンツ提供方法及びそのためのコンピュータプログラム | |
Klein et al. | Configurable instances of 3D models for declarative 3D in the web | |
US10067775B2 (en) | Guided authoring of interactive content | |
Furtado et al. | Sharpludus: improving game development experience through software factories and domain-specific languages | |
Alspaugh et al. | Using social agents to visualize software scenarios | |
US8972476B2 (en) | Evidence-based virtual world visualization | |
Wildermuth | Essential Windows Phone 7.5: Application Development with Silverlight |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081210 |