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: 10162713
    Abstract: 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: Grant
    Filed: February 19, 2015
    Date of Patent: December 25, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John A. Taylor, Nicholas A. Allen, Stuart J. Langley, Igor Sedukhin, Justin D. Brown, Kartik Paramasivam
  • Patent number: 9348659
    Abstract: 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: Grant
    Filed: March 27, 2013
    Date of Patent: May 24, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Publication number: 20150161014
    Abstract: 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: Application
    Filed: February 19, 2015
    Publication date: June 11, 2015
    Inventors: John A. Taylor, Nicholas A. Allen, Stuart J. Langley, Igor Sedukhin, Justin D. Brown, Kartik Paramasivam
  • Patent number: 8898144
    Abstract: 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: Grant
    Filed: June 20, 2013
    Date of Patent: November 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Jayteerth N. Katti, Stephen Maine, Edmund S. V. Pinto, Kenneth D. Wolf
  • Patent number: 8869107
    Abstract: 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: Grant
    Filed: January 12, 2012
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: John A. Taylor, Leon E. Welicki, Kenneth D. Wolf, Justin D. Brown
  • Patent number: 8756452
    Abstract: 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: Grant
    Filed: March 1, 2013
    Date of Patent: June 17, 2014
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Patent number: 8732514
    Abstract: 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: Grant
    Filed: March 4, 2013
    Date of Patent: May 20, 2014
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Patent number: 8671415
    Abstract: 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: Grant
    Filed: May 31, 2012
    Date of Patent: March 11, 2014
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Publication number: 20130282655
    Abstract: 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: Application
    Filed: June 20, 2013
    Publication date: October 24, 2013
    Inventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Jayteerth N. Katti, Stephen Maine, Edmund S.V. Pinto, Kenneth D. Wolf
  • Publication number: 20130185694
    Abstract: 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: Application
    Filed: January 12, 2012
    Publication date: July 18, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: John A. Taylor, Leon E. Welicki, Kenneth D. Wolf, Justin D. Brown
  • Patent number: 8473455
    Abstract: 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: Grant
    Filed: September 3, 2008
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Jayteerth N. Katti, Stephen Maine, Edmund S. V. Pinto, Kenneth D. Wolf
  • Patent number: 8424009
    Abstract: 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: Grant
    Filed: December 4, 2009
    Date of Patent: April 16, 2013
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Patent number: 8397099
    Abstract: 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: Grant
    Filed: September 10, 2010
    Date of Patent: March 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Patent number: 8375095
    Abstract: 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: Grant
    Filed: December 22, 2009
    Date of Patent: February 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Jesse R. Yurkovich, Nicholas Alexander Allen, Edmund Samuel Victor Pinto, Stefan R. Batres, Kenneth D. Wolf, Justin D. Brown
  • Patent number: 8296780
    Abstract: 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: Grant
    Filed: March 23, 2010
    Date of Patent: October 23, 2012
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Publication number: 20120240133
    Abstract: 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: Application
    Filed: May 31, 2012
    Publication date: September 20, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Patent number: 8250588
    Abstract: 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: Grant
    Filed: June 16, 2009
    Date of Patent: August 21, 2012
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Publication number: 20120066538
    Abstract: 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: Application
    Filed: September 10, 2010
    Publication date: March 15, 2012
    Applicant: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown
  • Patent number: 8099498
    Abstract: 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: Grant
    Filed: September 3, 2008
    Date of Patent: January 17, 2012
    Assignee: Microsoft Corporation
    Inventors: Nicholas A. Allen, Stefan R. Batres, Justin D. Brown, Edmund S. V. Pinto, Karthik Raman, John A. Taylor, Kenneth D. Wolf
  • Publication number: 20110239230
    Abstract: 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: Application
    Filed: March 23, 2010
    Publication date: September 29, 2011
    Applicant: Microsoft Corporation
    Inventors: Nicholas A. Allen, Justin D. Brown