Patents by Inventor Kenneth David Wolf

Kenneth David Wolf 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: 9942179
    Abstract: Generally in a computing environment, executing work based on time (i.e. according to a predetermined schedule) is a common need. However, in cloud based systems, scheduled work may be expensive to customers as generally customers rent system resources. Thus, having a processor dedicated to performing actions that have been pre-scheduled can be expensive. This application describes using a continuation-based runtime for scheduling time-bound and/or periodic work in a distributed (i.e. cloud) system. A system architecture and computer-implemented method are described that deploy an environment-independent action to a remote-based system (such as a cloud computing system, for example). The action is limited to using a predetermined amount of resources and is limited to simple, non-cpu intensive orchestrations of network calls.
    Type: Grant
    Filed: March 15, 2016
    Date of Patent: April 10, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
  • Patent number: 9798738
    Abstract: The present invention extends to methods, systems, and computer program products for creating and manipulating custom compound data types in declarative programs. The present invention allows a developer to create and use custom compound data types without requiring the custom type to be specifically defined (e.g. via registering a custom assembly) in the underlying framework. This is accomplished by providing a data container that is configurable to represent virtually any combination of primitive or compound types defined within the framework. The present invention also provides a declarative model for interacting with data containers representing custom compound data types. This declarative model employs a path-based syntax (or other type of syntax) for accessing the elements of a custom compound data type. Multiple paths can be defined within a single unit of developer input so that multiple elements of a custom data type can be manipulated by the single unit of input.
    Type: Grant
    Filed: February 3, 2015
    Date of Patent: October 24, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
  • Patent number: 9575732
    Abstract: Embodiments are directed to presenting multiple projections of a declarative program and to presenting partial projections of a declarative program. In one scenario, a computer system establishes a declarative program that includes various artifacts. The computer system displays a first projection of the declarative program, which includes one or more elements of a workflow. The computer system then determines that an additional projection is to be displayed in addition to the first projection, and presents a second projection based on the artifacts of the declarative program. The second projection illustrates the artifacts in a form different than that shown in the first projection, and is presented in addition to the first projection. In some cases, the computer system further receives an input and edits the declarative program according to the received input. The edits to the declarative program are substantially lossless, and can be performed using partial or full projections.
    Type: Grant
    Filed: June 17, 2013
    Date of Patent: February 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Leon Ezequiel Welicki, Balasubramanian Shyamsundar, Kenneth David Wolf
  • Patent number: 9536264
    Abstract: Sending or receiving messages in a host agnostic way in a continuation based runtime. A method includes defining a contract between a continuation based runtime and host for sending or receiving a message. The contract defines one or more of: details about what should be included in the messages, operations for sending the message; operations for receiving the message, parameters for cancellation of inflight operations, or notifications about correlation information lifetime. The method further includes identifying a correlation handle. The correlation handle uniquely identifies an executing instance of an activity. The method further comprises identifying a bookmark. The bookmark defines where the continuation based runtime should resume after sending or receiving the message. The method further comprises calling the contract using the correlation handle and the bookmark to allow the message to be correctly routed by the host and for the continuation based runtime to be correctly resumed.
    Type: Grant
    Filed: November 14, 2011
    Date of Patent: January 3, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Vishal Kalra, David R. Cliffe, Kenneth David Wolf, Leon Welicki
  • Publication number: 20160197863
    Abstract: Scheduling a scheduled and optionally periodic action in a remote based system. The method includes deploying an environment independent action to a remote based system. The action is limited to using a predetermined amount of resources and is limited to simple, non-cpu intensive orchestrations of network calls. The method further includes defining a schedule for the action to be executed. Calling the action at the remote based system based on the schedule in a processor independent fashion such that state of the action is maintained independent of the processor that the action is being executed on.
    Type: Application
    Filed: March 15, 2016
    Publication date: July 7, 2016
    Inventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
  • Patent number: 9317323
    Abstract: Scheduling and dispatching jobs for a plurality of different entities. A method includes receiving at a work coordinator, one or more actions associated with a job. The method further includes storing in a log at the work coordinator, keyed on a job key, state for the one or more actions and a list of the one or more actions. The method further includes making calls to one or more worker processes to cause the worker process to perform actions associated with the job. As a result of making calls to one or more worker processes, the method further includes receiving at least one of a change to the list of remaining actions or the state.
    Type: Grant
    Filed: December 26, 2012
    Date of Patent: April 19, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Kenneth David Wolf, Jesus Ruiz-Scougall, Nathan Christopher Talbert, Clark Roberts
  • Patent number: 9304888
    Abstract: Embodiments are directed to executing a workflow using a virtualized clock and to ensuring idempotency and correctness among workflow processes. In one scenario, a computer system a computer system determines that a workflow session has been initialized. The workflow session runs as a set of episodes, where each episode includes one or more pulses of work that are performed when triggered by an event. Each workflow session is processed according to a virtualized clock that keeps a virtual session time for the workflow session. The computer system receives an event that includes an indication of the time the event was generated, and then accesses the received event to determine which pulses of work are to be performed as part of a workflow session episode. The computer system then executes the determined pulses of work according to the virtual session time indicated by the virtualized clock.
    Type: Grant
    Filed: June 25, 2013
    Date of Patent: April 5, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Kenneth David Wolf, Justin David Brown, Edmund Samuel Victor Pinto, Nathan Christopher Talbert
  • Patent number: 9292342
    Abstract: Generally in a computing environment, executing work based on time (i.e. according to a predetermined schedule) is a common need. However, in cloud based systems, scheduled work may be expensive to customers as generally customers rent system resources. Thus, having a processor dedicated to performing actions that have been pre-scheduled can be expensive. This application describes using a continuation-based runtime for scheduling time-bound and/or periodic work in a distributed (i.e. cloud) system. A system architecture and computer-implemented method are described that deploy an environment-independent action to a remote-based system (such as a cloud computing system, for example). The action is limited to using a predetermined amount of resources and is limited to simple, non-cpu intensive orchestrations of network calls.
    Type: Grant
    Filed: December 26, 2012
    Date of Patent: March 22, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
  • Publication number: 20150213052
    Abstract: The present invention extends to methods, systems, and computer program products for creating and manipulating custom compound data types in declarative programs. The present invention allows a developer to create and use custom compound data types without requiring the custom type to be specifically defined (e.g. via registering a custom assembly) in the underlying framework. This is accomplished by providing a data container that is configurable to represent virtually any combination of primitive or compound types defined within the framework. The present invention also provides a declarative model for interacting with data containers representing custom compound data types. This declarative model employs a path-based syntax (or other type of syntax) for accessing the elements of a custom compound data type. Multiple paths can be defined within a single unit of developer input so that multiple elements of a custom data type can be manipulated by the single unit of input.
    Type: Application
    Filed: February 3, 2015
    Publication date: July 30, 2015
    Inventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
  • Patent number: 8984530
    Abstract: Embodiments described herein allow a service component author to write service components without having to handle incoming messages being received at any time. This may be facilitated by a message dispatch engine that dispatches messages from the incoming message queue only when the destination service component has indicated that it is ready to receive the message having that context. If the service component is not yet ready for the message, the message dispatch component may lock the message at least until the destination service component indicates that it is now ready to receive the message. Until that time, the message dispatch engine may ignore the locked message when finding messages to dispatch.
    Type: Grant
    Filed: January 31, 2008
    Date of Patent: March 17, 2015
    Assignee: Microsoft Corporation
    Inventors: Edmund Samuel Victor Pinto, Kenneth David Wolf, Stephen J. Millet, Richard D. Hill, Nicholas Alexander Allen, John Anthony Taylor
  • Patent number: 8949785
    Abstract: The present invention extends to methods, systems, and computer program products for creating and manipulating custom compound data types in declarative programs. The present invention allows a developer to create and use custom compound data types without requiring the custom type to be specifically defined (e.g. via registering a custom assembly) in the underlying framework. This is accomplished by providing a data container that is configurable to represent virtually any combination of primitive or compound types defined within the framework. The present invention also provides a declarative model for interacting with data containers representing custom compound data types. This declarative model employs a path-based syntax (or other type of syntax) for accessing the elements of a custom compound data type. Multiple paths can be defined within a single unit of developer input so that multiple elements of a custom data type can be manipulated by the single unit of input.
    Type: Grant
    Filed: December 15, 2011
    Date of Patent: February 3, 2015
    Assignee: Microsoft Corporation
    Inventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
  • Publication number: 20140380323
    Abstract: Embodiments are directed to executing a workflow using a virtualized clock and to ensuring idempotency and correctness among workflow processes. In one scenario, a computer system a computer system determines that a workflow session has been initialized. The workflow session runs as a set of episodes, where each episode includes one or more pulses of work that are performed when triggered by an event. Each workflow session is processed according to a virtualized clock that keeps a virtual session time for the workflow session. The computer system receives an event that includes an indication of the time the event was generated, and then accesses the received event to determine which pulses of work are to be performed as part of a workflow session episode. The computer system then executes the determined pulses of work according to the virtual session time indicated by the virtualized clock.
    Type: Application
    Filed: June 25, 2013
    Publication date: December 25, 2014
    Inventors: Kenneth David Wolf, Justin David Brown, Edmund Samuel Victor Pinto, Nathan Christopher Talbert
  • Publication number: 20140372974
    Abstract: Embodiments are directed to presenting multiple projections of a declarative program and to presenting partial projections of a declarative program. In one scenario, a computer system establishes a declarative program that includes various artifacts. The computer system displays a first projection of the declarative program, which includes one or more elements of a workflow. The computer system then determines that an additional projection is to be displayed in addition to the first projection, and presents a second projection based on the artifacts of the declarative program. The second projection illustrates the artifacts in a form different than that shown in the first projection, and is presented in addition to the first projection. In some cases, the computer system further receives an input and edits the declarative program according to the received input. The edits to the declarative program are substantially lossless, and can be performed using partial or full projections.
    Type: Application
    Filed: June 17, 2013
    Publication date: December 18, 2014
    Inventors: Leon Ezequiel Welicki, Balasubramanian Shyamsundar, Kenneth David Wolf
  • Publication number: 20140181305
    Abstract: Scheduling a scheduled and optionally periodic action in a remote based system. The method includes deploying an environment independent action to a remote based system. The action is limited to using a predetermined amount of resources and is limited to simple, non-cpu intensive orchestrations of network calls. The method further includes defining a schedule for the action to be executed. Calling the action at the remote based system based on the schedule in a processor independent fashion such that state of the action is maintained independent of the processor that the action is being executed on.
    Type: Application
    Filed: December 26, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
  • Publication number: 20140181826
    Abstract: Scheduling and dispatching jobs for a plurality of different entities. A method includes receiving at a work coordinator, one or more actions associated with a job. The method further includes storing in a log at the work coordinator, keyed on a job key, state for the one or more actions and a list of the one or more actions. The method further includes making calls to one or more worker processes to cause the worker process to perform actions associated with the job. As a result of making calls to one or more worker processes, the method further includes receiving at least one of a change to the list of remaining actions or the state.
    Type: Application
    Filed: December 26, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Kenneth David Wolf, Jesus Ruiz-Scougall, Nathan Christopher Talbert, Clark Roberts
  • Patent number: 8620991
    Abstract: Technologies for enabling a continuation based runtime to accept or reject external stimulus and, in addition, to determine if an external stimulus may be valid for processing at a later point in execution.
    Type: Grant
    Filed: August 1, 2012
    Date of Patent: December 31, 2013
    Assignee: Microsoft Corporation
    Inventors: Kenneth David Wolf, Justin David Brown, Karthik Raman, Nathan Christopher Talbert, Edmund Samuel Victor Pinto
  • Publication number: 20130159970
    Abstract: The present invention extends to methods, systems, and computer program products for creating and manipulating custom compound data types in declarative programs. The present invention allows a developer to create and use custom compound data types without requiring the custom type to be specifically defined (e.g. via registering a custom assembly) in the underlying framework. This is accomplished by providing a data container that is configurable to represent virtually any combination of primitive or compound types defined within the framework. The present invention also provides a declarative model for interacting with data containers representing custom compound data types. This declarative model employs a path-based syntax (or other type of syntax) for accessing the elements of a custom compound data type. Multiple paths can be defined within a single unit of developer input so that multiple elements of a custom data type can be manipulated by the single unit of input.
    Type: Application
    Filed: December 15, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
  • Publication number: 20130125136
    Abstract: Sending or receiving messages in a host agnostic way in a continuation based runtime. A method includes defining a contract between a continuation based runtime and host for sending or receiving a message. The contract defines one or more of: details about what should be included in the messages, operations for sending the message; operations for receiving the message, parameters for cancellation of inflight operations, or notifications about correlation information lifetime. The method further includes identifying a correlation handle. The correlation handle uniquely identifies an executing instance of an activity. The method further comprises identifying a bookmark. The bookmark defines where the continuation based runtime should resume after sending or receiving the message. The method further comprises calling the contract using the correlation handle and the bookmark to allow the message to be correctly routed by the host and for the continuation based runtime to be correctly resumed.
    Type: Application
    Filed: November 14, 2011
    Publication date: May 16, 2013
    Applicant: Microsoft Corporation
    Inventors: Vishal Kalra, David R. Cliffe, Kenneth David Wolf, Leon Welicki
  • Publication number: 20120297077
    Abstract: Technologies for enabling a continuation based runtime to accept or reject external stimulus and, in addition, to determine if an external stimulus may be valid for processing at a later point in execution.
    Type: Application
    Filed: August 1, 2012
    Publication date: November 22, 2012
    Applicant: Microsoft Corporation
    Inventors: Kenneth David Wolf, Justin David Brown, Karthik Raman, Nathan Christopher Talbert, Edmund Samuel Victor Pinto
  • Patent number: 8296354
    Abstract: The present invention extends to using Simple Object Access Protocol (“SOAP”) to exchange typed objects, such as, for example, parameters for invoking methods. A computer system accesses typed object parameters corresponding to a typed object. The typed object is annotated with one or more message contract attributes of a message contract model defining a mapping between typed object parameters and corresponding SOAP elements. The computer system utilizes the message contract attributes to map the typed object parameters into a SOAP element and inserts the SOAP element into a SOAP envelope. A receiving computer system accessing the SOAP element and utilizes the message contract attributes to map the SOAP element back into the typed object parameters.
    Type: Grant
    Filed: December 3, 2004
    Date of Patent: October 23, 2012
    Assignee: Microsoft Corporation
    Inventors: Erik Bo Christensen, Vaithiakingam B. Balayoghan, Michael James Coulson, Ryan Thomas Sturgell, Natasha Harish Jethanandani, Michael Jon Marucheck, Douglas M. Purdy, Kenneth David Wolf, Michael Steven Vernal, Stefan Harrington Pharies, David Wortendyke