Patents by Inventor Timothy S. Rice
Timothy S. Rice 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: 9665463Abstract: Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines.Type: GrantFiled: June 5, 2012Date of Patent: May 30, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland
-
Patent number: 9507653Abstract: Techniques are described herein that are capable of constructing an inter-process communication channel, for example, between a requesting component and a targeted process. The communication channel may have one or more links, such that each link is defined by a respective node pair in a plurality of nodes. The plurality of nodes includes the requesting component, the targeted process, and optionally one or more intermediate nodes. An attachment request is received via a user interface. The requesting component is attached to the targeted process. For instance, the links may be traversed to discover the targeted process. The communication channel is established. For instance, in each node of a subset of the plurality of nodes, node information may be retained to indicate a next consecutive node of the plurality of nodes to which messages from the requesting component to the targeted process are to be delivered.Type: GrantFiled: September 12, 2012Date of Patent: November 29, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland
-
Publication number: 20160034261Abstract: Described is a technology by which metadata augments a programming language such as JavaScript. Software components such as application programming interfaces are associated with metadata. When a software component is selected for use, such as when putting together a computer program in a graphical programming environment, its corresponding metadata is accessed. The metadata may be used to validate the usage of the software component, such as to validate a constraint associated with a value, provide a default value, validate a value's type, and/or determine whether a value is required. Validation may also determine whether data output by one software component is of a type that is appropriate for input by another software component. In addition to validation via type metadata, the metadata may provide descriptive information about the selected software component, such as to assist the programmer and/or provide further information to the programming environment.Type: ApplicationFiled: September 4, 2015Publication date: February 4, 2016Applicant: Microsoft Technology Licensing, LLCInventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
-
Patent number: 9164737Abstract: Described is a technology by which metadata augments a programming language such as JavaScript. Software components such as application programming interfaces are associated with metadata. When a software component is selected for use, such as when putting together a computer program in a graphical programming environment, its corresponding metadata is accessed. The metadata may be used to validate the usage of the software component, such as to validate a constraint associated with a value, provide a default value, validate a value's type, and/or determine whether a value is required. Validation may also determine whether data output by one software component is of a type that is appropriate for input by another software component. In addition to validation via type metadata, the metadata may provide descriptive information about the selected software component, such as to assist the programmer and/or provide further information to the programming environment.Type: GrantFiled: May 16, 2008Date of Patent: October 20, 2015Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
-
Patent number: 9135034Abstract: Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. The metadata may be associated with lookup data that identifies the metadata. The lookup data may be formed from an identifier supplied by an imperative statement and an identifier of a logical element which may be explicitly or implicitly supplied. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.Type: GrantFiled: August 16, 2012Date of Patent: September 15, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
-
Patent number: 9104781Abstract: Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. A metadata consumer may request the metadata. A metadata identifier of the metadata requested may be provided implicitly or explicitly. A parameter that indicates how to obtain the metadata may also be provided. In response, the metadata may be obtained and provided. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.Type: GrantFiled: August 28, 2012Date of Patent: August 11, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
-
Patent number: 8914776Abstract: Aspects of the subject matter described herein relate to assisting development tools. In aspects, statements that influence runtime behavior may be inserted into code of a program. For example, a statement inserted into a function may set a property of a runtime object to indicate that a debugger is to be notified for exceptions that are encountered within the scope of the function. When a runtime environment encounters an exception, the runtime environment may determine whether the property applies to the currently-executing scope. If so, the runtime environment may notify or not notify a development tool of the exception based on the value of the property.Type: GrantFiled: May 17, 2012Date of Patent: December 16, 2014Assignee: Microsoft CorporationInventors: Timothy S. Rice, Akrosh Gandhi, Tae Hyung Kim, Gregory Bernard Miskelly, Michael C. Fanning, Andrew R. Sterland
-
Patent number: 8875098Abstract: A software-implemented workflow engine is described that executes a Web mashup within the context of a Web browser running on a computer. The workflow engine is configured to parse a Web mashup definition obtained from a remote server to identify distinct units of execution within the Web mashup, referred to as components. The workflow engine is further configured to obtain programming logic and metadata associated with each type of component identified in the Web mashup definition from the remote server and to use such information to generate executable versions of the identified components. Finally, the workflow engine is configured to run each of the executable components, thereby executing the Web mashup. The workflow engine is configured to manage the order of execution of each of the executable components so that the Web mashup runs in an optimized and reliable fashion.Type: GrantFiled: November 18, 2008Date of Patent: October 28, 2014Assignee: Microsoft CorporationInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Patent number: 8745580Abstract: Described is a technology in a programming (development and/or runtime) environment by which data type mismatches between the output and input of computer program software components (e.g., APIs) are detected, with the output transparently converted such that the converted input may be understood by the inputting component. When components are interconnected in a programming environment, metadata associated with those components is evaluated to determine a type mismatch, e.g., between objects and arrays. If mismatched, an output object is converted to a single-element array for input, or alternatively, an output array is converted to a series of objects, each object sent within a loop for input. The transparent conversion may be performed by the programming environment during runtime, or by inserting conversion code prior to compilation.Type: GrantFiled: May 16, 2008Date of Patent: June 3, 2014Assignee: Microsoft CorporationInventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
-
Publication number: 20140075451Abstract: Techniques are described herein that are capable of constructing an inter-process communication channel, for example, between a requesting component and a targeted process. The communication channel may have one or more links, such that each link is defined by a respective node pair in a plurality of nodes. The plurality of nodes includes the requesting component, the targeted process, and optionally one or more intermediate nodes. An attachment request is received via a user interface. The requesting component is attached to the targeted process. For instance, the links may be traversed to discover the targeted process. The communication channel is established. For instance, in each node of a subset of the plurality of nodes, node information may be retained to indicate a next consecutive node of the plurality of nodes to which messages from the requesting component to the targeted process are to be delivered.Type: ApplicationFiled: September 12, 2012Publication date: March 13, 2014Applicant: MICROSOFT CORPORATIONInventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland
-
Publication number: 20140068544Abstract: Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. A metadata consumer may request the metadata. A metadata identifier of the metadata requested may be provided implicitly or explicitly. A parameter that indicates how to obtain the metadata may also be provided. In response, the metadata may be obtained and provided. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.Type: ApplicationFiled: August 28, 2012Publication date: March 6, 2014Applicant: Microsoft CorporationInventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
-
Publication number: 20140053142Abstract: Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. The metadata may be associated with lookup data that identifies the metadata. The lookup data may be formed from an identifier supplied by an imperative statement and an identifier of a logical element which may be explicitly or implicitly supplied. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.Type: ApplicationFiled: August 16, 2012Publication date: February 20, 2014Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
-
Publication number: 20130326490Abstract: Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines.Type: ApplicationFiled: June 5, 2012Publication date: December 5, 2013Applicant: MICROSOFT CORPORATIONInventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland
-
Publication number: 20130311973Abstract: Aspects of the subject matter described herein relate to assisting development tools. In aspects, statements that influence runtime behavior may be inserted into code of a program. For example, a statement inserted into a function may set a property of a runtime object to indicate that a debugger is to be notified for exceptions that are encountered within the scope of the function. When a runtime environment encounters an exception, the runtime environment may determine whether the property applies to the currently-executing scope. If so, the runtime environment may notify or not notify a development tool of the exception based on the value of the property.Type: ApplicationFiled: May 17, 2012Publication date: November 21, 2013Applicant: MICROSOFT CORPORATIONInventors: Timothy S. Rice, Akrosh Gandhi, Tae Hyung Kim, Gregory Bernard Miskelly, Michael C. Fanning, Andrew R. Sterland
-
Patent number: 8539506Abstract: Techniques are described herein that are capable of dynamically injecting code into a running process. For instance, the techniques are capable of causing arbitrary code to be activated in the process while the process is running in response to receipt of a request for dynamic execution of the arbitrary code from outside the process while the process is running.Type: GrantFiled: February 9, 2012Date of Patent: September 17, 2013Assignee: Microsoft CorporationInventors: Michael C. Fanning, Christopher M. H. Faucon, Andrew R. Sterland, Timothy S. Rice
-
Publication number: 20130212595Abstract: Techniques are described herein that are capable of dynamically injecting code into a running process. For instance, the techniques are capable of causing arbitrary code to be activated in the process while the process is running in response to receipt of a request for dynamic execution of the arbitrary code from outside the process while the process is running.Type: ApplicationFiled: February 9, 2012Publication date: August 15, 2013Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Christopher M.H. Faucon, Andrew R. Sterland, Timothy S. Rice
-
Patent number: 7941546Abstract: A system and method is described for communicating requests from a Web mashup being executed within the context of a Web browser to third-party Web services in a manner that does not violate the Same Origin Policy (SOP) observed by many Web browsers. In one embodiment, a workflow engine operating in the context of a Web browser executes a plurality of executable components comprising a Web mashup. The workflow engine transparently redirects Web service requests generated by the executing components to a proxy server that acts as an intermediate between the workflow engine and third-party Web services. The proxy server, which is not subject to SOP, transmits the Web service requests to the third-party Web service and obtains requested data therefrom. The proxy server further returns the requested data in a manner that is useable by the Web mashup components.Type: GrantFiled: November 18, 2008Date of Patent: May 10, 2011Assignee: Microsoft CorporationInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Publication number: 20100160039Abstract: A game creator provides a set of abstractions (objects) that make game creation simpler. The abstractions provided in the game creation component include Game, Scene, and Actor. A Game abstraction comprises global settings for the game and includes one or more Scenes. Each Scene abstraction within the game includes one or more Actors. By setting properties and behaviors on these three abstractions, Game creators with little or no skill in programming can create games. Filtering can be performed declaratively through selection of appropriate options.Type: ApplicationFiled: December 18, 2008Publication date: June 24, 2010Applicant: Microsoft CorporationInventors: Adam D. Nathan, Chi Wai Wong, Benjamin J. Anderson, Timothy S. Rice
-
Publication number: 20100125623Abstract: A system and method is described for communicating requests from a Web mashup being executed within the context of a Web browser to third-party Web services in a manner that does not violate the Same Origin Policy (SOP) observed by many Web browsers. In one embodiment, a workflow engine operating in the context of a Web browser executes a plurality of executable components comprising a Web mashup. The workflow engine transparently redirects Web service requests generated by the executing components to a proxy server that acts as an intermediate between the workflow engine and third-party Web services. The proxy server, which is not subject to SOP, transmits the Web service requests to the third-party Web service and obtains requested data therefrom. The proxy server further returns the requested data in a manner that is useable by the Web mashup components.Type: ApplicationFiled: November 18, 2008Publication date: May 20, 2010Applicant: Microsoft CorporationInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Publication number: 20100125826Abstract: A software-implemented workflow engine is described that executes a Web mashup within the context of a Web browser running on a computer. The workflow engine is configured to parse a Web mashup definition obtained from a remote server to identify distinct units of execution within the Web mashup, referred to as components. The workflow engine is further configured to obtain programming logic and metadata associated with each type of component identified in the Web mashup definition from the remote server and to use such information to generate executable versions of the identified components. Finally, the workflow engine is configured to run each of the executable components, thereby executing the Web mashup. The workflow engine is configured to manage the order of execution of each of the executable components so that the Web mashup runs in an optimized and reliable fashion.Type: ApplicationFiled: November 18, 2008Publication date: May 20, 2010Applicant: MICROSOFT CORPORATIONInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan