Patents by Inventor Justin D. Brown
Justin D. Brown 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: 10162713Abstract: The present invention extends to methods, systems, and computer program products for persistent application activation and timer notifications. A durable instance manager, instance execution hosts, and an instance store interoperate to transition instances between executing and persisted states. System properties are associated with an instance. System properties can define re-activation conditions, that when satisfied, indicate that an instance is to be re-activated for execution. System properties can define timers as well as indications that instances are in a persisted but ready to run state.Type: GrantFiled: February 19, 2015Date of Patent: December 25, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John A. Taylor, Nicholas A. Allen, Stuart J. Langley, Igor Sedukhin, Justin D. Brown, Kartik Paramasivam
-
Patent number: 9348659Abstract: A command log selectively logs commands that have the potential to create conflicts based on instance locks. Lock times can be used to distinguish cases where the instance is locked by the application host at a previous logical time from cases where the instance is concurrently locked by the application host through a different name. A logical command clock is also maintained for commands issued by the application host to a state persistence system, with introspection to determine which issued commands may potentially take a lock. The command processor can resolve conflicts by pausing command execution until the effects of potentially conflicting locking commands become visible and examining the lock time to distinguish among copies of a persisted state storage location.Type: GrantFiled: March 27, 2013Date of Patent: May 24, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Nicholas A. Allen, Justin D. Brown
-
Publication number: 20150161014Abstract: The present invention extends to methods, systems, and computer program products for persistent application activation and timer notifications. A durable instance manager, instance execution hosts, and an instance store interoperate to transition instances between executing and persisted states. System properties are associated with an instance. System properties can define re-activation conditions, that when satisfied, indicate that an instance is to be re-activated for execution. System properties can define timers as well as indications that instances are in a persisted but ready to run state.Type: ApplicationFiled: February 19, 2015Publication date: June 11, 2015Inventors: John A. Taylor, Nicholas A. Allen, Stuart J. Langley, Igor Sedukhin, Justin D. Brown, Kartik Paramasivam
-
Patent number: 8898144Abstract: Processing messages. Messages are processed based on a characteristic derived from information in messages, metadata about messages, or other information external to messages. Values for one or more pieces of information are received. At least one of the values for one or more pieces of information is associated with a first message. Queries are received. The queries specify one or more of the pieces of information. At least a portion of the plurality of values for the one or more pieces of information is processed in conjunction with the one or more queries to create one or more normalized characteristics for the first message. The one or more normalized characteristics for the first message are in a same format irrespective of the format of the pieces of information. The first message, and/or other messages, is processed based on at least one of the one or more normalized characteristics.Type: GrantFiled: June 20, 2013Date of Patent: November 25, 2014Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Jayteerth N. Katti, Stephen Maine, Edmund S. V. Pinto, Kenneth D. Wolf
-
Patent number: 8869107Abstract: Techniques are described herein that are capable of executing a computer program in accordance with a declarative dynamic control flow in a continuation-based runtime. A declarative dynamic control flow identifies a set of continuations. A representation of logic that corresponds to the declarative dynamic control flow is provided in accordance with execution of the computer program in the continuation-based runtime. The declarative dynamic control flow identifies a set of continuations. Each continuation identifies a respective rule, which defines a respective event, and a respective action, which is to be performed upon occurrence of the respective event. A determination is made that a specified event occurs. The set of continuations is dynamically modified based on occurrence of the specified event.Type: GrantFiled: January 12, 2012Date of Patent: October 21, 2014Assignee: Microsoft CorporationInventors: John A. Taylor, Leon E. Welicki, Kenneth D. Wolf, Justin D. Brown
-
Patent number: 8756452Abstract: Pulses are used to control work ingress. Generally, a variable-speed clock is used for accepting work for lower-priority services. A clock rate is controlled by a load monitor. The load monitor periodically collects sensor measurements of resources available after allocations by higher-priority services. Based on the sensor measurements, the load monitor adjusts the clock speed up or down (i.e., depending on the amount of resources available after allocations by higher-priority services). At the boundary of the lower-priority service (e.g., where work enters the system), work requests are enqueued to be associated with a future pulse of the clock. Work is accepted or rejected based on a determination of whether the work request can be allocated a clock pulse within a defined period of time.Type: GrantFiled: March 1, 2013Date of Patent: June 17, 2014Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Patent number: 8732514Abstract: Clock pulses of a variable speed clock are adjusted relative to system utilization. A load monitor periodically collects sensor measurements of resources and based on the sensor measurements, the load monitor adjusts the clock speed up or down.Type: GrantFiled: March 4, 2013Date of Patent: May 20, 2014Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Patent number: 8671415Abstract: The present invention extends to methods, systems, and computer program products for persisting application state. Through decoupling an application host from an instance store, the application host can be used with many different persistence stores and persistence administration tools. Further, a given persistence store can be used with many different application hosts and application host extensions. Accordingly, applications can benefit from periodically persisting work to any of a variety of instance stores even if the applications are changed or are not natively configured for use with a particular instance store. Using persistence providers an application host can also more easily coordinate the persisted state with runtime state to ensure that a consistent checkpoint is created.Type: GrantFiled: May 31, 2012Date of Patent: March 11, 2014Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Publication number: 20130282655Abstract: Processing messages. Messages are processed based on a characteristic derived from information in messages, metadata about messages, or other information external to messages. Values for one or more pieces of information are received. At least one of the values for one or more pieces of information is associated with a first message. Queries are received. The queries specify one or more of the pieces of information. At least a portion of the plurality of values for the one or more pieces of information is processed in conjunction with the one or more queries to create one or more normalized characteristics for the first message. The one or more normalized characteristics for the first message are in a same format irrespective of the format of the pieces of information. The first message, and/or other messages, is processed based on at least one of the one or more normalized characteristics.Type: ApplicationFiled: June 20, 2013Publication date: October 24, 2013Inventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Jayteerth N. Katti, Stephen Maine, Edmund S.V. Pinto, Kenneth D. Wolf
-
Publication number: 20130185694Abstract: Techniques are described herein that are capable of executing a computer program in accordance with a declarative dynamic control flow in a continuation-based runtime. A declarative dynamic control flow identifies a set of continuations. A representation of logic that corresponds to the declarative dynamic control flow is provided in accordance with execution of the computer program in the continuation-based runtime. The declarative dynamic control flow identifies a set of continuations. Each continuation identifies a respective rule, which defines a respective event, and a respective action, which is to be performed upon occurrence of the respective event. A determination is made that a specified event occurs. The set of continuations is dynamically modified based on occurrence of the specified event.Type: ApplicationFiled: January 12, 2012Publication date: July 18, 2013Applicant: MICROSOFT CORPORATIONInventors: John A. Taylor, Leon E. Welicki, Kenneth D. Wolf, Justin D. Brown
-
Patent number: 8473455Abstract: Messages are processed based on a characteristic derived from information in messages, metadata about messages, or other information external to messages. Values for one or more pieces of information are received. At least one of the values for one or more pieces of information is associated with a first message. Queries are received. The queries specify one or more of the pieces of information. At least a portion of the plurality of values for the one or more pieces of information is processed in conjunction with the one or more queries to create one or more normalized characteristics for the first message. The one or more normalized characteristics for the first message are in a same format irrespective of the format of the pieces of information. The first message, and/or other messages, is processed based on at least one of the one or more normalized characteristics.Type: GrantFiled: September 3, 2008Date of Patent: June 25, 2013Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Jayteerth N. Katti, Stephen Maine, Edmund S. V. Pinto, Kenneth D. Wolf
-
Patent number: 8424009Abstract: The present invention extends to methods, systems, and computer program products for resolving lock conflicts. For a state persistence system, embodiments of the invention can employ a logical lock clock for each persisted state storage location. Lock times can be incorporated into bookkeeping performed by a command processor to distinguish cases where the instance is locked by the application host at a previous logical time from cases where the instance is concurrently locked by the application host through a different name. A logical command clock is also maintained for commands issued by the application host to a state persistence system, with introspection to determine which issued commands may potentially take a lock. The command processor can resolve conflicts by pausing command execution until the effects of potentially conflicting locking commands become visible and examining the lock time to distinguish among copies of a persisted state storage location.Type: GrantFiled: December 4, 2009Date of Patent: April 16, 2013Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Patent number: 8397099Abstract: The present invention extends to methods, systems, and computer program products for using pulses to control work ingress. Generally, embodiments of the invention use a variable-speed clock for accepting work for lower-priority services. A clock rate is controlled by a load monitor. The load monitor periodically collects sensor measurements of resources available after allocations by higher-priority services. Based on the sensor measurements, the load monitor adjusts the clock speed up or down (i.e., depending on the amount of resources available after allocations by higher-priority services). At the boundary of the lower-priority service (e.g., where work enters the system), work requests are enqueued to be associated with a future pulse of the clock. Work is accepted or rejected based on a determination of whether the work request can be allocated a clock pulse within a defined period of time.Type: GrantFiled: September 10, 2010Date of Patent: March 12, 2013Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Patent number: 8375095Abstract: The dispatching of messages from an incoming message pool to service instance(s). Message are received non-destructively and exclusively from the incoming message pool. If a particular service instance receives a message out of order, the processing of the message is deferred without releasing the exclusivity in the incoming message queue. Thus, the target service instance may continue to process one or more other messages until the target service instance is ready to process one or more deferred messages. In this way, messages may be pulled from the incoming message queue for dispatch to service instance(s), while maintaining correct order of processing, even if messages do not arrive into the incoming message queue in the correct order.Type: GrantFiled: December 22, 2009Date of Patent: February 12, 2013Assignee: Microsoft CorporationInventors: Jesse R. Yurkovich, Nicholas Alexander Allen, Edmund Samuel Victor Pinto, Stefan R. Batres, Kenneth D. Wolf, Justin D. Brown
-
Patent number: 8296780Abstract: The present invention extends to methods, systems, and computer program products for reducing persistence commands. An application host sends a persistence command to a persistence provider for processing. If the persistence provider recognizes and is able to carry out the persistence command, the persistence provider incorporates the semantics of the persistence command into the command implementation strategy; otherwise, the persistence provider employs a command reduction processor. The process of executing or reducing persistence commands is repeated until the persistence provider has produced and completed execution of a command implementation strategy equivalent to the original persistence command or until an unprocessable persistence command is reached for which no further reductions are possible. A command reduction processor can provide alternative persistence commands or an algorithm of persistence commands with semantics equivalent to an originally received persistence command.Type: GrantFiled: March 23, 2010Date of Patent: October 23, 2012Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Publication number: 20120240133Abstract: The present invention extends to methods, systems, and computer program products for persisting application state. Through decoupling an application host from an instance store, the application host can be used with many different persistence stores and persistence administration tools. Further, a given persistence store can be used with many different application hosts and application host extensions. Accordingly, applications can benefit from periodically persisting work to any of a variety of instance stores even if the applications are changed or are not natively configured for use with a particular instance store. Using persistence providers an application host can also more easily coordinate the persisted state with runtime state to ensure that a consistent checkpoint is created.Type: ApplicationFiled: May 31, 2012Publication date: September 20, 2012Applicant: MICROSOFT CORPORATIONInventors: Nicholas A. Allen, Justin D. Brown
-
Patent number: 8250588Abstract: The present invention extends to methods, systems, and computer program products for persisting application state. Through decoupling an application host from an instance store, the application host can be used with many different persistence stores and persistence administration tools. Further, a given persistence store can be used with many different application hosts and application host extensions. Accordingly, applications can benefit from periodically persisting work to any of a variety of instance stores even if the applications are changed or are not natively configured for use with a particular instance store. Using persistence providers an application host can also more easily coordinate the persisted state with runtime state to ensure that a consistent checkpoint is created.Type: GrantFiled: June 16, 2009Date of Patent: August 21, 2012Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Publication number: 20120066538Abstract: The present invention extends to methods, systems, and computer program products for using pulses to control work ingress. Generally, embodiments of the invention use a variable-speed clock for accepting work for lower-priority services. A clock rate is controlled by a load monitor. The load monitor periodically collects sensor measurements of resources available after allocations by higher-priority services. Based on the sensor measurements, the load monitor adjusts the clock speed up or down (i.e., depending on the amount of resources available after allocations by higher-priority services). At the boundary of the lower-priority service (e.g., where work enters the system), work requests are enqueued to be associated with a future pulse of the clock. Work is accepted or rejected based on a determination of whether the work request can be allocated a clock pulse within a defined period of time.Type: ApplicationFiled: September 10, 2010Publication date: March 15, 2012Applicant: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown
-
Patent number: 8099498Abstract: Routing messages using unreliable routing data. A method includes receiving a message from a computer readable communication medium. Characteristic properties of the message are calculated so as to determine state requirements for a service instance at a service for processing of the message. An attempt is made to acquire an appropriate service instance that satisfies the state requirements for processing the message. A determination is made that attempting to acquire an appropriate service instance that satisfies the state requirements for processing the message is not successful at acquiring an appropriate service instance. As a result, the message is redirected using an unreliable local cache of routing information and without coordination between processing nodes.Type: GrantFiled: September 3, 2008Date of Patent: January 17, 2012Assignee: Microsoft CorporationInventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Edmund S. V. Pinto, Karthik Raman, John A. Taylor, Kenneth D. Wolf
-
Publication number: 20110239230Abstract: The present invention extends to methods, systems, and computer program products for reducing persistence commands. An application host sends a persistence command to a persistence provider for processing. If the persistence provider recognizes and is able to carry out the persistence command, the persistence provider incorporates the semantics of the persistence command into the command implementation strategy; otherwise, the persistence provider employs a command reduction processor. The process of executing or reducing persistence commands is repeated until the persistence provider has produced and completed execution of a command implementation strategy equivalent to the original persistence command or until an unprocessable persistence command is reached for which no further reductions are possible. A command reduction processor can provide alternative persistence commands or an algorithm of persistence commands with semantics equivalent to an originally received persistence command.Type: ApplicationFiled: March 23, 2010Publication date: September 29, 2011Applicant: Microsoft CorporationInventors: Nicholas A. Allen, Justin D. Brown