![]() |
Simulation program having generic attribute access schemaNo:6721696 -Application no:09513488 -Filed date:2000-02-25 -Issue date:2004-04-13Abstract:A computer program product is provided for use with a computer system to execute a simulation. The computer program product includes a plurality of service computer-readable program code means. The service program code means are configured to collectively determine simulated attributes of objects of an environment under simulated operation. Each service program code means is associated with at least a subset of object attributes in an object context. At least some of the service program code means include attribute accessing computer-readable program code means coupling the service program code means to the attributes in the object context for intercommunication therebetween and for operating upon the object attributes. The intercommunication is based on identifications of the attributes by the service programs that are recognizable by the object context. Mapping computer-readable program code means couple the at least some of the service programs to the object context, for mapping a user-expressed attribute name, not recognizable by the object context, to the identification of the attributes recognizable by the object context. US Classes:Inventors:Agents:Assignees:Claims:What is claimed is: 1. A computer program product for use with a computer system to execute a simulation, comprising: a plurality of service computer-readable program code means, the service program code means configured to collectively determine simulated attributes of objects of an environment under simulated operation, each service program code means associated with at least a subset of object attributes in an object context, and attribute accessing computer-readable program code means coupling the service program code means to the attributes in the object context for intercommunication therebetween based on user-expressed identifications of the attributes by the service programs that are not recognizable by the object context wherein the attribute accessing computer-readable program code means includes mapping computer-readable program code means for mapping a user-expressed attribute identification, provided from the service program and not recognizable by the object context, to an identification of the attributes recognizable by the object context so that the attributes may be accessed; and expression parsing computer-readable program code means, for converting a string representation of a mathematical expression including user-identified attribute names to a representation of the mathematical expression including corresponding identifications of the attributes that are recognizable by the object context. 2. The program product of claim 1, wherein the representation into which the expression parsing program means converts includes a tree structure of constituent mathematical functions. 3. A computer program product for use with a computer system to execute a simulation, comprising: a plurality of service computer-readable program code means, the service program code means configured to collectively determine simulated attributes of objects of an environment under simulated operation, each service program code means associated with at least a subset of object attributes in an object context, and attribute accessing computer-readable program code means coupling the service program code means to the attributes in the object context for intercommunication therebetween based on user-expressed identifications of the attributes by the service programs that are not recognizable by the object context wherein the attribute accessing computer-readable program code means includes mapping computer-readable program code means for mapping a user-expressed attribute identification, provided from the service program and not recognizable by the object context, to an identification of the attributes recognizable by the object context so that the attributes may be accessed; and wherein: each service program code means is executing at a rate independent of the other service code means; and the program product further comprises computer-readable program code means for coordinating the intercommunication between the service programs and the object context in a manner such that each service program has a coherent view of all the object attributes in the object context. 4. The program product of claim 3, and further comprising: computer-readable program code means for creating an attribute, the attribute creating program code means including program means for creating a map from a user-identified attribute identification to an attribute context that is part of the object context and further including computer-readable program code means for populating the attribute context with a value for the attribute; and computer-readable program code wherein the mapping program means is further for coupling the at least some of the service programs to the attribute context, for mapping the user-identified attribute identification to the corresponding value for the attribute in the attribute context. Text:TECHNICAL FIELDThe present invention relates to simulations and, in particular, to a simulation in which the various aspects of the simulation are executed asynchronously but communicate with each other in a safely synchronized manner. BACKGROUNDVirtual prototyping solutions can greatly accelerate product development. Obviously, the more accurately a solution simulates ârealityâ, the more confidence one can have in that solution. On the other hand, though, the most useful simulation is typically the one that not only simulates reality faithfully, but also takes the fewest resources to do so. Whereas reality is continuous in nature, computer simulations are forced to approximate the continuity by acting upon and examining and/or evaluating the simulation model only at discrete points in time. The greater the frequency at which the simulation model is examined, the more accurate is the simulation, since continuity is more closely approached. Thus, conventionally, simulations are designed such that the evaluation rate is high enough to sufficiently approximate reality (i.e., with acceptable error and without noticeable jumps in display), but not so fast that the computer's resources are completely exhausted. The evaluation rate required depends largely upon the rate at which the simulated events would occur in reality. For example, if modeling the fast-moving parts within an engine, the evaluation rate should be relatively high. On the other hand, modeling the slow buildup of heat within the engine could be carried out at a much slower rate. Furthermore, where visual interaction is important, evaluation. Since different aspects of a simulation occur with varying evaluation rate requirements, it would be preferable if each aspect executed at a rate most suitable to it. Unfortunately, conventional simulations force the entire simulation to execute at a common frequency. The common frequency is generally faster than required for some aspects of the simulation and perhaps slower than ideally required for other aspects of the simulation. For example, if the calculations of engine heat buildup could only be performed at once or twice a second due to the complexity of the calculations, the calculation of engine part positions could only be performed one or twice a second as well, even though it would be a much simpler calculation. Furthermore, visualization of movement around the engine would be seriously hampered, with position updates at only the once or twice per second rate. A typical solution to the evaluation rate problem discussed above is to perform the simulation in batch, allowing the user to inspect the results in detail once the simulation is completed. However, even once the simulation is compiled and running, it is many times desirable to be able to interact with the simulation to affect its operation while it's running. A disadvantage of this batch approach, then, is that the simulation cannot be interactive. What is desired is a simulation environment with which a user may easily interact. SUMMARYA computer program product is provided for use with a computer system to execute a simulation. The computer program product includes a plurality of service computer-readable program code means. The service program code means are configured to collectively determine simulated attributes of objects of an environment under simulated operation. Each service program code means is associated with at least a subset of object attributes in an object context. At least some of the service program code means include attribute accessing computer-readable program code means coupling the service program code means to the attributes in the object context for intercommunication therebetween and for operating upon the object attributes. The intercommunication is based on identifications of the attributes by the service programs that are recognizable by the object context. Mapping computer-readable program code means couple the at least some of the service programs to the object context, for mapping a user-expressed attribute name, not recognizable by the object context, to the identification of the attributes recognizable by the object context. BRIEF DESCRIPTION OF THE FIRURES DETAILED DESCRIPTIONA simulation environment Block Finally, block Now, the operation of the services execution block In accordance with an embodiment of the invention, the multiple services operate asynchronously, but data communication among the multiple asynchronously operating services is safely synchronized. This is accomplished even while accommodating the various asynchronous âframe ratesâ of the services. To support the multiple âviewsâ of object data required by various services. All objects to which access is required by a service are derived from a ânodeâ base class. The node interacts with services to provide frame safe access to its data members. Each node may maintain multiple ânode imagesâ for an object (or for a portion of an object). Each service potentially sees different sets of changes at various times, although all services are ultimately working on the same values. In one embodiment, to minimize the impact on memory, the data duplication occurs at a relatively fine granularity, within objects referred to as ânodesâ. Nodes are typically relatively small units (portions of object), and data copies are maintained only for those nodes requiring them. Thus, memory duplication is minimized. In one embodiment, a node does not actually contain attribute data itself. Rather, a node serves as a wrapper to one or more node images that contain the attribute data. While a node image actually contains data, a node includes âframe-safeâ methodology to provide the services access the data in the node images. That is, in essence, a node hides the âmulti-service issuesâ from the services. A service that needs to access the value of an object attribute requests the value from or writes the value to, a node corresponding to that object (or to the portion of the object that includes the attribute). The service passes an ID of the service as an argument to the node. The node uses the ID internally to manage multiple node images it may contain. The node determines which node image is accurate for the requesting service, and creates and deletes node images as needed to maintained the required âcleanâ copies. Before discussing in greater detail how a service accesses node data, though, it is useful to briefly discuss the âphasesâ of processing that a service executes. Next, the service enters a change request processing phase Finally, if the time period for this frame of the service has not expired by the end of the change request processing phase The processing of change requests is now described in greater detail. If either the node image is the latest image or a service other than the requesting service is referencing the node, then at step Then (or if the determination at step The notification (step Having described the operation of a service in isolation and also how a node reacts to change requests by a service, reference is now made to Turning now to Now, That is, Service B reads object attributes ( Now that an implementation of âframe safeâ simulation synchronization has been discussed in some detail, a particular implementation of an attribute scheme Without the use of attributes, a variable that is a hard-coded member of an object is typically accessible to a user only through direct methods (path Attributes may also be user-added (i.e., not mapped to a âhard-codedâ variable of the simulation). In this case, the attribute schema Attributes also enable a user to affect a component's behavior during simulations. That is, some built-in attributes contribute to a component's behaviorâwhat a component is capable of being or doing. For example, one attribute may be the x-y-z position of a component in a three-dimensional scene. The user can change or affect a component's behavior by modifying the values of an attribute associated with a component (again, typically via the generic attribute access user interface), and the user can also monitor the value of that attribute during a simulation. The base class for all ânodesâ (i.e., for all exposed objects in the system) provides generic methods for accessing the attributes, using strings as names of the variables. In operation, an attribute object dynamically maps the string-defined name of the attribute to the location at which the corresponding value is actually stored. This is regardless of whether the attribute corresponds to a âhard-codedâ variable or is user-added. This is in contrast to the way a code developer provides access to a member variable of an objectâby specifying the name of the member variable within the source code. That is, the operation of the attribute object provides a level of abstraction to match the string-defined name of the attribute to the storage location for the value in the object contents. Typically, the user would modify the values of the attribute using an attribute changer, such as Attribute Changer A or Attribute Changer B shown in FIG. Furthermore, in one embodiment, an expression parser is provided as part of the user interface to convert a string containing a mathematical formula, including attributes, into an expression to be analyzed, where the mathematical formula refers directly or indirectly to various variables. For example, the conversion may be into a tree of mathematical function objects. Because the formulas may use attributes as variables, the user can more easily phrase meaningful relationships of attributes dynamically. Even attributes added by the user dynamically can be accessed via such a mathematical expression, and both built-in attributes and user-defined attributes can be mixed within an expression. Typically, both the âtargetâ of an expression (i.e., the variable to which the result of evaluating the expression is to be assigned) as well as the âsourcesâ of the expression (i.e., the variables referenced in the expression itself) are specified by string-defined names of attributes. The attribute schema the user could simply use with v Attributes are accessed only by the services and, as such, the accesses are guaranteed to be âframe safeâ. It should be noted that the invention is to be defined by the claims, and not by the embodiment(s) just described. Field of search:References: |
Browse by classes
Agriculture
Animals Automotives and Transportation Business and Commerce Chemistry Communications Construction Containers Electricity Energy Engineering Entertainment Fashion and Accessories Food Hardware and Tools Health and Medicine Home Industrial Information Technology Machines Materials and Material Science Miscellaneous Optics Outdoors Paper and Office Materials Physics Sanitation Technology Textiles Weaponry
Advertisements
|
