Source: http://www.google.com/patents/US8060460?dq=4168396
Timestamp: 2014-03-08 05:14:37
Document Index: 15314438

Matched Legal Cases: ['Application No. 60', 'art 600', 'art 600', 'art 600', 'art 1402', 'art 1402', 'art 1402', 'art 1402', 'art 1402', 'art 1302', 'art 700', 'art 700', 'art 1502', 'art 1502', 'Application No. 06842386', 'Application No. 07825314', 'Application No. 07825369', 'Application No. 07825369', 'Application No. 07872836', 'Application No. 08830539', 'Application No. 10']

Patent US8060460 - System, method and computer program product for dynamically measuring ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA system, method and computer program product for dynamically measuring attributes of objects rendered and/or referenced by an executing software application without having to change and recompile the original application code. The system includes a staging environment that monitors the execution of...http://www.google.com/patents/US8060460?utm_source=gb-gplus-sharePatent US8060460 - System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing deviceAdvanced Patent SearchPublication numberUS8060460 B2Publication typeGrantApplication numberUS 12/542,902Publication dateNov 15, 2011Filing dateAug 18, 2009Priority dateDec 1, 2005Also published asEP2024827A2, US7596536, US20070129146, US20100036785, US20120291032, WO2008020317A2, WO2008020317A3Publication number12542902, 542902, US 8060460 B2, US 8060460B2, US-B2-8060460, US8060460 B2, US8060460B2InventorsYoav M. Tzruya, Itay NaveOriginal AssigneeExent Technologies, Ltd.Export CitationBiBTeX, EndNote, RefManPatent Citations (87), Non-Patent Citations (29), Referenced by (5), Classifications (25), Legal Events (2) External Links: USPTO, USPTO Assignment, EspacenetSystem, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing deviceUS 8060460 B2Abstract A system, method and computer program product for dynamically measuring attributes of objects rendered and/or referenced by an executing software application without having to change and recompile the original application code. The system includes a staging environment that monitors the execution of the application and indexes items of graphical and/or audio information generated by the application into a first database. A second database is populated with one or more business rules, wherein each business rule is associated with one or more of the indexed objects. The system further includes a run-time environment that identifies items of graphics and/or audio information as they are generated by the application during run-time, uses the second database to determine if an identified item is associated with a business rule, and, responsive to a determination that an identified item is associated with a business rule, measures the object and its related attributes.
CROSS-REFERENCE TO RELATED APPLICATIONS The present application is a continuation of U.S. patent application Ser. No. 11/472,454, filed Jun. 22, 2006, which claims the benefit of U.S. Provisional Patent Application No. 60/797,669 filed on May 5, 2006 and is a continuation-in-part of U.S. Non-Provisional patent application Ser. No. 11/290,830 filed on Dec. 1, 2005. Each of these applications is incorporated herein by reference.
It is of interest to various parties that make such applications available to end-users (for example, publishers, retailers and service providers) to augment some of the graphics and audio information rendered by these applications based on a dynamic set of �business rules�. For example, such business rules could be used to display advertising content on a graphics element rendered by a video game or to insert advertising content within an audio stream played by the video game. Ideally, the dynamic nature of the business rules would allow them to be periodically changed. For example, it would be advantageous if the inserted advertising content could be changed on a periodic basis.
One possible method of achieving this is to embed the business rules directly in the original application logic, or �source code�, and then to recompile the application with those business rules. However, this technique of coding and recompiling an application to accommodate the business rules might not be achievable for all software applications. By way of example, the party wishing to insert the business rule might not have access to the source code. As another example, the application that is sought to be enhanced may already have been deployed in the field or purchased by consumers or others.
What is desired then is a system, method and computer program product for dynamically enhancing an application, such as a video game, executing on a computing device, without having to change and recompile the original application code. Dynamically enhancing the application should include the ability to dynamically modify graphics and/or audio information generated by the application during execution, to dynamically render additional graphics and/or audio information during execution of the application, or to perform other functions relating to the executing application that are not provided for or invoked by the source code of the application. What is also desired is a system, method and computer program product for dynamically tracking and determining the impact of objects rendered and/or referenced by an application, without having to change and recompile the original application code. It is desired to track and measure the impact of applications enhanced as described herein, and also track and measure applications without such enhancements (i.e., in their original form). This latter case may be used in order to collect valuable information to understand the �rating� (according to popularity, exposure parameters, etc.) of each such original object to later on be able to prioritize where one may want to advertise, or what objects one may want to measure/track.
BRIEF SUMMARY OF THE INVENTION The present invention provides a system, method and computer program product for dynamically enhancing an application, such as a video game, executing on a computing device, without having to change and recompile the original application code. In one implementation, dynamically enhancing the application includes the ability to dynamically modify graphics and/or audio information generate by the application during execution. In another implementation, dynamically enhancing the application includes the rendering of additional graphics and/or audio content during execution of the application. In still other implementations, dynamically enhancing the application includes the performance of other functions relating to the executing application that are not provided for or invoked by the source code of the application, such as measuring and tracking the exposure of objects of interest.
In one implementation, a system in accordance with an embodiment of the present invention includes a staging environment that monitors the execution of the application and indexes a subset of items of graphics and/or audio information generated by the application into a first database. The subset may be small or encompass all the objects and information generated by the application. Note that the staging environment is not required in all embodiments. For example, in the case where one wants to calculate the �rating� of various objects inside the game, one may want to track all objects in the production (run-time) environment in order to know what objects are more valuable than others. A system administrator or other entity then populates a second database by manual or automated means with one or more business rules, wherein each business rule is associated with zero or more of the items indexed in the first database. Business rules may also instruct the run-time systems (as follows), on what objects to measure/track. The system further includes a run-time environment that identifies items of graphics and/or audio information as they are generated by the application during run-time, uses the second database to determine if an identified item is associated with a business rule, and, responsive to a determination that an identified item is associated with a business rule, applies the business rule. Application of the business rule may result in the modification of graphics and/or audio information generated by the application during execution, the rendering of additional graphics and/or audio information, or the performance of other functions relating to the executing application that are not provided or invoked by the source code of the application, including the measurement of specific objects.
DETAILED DESCRIPTION OF THE INVENTION I. System for Dynamically Enhancing a Software Application Executing on a Computing Device FIG. 1 illustrates the hardware components of an exemplary system 100 that facilitates the dynamic enhancement of an application executing on a computing device in accordance with an embodiment of the present invention. As shown in FIG. 1, system 100 includes both a staging environment 102 and a run-time environment 106. Staging environment 102 performs processing steps that must occur to facilitate operations that will later be performed by run-time environment 106. In particular, and as will be explained in more detail herein, staging environment 102 monitors a software application, such as a video game, during execution on a computing device, identifies graphics and audio objects generated by the application, and indexes each of these objects in a staging environment information database 104 along with a unique identifier (ID). Ideally, this process need only be carried out once per software application.
As will be described in more detail herein, after staging environment information database 104 has been populated by staging environment 102, a system administrator or other entity then populates a business rules database 108 by manual or automated means with a set of �business rules�, wherein each business rule in database 108 is associated with one or more of unique IDs of objects indexed in staging environment information database 104.
Run-time environment 106 represents the environment in which an end-user actually runs the application software. The application is the �same� as the application executed in staging environment 102 in that it is another copy or instance of essentially the same computer program, although it need not be completely identical. As will be described in more detail herein, run-time environment 106 monitors the execution of the application on a computing device and also identifies application-generated graphics and audio objects. If run-time environment 106 determines that an object generated by the application matches a business rule associated with the above-mentioned object in business rules database 108, then it applies the business rule. The business rule may be used, for example, to determine whether or not to modify the object in run-time (i.e., during execution of the software application) although other business rules will also be described herein.
Another method that may be used is to intercept or �hook� function calls to the API using the Detours hooking library published by Microsoft� of Redmond, Wash. Hooking may also be implemented at the kernel level. Kernel hooking may include the use of an operating system (OS) ready hook to enable a notification routine for an API being called. Another technique is to replace the OS routines by changing the pointer in the OS API table to a hook routine pointer, chaining the call to the original OS routine before and/or after the hook logic execution. Another possible method is API-based hooking technique the performs the injection of a DLL to any process that is being loaded, by setting a system global hook or by setting a registry key to load such a DLL. This injection is done only to have the hook function running in the process address space. While the OS loads such a DLL, a DLL initialization code changes the desired DLL dispatch table. Changing the table causes the pointer to the original API implementation to point to the DLL implementation (only to the desired API) and thus hooking the API. Hooking techniques are described, for example, at the web page http://www.codeguru.com/system/apihook.html. Note that the above described hooking techniques are presented only by way of example, and are not meant to limit the invention to any of these techniques. Other tools and methods for intercepting function calls to graphics or audio APIs are known to persons skilled in the relevant art(s).
As further shown in FIG. 2, run-time environment 106 includes an application 210, an interception component 212, business logic 214, and low-level graphics/audio functions 216. Application 210 is the �same� as application 202 of staging environment 102 in that it is another copy or instance of essentially the same computer program, although it need not be completely identical. Low-level graphics/audio functions 216 are software functions resident in memory of the computer system that are accessible to application 210 and that assist application 210 in the rendering of application-generated graphics information and the playing of application-generated audio information. Low-level graphics/audio functions 208 and 216 are similar in the sense that they provide the same functionality and services to application 202 and application 210, respectively, through similar APIs.
In one implementation, staging environment information database 104 is created or populated in local memory of the computer system of staging environment 102. A system administrator or other entity then populates business rules database 108 by manual or automated means with one or more business rules, wherein each business rule is associated with one or more of the objects indexed in the first database. The association between the business rule and an object is created by forming a relationship between the business rule and the unique ID of the object in database 108. In one implementation, a �wild card� scheme is used to permit a single business rule to be associated with a group of logically-related objects.
II. Method for Dynamically Enhancing a Software Application Executing on a Computing Device FIG. 6 illustrates a flowchart 600 of a method for facilitating the dynamic enhancement of an application executing on a computing device in accordance with an embodiment of the present invention. FIG. 6 essentially describes the processing steps carried out by staging environment 102 with respect to the handling of a single graphics or audio function call generated by a single software application. Persons skilled in the relevant art(s) will readily appreciate that a software application will likely generate numerous such function calls, and thus that the method of flowchart 600 would likely be carried out numerous times during execution of the software application. The method will now be described in part with continued reference to certain software components illustrated in FIG. 2 and described above in reference to that figure. However, persons skilled in the relevant art(s) will appreciate that the method of flowchart 600 is not limited to that implementation.
At step 708, business logic 214 determines if the identified object is associated with at least one business rule in business rule database 108. This step may include comparing the identified object, or a portion thereof, to a graphics or audio object, or portion thereof, stored in database 108. Alternatively, this step may include calculating a unique ID for the identified object and then comparing the unique ID for the identified object to a set of unique IDs stored in database 108. For example, as described above in reference to FIG. 6, the unique ID may comprise an error correction code, such as a CRC, calculated based on all or a portion of the content of the identified object, or a signature, such as an MD5 hash signature, derived by applying an encryption and/or hashing algorithm to all or a portion of the content of the identified object. It should be noted that �wild cards� or other logical groupings of objects may be used in accordance with the present invention to associate a business rule with multiple objects. For example, business rules database 108 may include business rules that will be applied to all objects identified by a catch-all matching expression.
In fact, the business rule need not include the rendering of any graphics information or playing of any audio information. Instead the business rule may simply consist of performing some activity within the context of software application 210 in response to the identification of a certain graphics or audio object by interception component 212. By way of example, the business rule may include moving pointers associated with user input devices to predefined regions of the display screen (useful for auto-aiming in shooting games or for automatic orientation within on-screen game menus), generating a key sequence (such as inputting �cheat codes�), logging and/or reporting a user's progress within the software application, or other activities. Each of these events can be performed before, instead of, or after the graphics or audio object associated with an intercepted function call has been rendered or played by the original non-emulated low-level graphics or audio libraries.
III. Distribution/Installation of Software Components to Run-Time Environment As described above, an embodiment of the present invention facilitates the application of business rules to a software application executing on a computing device, thereby permitting the application to be enhanced in a dynamic manner that does not require modifying and recompiling the original application code. Additionally, because an embodiment of the invention can be implemented in run-time environment 106 using emulated libraries, the operation can be essentially transparent to the end user. Indeed, aside from the installation of the necessary software components (i.e., interception component 212, business logic 214, and optionally business rules database 108) in run-time environment 106, the end user need not take any proactive steps to link or interface the software application with an external software component.
IV. Example Applications of the Present Invention Some exemplary applications of the present application will now be described. These examples are provided for illustrative purposes only and are not intended to limit the present invention in any way.
An implementation of the present invention facilitates the embedding of in-game advertising in games that were not designed to support such a feature. In accordance with this implementation, staging environment 102 operates to index the texture of a game-related surface, such as the hood of a car in a racing game, in staging environment information database 104. A system administrator then defines a business rule to overlay the hood of the car with a logo associated with an advertised product. That business rule is captured in business rules database 108 where it is associated with the texture for the hood of the car. In run-time environment 106, interception component 212 identifies the texture as it is accessed for rendering on an end-user's computer and business logic 214 matches it to the business rule stored in database 108. As a result, the business rule is applied to augment the image of the texture for the car hood with the product logo and to render the manipulated image to the screen. The end result is that the product logo will be displayed upon the car hood �inside� the graphic display associated with the game.
In a further embodiment of the present invention, run-time environment 106 further includes logic for capturing input/output (I/O) from an end user device, such as a keyboard or mouse. The software components for such an embodiment are shown in FIG. 9. In particular, as shown in FIG. 9, the software components of run-time environment 106 include an application 910, low-level graphics/audio functions 916, and an interception component 912 �inserted� between them that is in communication with business logic 914, similar to the software architecture shown in FIG. 2. However, in the implementation shown in FIG. 9, an additional I/O capture component 918 has been provided that allows business logic 914 to monitor events associated with the use of a user input device such as a keyboard or mouse. In one implementation, this monitoring is achieved by emulating functions associated with processing mouse or keyboard input.
a. Creating a search engine for the game. Allowing, for example, a search for all the users that have reached a certain level, that possess a certain weapon, etc. b. Creating centralized leader boards and high-score tables, based on tracking the on-screen display of such scores. c. Analyzing the information for product improvements (e.g., how much time do users spend on fighting a certain �bad guy� in the game, in order not to make the game too difficult or too easy). V. Dynamically Measuring Properties of Objects This section describes additional embodiments of the present invention. These embodiments relate to techniques for dynamically tracking and determining the impact of objects rendered and/or referenced by an application executing in a computer, without having to change and/or recompile the original application code.
A. Overview As described above, while an application is running on a computer device, it is possible to identify when a specific object is rendered or otherwise referenced, and execute a business rule associated with the object. For example, in the case where the object is a graphic texture, the associated business rule might replace the original texture with a new texture, or play an audio file. Where the invention is used in the in-game advertising field, the new texture or audio file might be associated with an advertisement. In this example, which is provided for purposes of illustration and not limitation, the invention enables the dynamic insertion of advertising content into a computer game, without requiring changes in the computer game itself.
a. Object size on screen. b. Object orientation: The angle of the display of the object in relation to the viewer. c. Collisions with other objects: Whether the object collides with another object. d. Collusion/hiding or partial hiding relation between objects (including transparency). e. Determination if an object is in view or partially in view (as a result of clipping of a scene). f. Distance from viewport/camera. g. Distance between objects. h. Object display time. Measuring such object properties is useful for many applications. Consider computer games, wherein the display is dynamic and changes according to the behavior of the game and the decisions made by the user. Accordingly, with in-game advertising, the location and size of advertisements vary over time. As such, there is a need to measure, for example, the actual display of each advertisement according to the total time it was seen, the number of times it was seen more than N seconds, its display size, the angle in which it was viewed, whether or not it was hidden behind another non-transparent object, etc. Also, in embodiments, there is a need to calculate the �rating� of individual objects inside the game. Such ratings are useful in many respects, including but not limited to using rating information when developing/planning advertising campaigns. Tracking and measuring such object properties is useful for calculating advertising royalty fees for the in-game advertising field, as well as other fields.
Embodiments of the invention include an optional object tagging component 1202 shown in FIG. 12A, and an object measurement component 1204 shown in FIG. 12B. In an embodiment, the object tagging component 1202 is part of the staging environment 102 (FIG. 2), and may be a stand alone component, or may be part of another component, such as indexing component 206. Also, object tagging component 1202 is optional, as one may not want necessarily to pre-designate objects to be measured, but may want to instead provide rules or criteria that objects must satisfy (e.g., �all objects larger than 5% of the screen�) to be measured. Object measurement component 1204 is part of run-time environment 106, and may be a stand alone component, or may be part of another component, such as interception component 212 or business logic 214.
In step 1304, object tagging component 1202 identifies objects of interest. In an embodiment, such objects of interest are a subset of the objects indexed in staging environment information database 104. (In other embodiments, there may be objects of interest that are not indexed in staging environment information database 104. In still other embodiments, the staging environment information database 104 includes rules providing criteria that objects must satisfy in order to be considered objects of interest, without identifying individual objects) An �object of interest� is, for example, a graphical, audio or video object corresponding to an advertisement, or a graphical, audio or video object corresponding to a tournament, or any other object that one wishes to track and monitor, for whatever reason.
B. Operation of Object Tagging Component Flowchart 1402 in FIG. 14 represents the operation of object tagging component 1202 as it identifies objects of interest, and as it tags such objects of interest. In other words, flowchart 1402 shows in greater detail the operation of object tagging component 1202 as it performs steps 1304 and 1305 of FIG. 13.
If the object satisfies the tagging criteria, then in step 1408 the object tagging component 1202 tags the object. By �tagging the object,� it is meant that the object is somehow marked or otherwise distinguished so that, in the future, the object can be identified as being an object of interest (i.e., as being an object that one wishes to track and measure). There are many ways of tagging the object. For example, object tagging component 1202 may set a flag or insert other tagging indicia into the object's entry in the staging environment information database 104 (see step 1410), or may create a new table, such as a new hash table, and insert information identifying the object (such as a CRC of the object) into the hash table (only tagged objects would be represented in this new table). Additionally, in embodiments, an opportunity may be provided to augment information on the object, such as providing a name or description of the object (see step 1412). This can be done manually by an administrator, for example, and can be part of the process of FIG. 14, or can be performed off-line.
a. Navigate between all objects or a subset of the objects on the screen (e.g., objects that meet certain criteria). Objects that the user is currently �selecting� can be highlighted by intercepting calls for their rendering by interception component 204 and altering such rendering with additional information. For example, this is shown in the example of FIG. 19, by the white boundary boxes around the camel). b. Choose/Tag a certain object. c. (Optionally) Pop-up an interactive form for the user to allow entering additional data about the tagged object. In certain embodiments, step 1414 is not performed, in which case flowchart 1402 is performed entirely automatically by object tagging component 1202. In other embodiments, tagging of objects is performed entirely manually. In still other embodiments, flowchart 1402 is performed automatically with some user interaction, in the manner described above. In still other embodiments, flowchart 1402 is not performed at all and rules are defined to provide criteria for objects to be measured, without identifying individual objects.
C. Operation of Object Measurement Component Referring again to flowchart 1302 in FIG. 13, it was described above that steps 1306, 1308 and 1310 are performed by object measurement component 1204 in run-time environment 106. In an embodiment, such operation of object measurement component 1204 occurs during step 710 of flowchart 700 in FIG. 7. (The steps of flowchart 700 were described above, and that description is not repeated here.)
As described above, during step 710, business logic 214 applies business rule(s) that are applicable to the object being processed (referred to above as the �identified object�). In an embodiment, such business rules include �measurement business rules� that, when applied, cause the object measurement component 1204 to determine, measure and/or collect attribute information on the identified object. (As noted above, object measurement component 1204 may be a separate component in run-time environment 106, or may be part of business logic 214.) The operation of this embodiment is represented by flowchart 1502 in FIG. 15A. Flowchart 1502 includes steps 1501, 1503, 1504 and 1508, which collectively correspond to steps 1306, 1308 and 1310. Note that as it relates to measurement, in an embodiment, step 706 may take the form of a generic question, and not just an object identification criteria, for example��does the object occupy X % of the screen?� Such generic criteria may be retrieved from business rules database 108 or other information sources, such as but not limited to staging environment information database 104.
D. Determining the Impact of a Tagged Object In this section, steps 1508, 1608 and 1558 are described in more detail.
E. Measurement Examples As described above, object measurement component 1204 in step 1708 determines, measures and/or collects attribute information pertaining to the tagged object. Embodiments for determining, measuring and/or collecting such attribute information are described in this section. These embodiments are provided for purposes of illustration, and not limitation. Other techniques for determining, measuring and/or collecting object attribute information will be apparent to persons skilled in the relevant art(s).
�In-view� check determines if an object is located within the viewport. In-view check is interesting because some applications render objects that are not visible from the viewport.
VI. Example Computer System Implementation FIG. 11 depicts an example computer system 1100 that may be utilized to implement either staging environment 102 or run-time environment 106. However, the following description of computer system 1100 is provided by way of example only and is not intended to be limiting. Rather, as noted elsewhere herein, staging environment 102 and run-time environment 106 may each comprise a server, a console, a personal digital assistant (PDA), or any other computing device that is capable of executing software applications and displaying associated application-generated graphics and audio information to an end-user.
As used herein, the term �computer program product� may refer, in part, to removable storage unit 1118, removable storage unit 1122, a hard disk installed in hard disk drive 1112, or a carrier wave carrying software over communication path 1126 (wireless link or cable) to communication interface 1124. A computer useable medium can include magnetic media, optical media, or other recordable media, or media that transmits a carrier wave or other signal. These computer program products are means for providing software to computer system 1100.
VII. Conclusion While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5687376Dec 15, 1994Nov 11, 1997International Business Machines CorporationSystem 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 operationUS5737553Jul 14, 1995Apr 7, 1998Novell, Inc.Colormap system for mapping pixel position and color index to executable functionsUS5905492Dec 6, 1996May 18, 1999Microsoft CorporationDynamically updating themes for an operating system shellUS5991836May 2, 1997Nov 23, 1999Network Computing Devices, Inc.System for communicating real time data between client device and server utilizing the client device estimating data consumption amount by the serverUS6021438Jun 18, 1997Feb 1, 2000Wyatt River Software, Inc.License management system using daemons and aliasingUS6036601Feb 24, 1999Mar 14, 2000Adaboy, Inc.Method for advertising over a computer network utilizing virtual environments of gamesUS6047123Mar 27, 1997Apr 4, 2000Hewlett-Packard CompanyMethods for recording a compilable graphics call traceUS6163317Apr 17, 1998Dec 19, 2000International Business Machines CorporationMethod and apparatus for dynamically grouping objectsUS6202058 *Apr 25, 1994Mar 13, 2001Apple Computer, Inc.System for ranking the relevance of information objects accessed by computer usersUS6278966Jun 18, 1998Aug 21, 2001International Business Machines CorporationMethod and system for emulating web site traffic to identify web site usage patternsUS6311221Jul 22, 1998Oct 30, 2001Appstream Inc.Streaming modulesUS6314470Jul 25, 1997Nov 6, 2001Hewlett Packard CompanySystem and method for asynchronously accessing a graphics system for graphics application evaluation and controlUS6330711Jul 30, 1998Dec 11, 2001International Business Machines CorporationMethod and apparatus for dynamic application and maintenance of programsUS6539544Aug 24, 1998Mar 25, 2003Sony CorporationGame machine system, broadcasting system, data distribution system, and method, program executing apparatus and methodUS6616533May 31, 2000Sep 9, 2003Intel CorporationProviding advertising with video gamesUS6631423Mar 31, 1998Oct 7, 2003Hewlett-Packard Development Company, L.P.System and method for assessing performance optimizations in a graphics systemUS6785659Jul 13, 1999Aug 31, 2004Unicast Communications CorporationAgent-based technique for implementing browser-initiated user-transparent interstitial web advertising in a client computerUS6802055Jun 27, 2001Oct 5, 2004Microsoft CorporationCapturing graphics primitives associated with any display object rendered to a graphical user interfaceUS6868525May 26, 2000Mar 15, 2005Alberti Anemometer LlcComputer graphic display visualization system and methodUS6907566Apr 2, 1999Jun 14, 2005Overture Services, Inc.Method and system for optimum placement of advertisements on a webpageUS6954728 *Sep 29, 2000Oct 11, 2005Avatizing, LlcSystem and method for consumer-selected advertising and branding in interactive mediaUS7003781May 5, 2000Feb 21, 2006Bristol Technology Inc.Method and apparatus for correlation of events in a distributed multi-system computing environmentUS7076736 *Nov 30, 2001Jul 11, 2006Thebrain Technologies Corp.Method and apparatus for sharing many thought databases among many clientsUS7120619Apr 22, 2003Oct 10, 2006Microsoft CorporationRelationship viewUS7246254Jul 16, 2003Jul 17, 2007International Business Machines CorporationSystem and method for automatically and dynamically optimizing application data resources to meet business objectivesUS7436406Jul 11, 2003Oct 14, 2008Raytheon CompanyScene graph based display for desktop applicationsUS7487112May 23, 2002Feb 3, 2009Barnes Jr Melvin LSystem, method, and computer program product for providing location based services and mobile e-commerceUS7596536Jun 22, 2006Sep 29, 2009Exent 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 deviceUS7596540Dec 1, 2005Sep 29, 2009Exent Technologies, Ltd.System, method and computer program product for dynamically enhancing an application executing on a computing deviceUS20020002568Feb 5, 2001Jan 3, 2002Judson David H.Popup advertising display in a web browserUS20020038344 *Nov 16, 2001Mar 28, 2002Craig UllmanEnhanced video programming system and method for incorporating and displaying retrieved integrated internet information segmentsUS20020040322Dec 6, 2001Apr 4, 2002Sony CorporationApparatus and method for executing a game program having advertisements thereinUS20020099837Nov 19, 2001Jul 25, 2002Naoyuki OeInformation processing method, apparatus, and system for controlling computer resources, control method therefor, storage medium, and programUS20020112033Aug 8, 2001Aug 15, 2002Doemling Marcus F.Content enhancement system and methodUS20020129349Aug 24, 1998Sep 12, 2002Kan EbisawaGame machine system, broadcasting system, data distribution system, and method, program executing apparatus and methodUS20020147858Feb 14, 2001Oct 10, 2002Ricoh Co., Ltd.Method and system of remote diagnostic, control and information collection using multiple formats and multiple protocols with verification of formats and protocolsUS20020154214Nov 2, 2001Oct 24, 2002Laurent ScallieVirtual reality game system using pseudo 3D display driverUS20020178302May 25, 2001Nov 28, 2002Tracey David C.Supplanting motif dialog boxesUS20030045358Jul 12, 2002Mar 6, 2003Leen Fergus A.System and method for providing enhanced services to a user of a gaming applicationUS20030131286Nov 19, 2002Jul 10, 2003Kaler Christopher G.Method and apparatus for analyzing performance of data processing systemUS20030167202Jul 18, 2001Sep 4, 2003Marks Michael B.Methods of payment for internet programmingUS20030204275Apr 26, 2002Oct 30, 2003Krubeck Ronald LeeSports charting systemUS20030208754May 1, 2002Nov 6, 2003G. SridharSystem and method for selective transmission of multimedia based on subscriber behavioral modelUS20040039496Jul 11, 2003Feb 26, 2004Dautelle Jean-Marie R.Scene graph based display for desktop applicationsUS20040083133Jun 6, 2003Apr 29, 2004Nicholas Frank C.Method and system for providing network based target advertising and encapsulationUS20040116183 *Dec 16, 2002Jun 17, 2004Prindle Joseph CharlesDigital advertisement insertion system and method for video gamesUS20040122940Dec 20, 2002Jun 24, 2004Gibson Edward S.Method for monitoring applications in a network which does not natively support monitoringUS20040133876Jun 2, 2003Jul 8, 2004Craig SprouleSystem and method for the composition, generation, integration and execution of business processes over a networkUS20040148221 *Jan 24, 2003Jul 29, 2004Viva ChuOnline game advertising systemUS20040183824Mar 21, 2003Sep 23, 2004Benson Rodger WilliamInterface for presenting data representations in a screen-area insetUS20040189671Jul 4, 2001Sep 30, 2004Masne Jean- Francois LeMethod and system for transmission of data for two-or three-dimensional geometrical entitiesUS20040217987May 1, 2003Nov 4, 2004Solomo AranMethod and system for intercepting and processing data during GUI sessionUS20050015641Jul 16, 2003Jan 20, 2005International Business Machines CorporationSystem and method for automatically and dynamically optimizing application data resources to meet business objectivesUS20050068567Mar 30, 2004Mar 31, 2005Hull Jonathan J.Printer with audio or video receiver, recorder, and real-time content-based processing logicUS20050223355Mar 31, 2004Oct 6, 2005Gerd ForstmannAiding a user in using a software applicationUS20050246174Jun 16, 2005Nov 3, 2005Degolia Richard CMethod and system for presenting dynamic commercial content to clients interacting with a voice extensible markup language systemUS20060085812Oct 15, 2004Apr 20, 2006Shishegar Ahmad RMethod for monitoring television usageUS20060128469Dec 13, 2005Jun 15, 2006Daniel WillisOnline video game advertising system and method supporting multiplayer adsUS20060143675Dec 19, 2005Jun 29, 2006Daniel WillisProxy advertisement server and methodUS20060155643Jan 7, 2005Jul 13, 2006Microsoft CorporationPayment instrument notificationUS20070006190Sep 8, 2006Jan 4, 2007Surasinghe Lakshitha CSystem and method for dynamic business logic rule integrationUS20070015574Jul 14, 2005Jan 18, 2007Microsoft CorporationPeripheral information and digital tells in electronic gamesUS20070061201Aug 30, 2006Mar 15, 2007Ellis Richard DMethod and system for modifying object behavior based upon dynamically incorporated advertising contentUS20070072676Sep 29, 2005Mar 29, 2007Shumeet BalujaUsing information from user-video game interactions to target advertisements, such as advertisements to be served in video games for exampleUS20070126749Oct 27, 2006Jun 7, 2007Exent 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 applicationUS20070129146Jun 22, 2006Jun 7, 2007Exent 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 deviceUS20070129990Jul 25, 2006Jun 7, 2007Exent 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 gameUS20070130292Dec 1, 2005Jun 7, 2007Yoav TzruyaSystem, method and computer program product for dynamically enhancing an application executing on a computing deviceUS20070143603Dec 15, 2005Jun 21, 2007Authentica, Inc.Method and system for dynamically generating a watermarked document during a printing or display operationUS20070168309Oct 11, 2006Jul 19, 2007Exent Technologies, Ltd.System, method and computer program product for dynamically extracting and sharing event information from an executing software applicationUS20070296718Jul 18, 2007Dec 27, 2007Exent Technologies, Ltd.Dynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics contentUS20080009344Jul 9, 2007Jan 10, 2008IgtIntegrating remotely-hosted and locally rendered content on a gaming deviceUS20090307173Aug 18, 2009Dec 10, 2009Exent Technologies, Ltd.System, method and computer program product for dynamically enhancing an application executing on a computing deviceJP2001312286A Title not availableJP2003044297A Title not availableKR20050111581A Title not availableWO1991015921A1Apr 10, 1991Oct 17, 1991Multi Media TechProcess and device for modifying a zone of successive imagesWO1995025399A1Feb 27, 1995Sep 21, 1995Yoel AmirA system for implanting an image into a video streamWO1999024904A1Nov 3, 1998May 20, 1999Intergraph CorpApparatus and method for logging information relating to function calls to a function libraryWO2000029964A1Nov 15, 1999May 25, 2000Aran ShlomoSoftware language translation system and methodWO2005096782A2Apr 6, 2005Oct 20, 2005Ask Jeeves IncMethods and systems for providing applications with internet search functionalityWO2007063422A2Nov 28, 2006Jun 7, 2007Exent Technologies LtdSystem, method and computer program product for dynamically enhancing an application executing on a computing deviceWO2007148233A2Apr 25, 2007Dec 27, 2007Exent Technologies LtdDynamically serving advertisements in an executing computer gameWO2008020313A2Apr 25, 2007Feb 21, 2008Exent Technologies LtdDynamically identifying, selecting and extracting objects rendered by a software applicationWO2008020317A2Apr 25, 2007Feb 21, 2008Exent Technologies LtdDynamically measuring properties of objects rendered and/or referenced by an applicationWO2008104834A2Oct 10, 2007Sep 4, 2008Exent Technologies LtdSystem, method and computer program product for dynamically extracting and sharing event information from an executing software applicationWO2009034478A2Jul 15, 2008Mar 19, 2009Exent Technologies LtdDynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics content* Cited by examinerNon-Patent CitationsReference1"Exent Technologies: In-Game Advertising", http://web.archive.org/web/20060504072829/http://exent-com/products-and-services/In-Game-Advertising.asp, retrieved Mar. 14, 2008, (May 4, 2006), 1 page.2"New In-Game Advertising Solution from Exent Technologies Provides Dramatic Increase in Ad Inventory Without Technical Integration", http://www.exent.com/news/pr/20060427.asp, retrieved Mar. 14, 2008, (Apr. 27, 2006), pp. 1-2.3"Exent Technologies: In-Game Advertising", http://web.archive.org/web/20060504072829/http://exent�com/products�and�services/In�Game�Advertising.asp, retrieved Mar. 14, 2008, (May 4, 2006), 1 page.4Chalil, et al., "MPEG-4 Based Framework for Game Engine to Handle Virtual Advertisements in Games", International Conference on Multimedia and Expo,(Jul. 6, 2003), pp. 413-416.5English translation of office action received for Japanese Appl. No. 2008-542861, mailed on Apr. 26, 2011, 10 pages.6Internation Preliminary Report Received for PCT Patent Application No. PCT/IB2007/003000, mailed on Nov. 20, 2008, 8 pages.7International Preliminary Report on Patentability Received for PCT Patent Application No. PCT/IB2006/003968, mailed on Jun. 12, 2008, 8 pages.8International Preliminary Report on Patentability Received for PCT Patent Application No. PCT/IB2007/003066, mailed on Nov. 20, 2008, 7 pages.9International Preliminary Report Received for PCT Patent Application No. PCT/IB2007/003063, mailed on Nov. 20, 2008, 7 pages.10International Preliminary Report Received for PCT Patent Application No. PCT/IB2007/004515, mailed on Apr. 23, 2009, 13 pages.11International Preliminary Report Received for PCT Patent Application No. PCT/IB2008/003387, mailed on Jan. 28, 2010, 8 pages.12International Search Report Received for PCT Patent Application No. PCT/IB2006/003968, mailed on Aug. 30, 2007, 14 pages.13International Search Report Received for PCT Patent Application No. PCT/IB2007/003000, mailed on Apr. 10, 2008, 14 pages.14International Search Report Received for PCT Patent Application No. PCT/IB2007/003063, mailed on Apr. 10, 2008, 13 pages.15International Search Report Received for PCT Patent Application No. PCT/IB2007/003066 , mailed on Apr. 10, 2008, 13 pages.16International Search Report Received for PCT Patent Application No. PCT/IB2007/004515, mailed on Feb. 18, 2009, 19 pages.17International Search Report Received for PCT Patent Application No. PCT/IB2008/003387, mailed on May 13, 2009, 27 pages.18Lipkie, et al., "Star graphics: An object oriented implementation", ACM; Computer Graphics; vol. 15, No. 3, (Jul. 1982), pp. 115-124.19Mohr, et al., "HijackGL: Reconstructing from Streams for Stylized Rendering", Association for Computing Machinery, Inc., (Jun. 3, 2002), pp. 13-20.20Office Action Received for European Patent Application No. 06842386.2, mailed Jul. 15, 2010, 4 pages.21Office Action Received for European Patent Application No. 07825314.3, mailed on May 15, 2009, 6 pages.22Office Action Received for European Patent Application No. 07825369.7, mailed on Jan. 18, 2010, 6 pages.23Office Action Received for European Patent Application No. 07825369.7, mailed on Mar. 13, 2009, 6 pages.24Office Action Received for European Patent Application No. 07872836.7, mailed on Jul. 19, 2007, 3 pages.25Office Action Received for European Patent Application No. 08830539.6, mailed on Jun. 10, 2010, 3 pages.26Office Action Received for Korean Patent Application No. 10-2008-7013180, mailed on Jun. 17, 2009, 6 pages of Office Action and 5 pages of English Translation.27Schu, M. et al., "System-on-Silicon solution for High Quality Consumer Video Processing The Next Generation", IEEE Transactions on Consumer Electronics, IEEE Service Center, New York, NY, US, vol. 47, No. 3, (Aug. 1, 2001), pp. 412-419.28Walders, et al., "glAnalyze-The Newest OpenGL Product", http://www.3dsite.com/n/sites/3dsite/newsletter/issues/10/sec12.html, retrieved Apr. 15, 2002, (Apr. 29, 1999), pp. 1-3.29Walders, et al., "glAnalyze�The Newest OpenGL Product", http://www.3dsite.com/n/sites/3dsite/newsletter/issues/10/sec12.html, retrieved Apr. 15, 2002, (Apr. 29, 1999), pp. 1-3.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS8250589 *Apr 3, 2009Aug 21, 2012Lsi CorporationMethod for simplifying interfaces having dynamic librariesUS8629885Oct 27, 2006Jan 14, 2014Exent 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 applicationUS20100026710 *Sep 23, 2008Feb 4, 2010Ati Technologies UlcIntegration of External Input Into an ApplicationUS20100257546 *Apr 3, 2009Oct 7, 2010Lynn James AMethod for simplifying interfaces having dynamic librariesEP2645293A2Mar 27, 2013Oct 2, 2013Eitan BauchMethod and apparatus for controlling operations performed by a mobile computing device* Cited by examinerClassifications U.S. Classification706/62, 705/1.1, 706/45, 706/52, 706/47, 706/46, 705/14.49, 705/14.73, 705/14.4, 706/48, 705/14.67International ClassificationG06F15/18, G06F15/00Cooperative ClassificationG06Q30/02, G06Q30/0241, G06Q30/0277, G06Q30/0271, G06F9/4443, G06Q30/0251European ClassificationG06F9/44W, G06Q30/02, G06Q30/0271, G06Q30/0241, G06Q30/0277, G06Q30/0251Legal EventsDateCodeEventDescriptionFeb 7, 2012CCCertificate of correctionAug 18, 2009ASAssignmentOwner name: EXENT TECHNOLOGIES, LTD.,ISRAELFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TZRUYA, YOAV;NAVE, ITAY;US-ASSIGNMENT DATABASE UPDATED:20100211;REEL/FRAME:23111/936Effective date: 20060620Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TZRUYA, YOAV;NAVE, ITAY;REEL/FRAME:023111/0936Owner name: EXENT TECHNOLOGIES, LTD., ISRAELRotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google