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: 9942179Abstract: 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: GrantFiled: March 15, 2016Date of Patent: April 10, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
-
Patent number: 9798738Abstract: 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: GrantFiled: February 3, 2015Date of Patent: October 24, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
-
Patent number: 9575732Abstract: 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: GrantFiled: June 17, 2013Date of Patent: February 21, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Leon Ezequiel Welicki, Balasubramanian Shyamsundar, Kenneth David Wolf
-
Patent number: 9536264Abstract: 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: GrantFiled: November 14, 2011Date of Patent: January 3, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Vishal Kalra, David R. Cliffe, Kenneth David Wolf, Leon Welicki
-
Publication number: 20160197863Abstract: 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: ApplicationFiled: March 15, 2016Publication date: July 7, 2016Inventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
-
Patent number: 9317323Abstract: 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: GrantFiled: December 26, 2012Date of Patent: April 19, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Kenneth David Wolf, Jesus Ruiz-Scougall, Nathan Christopher Talbert, Clark Roberts
-
Patent number: 9304888Abstract: 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: GrantFiled: June 25, 2013Date of Patent: April 5, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Kenneth David Wolf, Justin David Brown, Edmund Samuel Victor Pinto, Nathan Christopher Talbert
-
Patent number: 9292342Abstract: 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: GrantFiled: December 26, 2012Date of Patent: March 22, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
-
Publication number: 20150213052Abstract: 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: ApplicationFiled: February 3, 2015Publication date: July 30, 2015Inventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
-
Patent number: 8984530Abstract: 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: GrantFiled: January 31, 2008Date of Patent: March 17, 2015Assignee: Microsoft CorporationInventors: Edmund Samuel Victor Pinto, Kenneth David Wolf, Stephen J. Millet, Richard D. Hill, Nicholas Alexander Allen, John Anthony Taylor
-
Patent number: 8949785Abstract: 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: GrantFiled: December 15, 2011Date of Patent: February 3, 2015Assignee: Microsoft CorporationInventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
-
Publication number: 20140380323Abstract: 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: ApplicationFiled: June 25, 2013Publication date: December 25, 2014Inventors: Kenneth David Wolf, Justin David Brown, Edmund Samuel Victor Pinto, Nathan Christopher Talbert
-
Publication number: 20140372974Abstract: 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: ApplicationFiled: June 17, 2013Publication date: December 18, 2014Inventors: Leon Ezequiel Welicki, Balasubramanian Shyamsundar, Kenneth David Wolf
-
Publication number: 20140181305Abstract: 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: ApplicationFiled: December 26, 2012Publication date: June 26, 2014Applicant: MICROSOFT CORPORATIONInventors: Kenneth David Wolf, Clark Roberts, Leon Ezequiel Welicki, Andrei Romanenko, Christopher Lloyd Gillum, Kevin Lam
-
Publication number: 20140181826Abstract: 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: ApplicationFiled: December 26, 2012Publication date: June 26, 2014Applicant: MICROSOFT CORPORATIONInventors: Kenneth David Wolf, Jesus Ruiz-Scougall, Nathan Christopher Talbert, Clark Roberts
-
Patent number: 8620991Abstract: 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: GrantFiled: August 1, 2012Date of Patent: December 31, 2013Assignee: Microsoft CorporationInventors: Kenneth David Wolf, Justin David Brown, Karthik Raman, Nathan Christopher Talbert, Edmund Samuel Victor Pinto
-
Publication number: 20130159970Abstract: 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: ApplicationFiled: December 15, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Leon E. Welicki, John Anthony Taylor, Clark Roberts, Kenneth David Wolf
-
Publication number: 20130125136Abstract: 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: ApplicationFiled: November 14, 2011Publication date: May 16, 2013Applicant: Microsoft CorporationInventors: Vishal Kalra, David R. Cliffe, Kenneth David Wolf, Leon Welicki
-
Publication number: 20120297077Abstract: 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: ApplicationFiled: August 1, 2012Publication date: November 22, 2012Applicant: Microsoft CorporationInventors: Kenneth David Wolf, Justin David Brown, Karthik Raman, Nathan Christopher Talbert, Edmund Samuel Victor Pinto
-
Patent number: 8296354Abstract: 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: GrantFiled: December 3, 2004Date of Patent: October 23, 2012Assignee: Microsoft CorporationInventors: 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