Patents by Inventor Steven J. Drach
Steven J. Drach has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10489130Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system obtains one or more user-defined rules for configuring a memory layout of an object instance in a software program, wherein the one or more user-defined rules are created separately from source code for the software program. Next, the system generates the memory layout of the object instance by applying the one or more user-defined rules to one or more fields of the object instance. The system then executes the software program using the generated memory layout of the object instance.Type: GrantFiled: September 24, 2015Date of Patent: November 26, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Charles J. Hunt, Jean-François Denise, Steven J. Drach
-
Patent number: 10353793Abstract: The disclosed embodiments provide a system that facilitates the execution of a software program. During operation, the system determines a structure of a software program and an execution context for the software program from a set of possible execution contexts for the software program, wherein the software program includes one or more object instances. Next, the system uses the structure and the execution context to identify a portion of an object instance from the one or more object instances that is determined to inefficiently use memory space in the software program. The system then provides a refactoring of the object instance that reduces use of the memory space in the object instance.Type: GrantFiled: November 5, 2014Date of Patent: July 16, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Steven J. Drach, Jean-Francois Denise, Charles J. Hunt
-
Patent number: 10275154Abstract: The disclosed embodiments provide a system that facilitates the execution of a software program. During operation, the system obtains a set of artifacts associated with executing a software program. Next, the system uses the set of artifacts to determine an inheritance hierarchy associated with an artifact from the set of artifacts. The system then uses the inheritance hierarchy and the set of artifacts to generate a memory layout of an object instance represented by the artifact, wherein the memory layout includes a set of fields associated with a set of levels of the inheritance hierarchy.Type: GrantFiled: November 5, 2014Date of Patent: April 30, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Charles J. Hunt, Steven J. Drach, Jean-Francois Denise
-
Patent number: 10217254Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system displays a visualization of a memory layout of an object instance in a software program, wherein the visualization includes one or more fields in the object instance. Next, the system receives user input that customizes the memory layout. The system then processes the user input by updating the displayed visualization to reflect customization of the memory layout by the user input and storing, in association with the software program, one or more rules that, when processed during instantiation of the object instance, configure the memory layout of the object instance based on the user input.Type: GrantFiled: September 24, 2015Date of Patent: February 26, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Jean-Francois Denise, Charles J. Hunt, Steven J. Drach
-
Patent number: 10127136Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system obtains an execution unit associated with execution of a software program, wherein the execution unit includes a start and an end. Next, the system identifies a set of fields accessed within the execution unit. The system then calculates one or more memory distances among the set of fields from a set of memory addresses of the set of fields during runtime of the software program on the computer system, wherein the one or more memory distances include a difference in memory address between a first field and a second field in the set of fields. Finally, based at least in part on a memory distance in the one or more memory distances exceeding a threshold, the system stores an indication that the execution unit has a suboptimal memory layout.Type: GrantFiled: January 22, 2016Date of Patent: November 13, 2018Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Jean-François Denise, Charles J. Hunt, Steven J. Drach
-
Patent number: 9910591Abstract: The disclosed embodiments provide a system that facilitates the execution of a software program. During operation, the system obtains a memory layout for an object instance in a software program, wherein the memory layout includes a set of offsets and a set of allocated sizes of a set of components associated with the object instance. Next, the system uses the memory layout to determine a first memory space occupied by data in the object instance and a second memory space occupied by padding in the object instance. The system then displays a visualization of the memory layout on the computer system, wherein the visualization includes a first graphical distinction between the first memory space and the second memory space.Type: GrantFiled: November 5, 2014Date of Patent: March 6, 2018Assignee: Oracle International CorporationInventors: Jean-Francois Denise, Steven J. Drach, Charles J. Hunt
-
Publication number: 20170090757Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system obtains one or more user-defined rules for configuring a memory layout of an object instance in a software program, wherein the one or more user-defined rules are created separately from source code for the software program. Next, the system generates the memory layout of the object instance by applying the one or more user-defined rules to one or more fields of the object instance. The system then executes the software program using the generated memory layout of the object instance.Type: ApplicationFiled: September 24, 2015Publication date: March 30, 2017Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Charles J. Hunt, Jean-François Denise, Steven J. Drach
-
Publication number: 20170091966Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system displays a visualization of a memory layout of an object instance in a software program, wherein the visualization includes one or more fields in the object instance. Next, the system receives user input that customizes the memory layout. The system then processes the user input by updating the displayed visualization to reflect customization of the memory layout by the user input and storing, in association with the software program, one or more rules that, when processed during instantiation of the object instance, configure the memory layout of the object instance based on the user input.Type: ApplicationFiled: September 24, 2015Publication date: March 30, 2017Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Jean-Francois Denise, Charles J. Hunt, Steven J. Drach
-
Publication number: 20170091070Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system obtains an execution unit associated with execution of a software program, wherein the execution unit includes a start and an end. Next, the system identifies a set of fields accessed within the execution unit. The system then calculates one or more memory distances among the set of fields from a set of memory addresses of the set of fields during runtime of the software program on the computer system, wherein the one or more memory distances include a difference in memory address between a first field and a second field in the set of fields. Finally, based at least in part on a memory distance in the one or more memory distances exceeding a threshold, the system stores an indication that the execution unit has a suboptimal memory layout.Type: ApplicationFiled: January 22, 2016Publication date: March 30, 2017Applicant: Oracle International CorporationInventors: Jean-François Denise, Charles J. Hunt, Steven J. Drach
-
Patent number: 9552192Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system determines a structure of a software program and an execution context for the software program from a set of possible execution contexts for the software program. Next, the system generates memory layouts for a set of object instances in the software program at least in part by applying the execution context to the structure independently of a local execution context on the computer system. The system then stores the memory layouts in association with the software program.Type: GrantFiled: November 5, 2014Date of Patent: January 24, 2017Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Jean-Francois Denise, Steven J. Drach, Charles J. Hunt
-
Publication number: 20160124725Abstract: The disclosed embodiments provide a system that facilitates the execution of a software program. During operation, the system determines a structure of a software program and an execution context for the software program from a set of possible execution contexts for the software program, wherein the software program includes one or more object instances. Next, the system uses the structure and the execution context to identify a portion of an object instance from the one or more object instances that is determined to inefficiently use memory space in the software program. The system then provides a refactoring of the object instance that reduces use of the memory space in the object instance.Type: ApplicationFiled: November 5, 2014Publication date: May 5, 2016Inventors: Steven J. Drach, Jean-Francois Denise, Charles J. Hunt
-
Publication number: 20160124646Abstract: The disclosed embodiments provide a system that facilitates the execution of a software program. During operation, the system obtains a set of artifacts associated with executing a software program. Next, the system uses the set of artifacts to determine an inheritance hierarchy associated with an artifact from the set of artifacts. The system then uses the inheritance hierarchy and the set of artifacts to generate a memory layout of an object instance represented by the artifact, wherein the memory layout includes a set of fields associated with a set of levels of the inheritance hierarchy.Type: ApplicationFiled: November 5, 2014Publication date: May 5, 2016Inventors: Charles J. Hunt, Steven J. Drach, Jean-Francois Denise
-
Publication number: 20160124718Abstract: The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system determines a structure of a software program and an execution context for the software program from a set of possible execution contexts for the software program. Next, the system generates memory layouts for a set of object instances in the software program at least in part by applying the execution context to the structure independently of a local execution context on the computer system. The system then stores the memory layouts in association with the software program.Type: ApplicationFiled: November 5, 2014Publication date: May 5, 2016Inventors: Jean-Francois Denise, Steven J. Drach, Charles J. Hunt
-
Publication number: 20160124645Abstract: The disclosed embodiments provide a system that facilitates the execution of a software program. During operation, the system obtains a memory layout for an object instance in a software program, wherein the memory layout includes a set of offsets and a set of allocated sizes of a set of components associated with the object instance. Next, the system uses the memory layout to determine a first memory space occupied by data in the object instance and a second memory space occupied by padding in the object instance. The system then displays a visualization of the memory layout on the computer system, wherein the visualization includes a first graphical distinction between the first memory space and the second memory space.Type: ApplicationFiled: November 5, 2014Publication date: May 5, 2016Inventors: Jean-Francois Denise, Steven J. Drach, Charles J. Hunt
-
Publication number: 20140324941Abstract: Techniques for providing a proxy service are disclosed. In an embodiment, a proxy system includes a proxy service module and a scripting engine. The proxy service module is configured to intercept and process messages that travel between user devices and the Internet and the scripting engine is in communication with the proxy service module and is configured to manage a plurality of scripts that are written in one or more scripting languages. The proxy service module is configured to intercept a message that travels to the proxy service module and that is related to a user device, to associate a script with the intercepted message, and to cause the script to be executed at one of the user device, the proxy system, or a system that is external to the user device and the proxy system depending on the function associated with the script.Type: ApplicationFiled: July 9, 2014Publication date: October 30, 2014Applicant: UNWIRED PLANET, LLCInventors: Philippe Piernot, Steven J. Drach
-
Patent number: 8825732Abstract: Techniques for providing a proxy service are disclosed. In an embodiment, a proxy system includes a proxy service module and a scripting engine. The proxy service module is configured to intercept and process messages that travel between user devices and the Internet and the scripting engine is in communication with the proxy service module and is configured to manage a plurality of scripts that are written in one or more scripting languages. The proxy service module is configured to intercept a message that travels to the proxy service module and that is related to a user device, to associate a script with the intercepted message, and to cause the script to be executed at one of the user device, the proxy system, or a system that is external to the user device and the proxy system depending on the function associated with the script.Type: GrantFiled: February 15, 2011Date of Patent: September 2, 2014Assignee: Unwired Planet, LLCInventors: Philippe Piernot, Steven J. Drach
-
Publication number: 20110202589Abstract: Techniques for providing a proxy service are disclosed. In an embodiment, a proxy system includes a proxy service module and a scripting engine. The proxy service module is configured to intercept and process messages that travel between user devices and the Internet and the scripting engine is in communication with the proxy service module and is configured to manage a plurality of scripts that are written in one or more scripting languages. The proxy service module is configured to intercept a message that travels to the proxy service module and that is related to a user device, to associate a script with the intercepted message, and to cause the script to be executed at one of the user device, the proxy system, or a system that is external to the user device and the proxy system depending on the function associated with the script.Type: ApplicationFiled: February 15, 2011Publication date: August 18, 2011Applicant: OPENWAVE SYSTEMS INC.Inventors: Philippe Piernot, Steven J. Drach
-
Patent number: 5619645Abstract: A method and an apparatus allowing a system interfaced with a network to continue functioning in a diminished capacity, even when the system is temporarily disconnected from the network. Unmodified applications running on the system which initiate a network-related operation during system isolation are coerced into a fast-fail behavior by fast-fail mechanisms residing in the system's network layer kernel modules.Type: GrantFiled: April 7, 1995Date of Patent: April 8, 1997Assignee: Sun Microsystems, Inc.Inventors: Gabriel E. Montenegro, Steven J. Drach, Ho Y. Wong