Patents by Inventor Patrick J. Helland

Patrick J. Helland 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: 8086671
    Abstract: The present invention relates to systems and methods that facilitate serial access to related messages stored within a queue. The systems and methods comprise a conversation manager that generates conversation groups and associated conversation group identifiers for related messages, wherein related messages are associated with one or more dialog conversations between services. The conversation manager utilizes a respective conversation group identifier to lock a conversation group and provide exclusive serial access to the related messages therein and any related incoming messages to a reader such that only one reader at a time can access and process the related messages; other readers can still concurrently dequeue and process messages associated with other conversation groups. The present invention employs order queuing techniques that ensure messages are stored in-order, which facilitates in-order serial processing of messages in a conversation group.
    Type: Grant
    Filed: February 11, 2004
    Date of Patent: December 27, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick J. Helland, Gerald L. Hinson
  • Patent number: 7934207
    Abstract: Systems and methods that integrate data type conversion(s) into a programming language, and describe external formats within a syntax thereof. A mapping component defines a declarative mapping from an external data format to one or more of its internal data types (e.g., expressing external data types in terms of source languages.) Moreover, a rule establishing component can define value-based rules, such as invariants to the external data format, wherein the schema declaration further defines data fields that make up the schema. Accordingly, by expressing rules in form of predicate logic (instead of imperative program logic) the subject innovation increase a likelihood that compilers can reason about the data.
    Type: Grant
    Filed: December 19, 2006
    Date of Patent: April 26, 2011
    Assignee: Microsoft Corporation
    Inventors: Niklas Gustafsson, John L. Hamby, Patrick J. Helland
  • Publication number: 20100318454
    Abstract: An exemplary matching module includes instructions for receipt of information about sellable resources for running web-based services; for a solver for minimizing or maximizing a function subject to constraints; and for output of cost information for purchasing or buying sellable resources for running web-based services where the cost information is based at least in part on minimizing or maximizing the function. An exemplary matching module may be configured to receive information in a domain-specific language. Other methods, devices and systems are also disclosed.
    Type: Application
    Filed: June 16, 2009
    Publication date: December 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Heather E. Warncke, Eric Bahna, John D. Dunagan, Stuart H. Schaefer, Dennis B. Gannon, Burton J. Smith, David Gauthier, Ferg Zhao, Patrick J. Helland
  • Publication number: 20100319004
    Abstract: An exemplary policy management layer includes a policy module for a web-based service where the policy module includes logic to make a policy-based decision and an application programming interface (API) associated with an execution engine associated with resources for providing the web-based service, where the API is configured to communicate information from the execution engine to the policy module and where the API is configured to receive a policy-based decision from the policy module and to communicate the policy-based decision to the execution engine to thereby effectuate policy for the web-based service. Various other devices, systems, methods, etc., are also described.
    Type: Application
    Filed: June 16, 2009
    Publication date: December 16, 2010
    Applicant: Microsoft Corporation
    Inventors: William Hunter Hudson, Patrick J. Helland, Benjamin G. Zorn
  • Patent number: 7774219
    Abstract: A method for executing a schedule in a workflow application is provided. The method includes selectively storing a schedule state to a storage medium based on a latency attribute associated with the schedule. Also provided is a method of executing a workflow application comprising long running transactions. This method includes selectively storing a schedule state to a storage medium based on a latency attribute associated with the schedule, and selectively compensating certain actions within the schedule according to a compensation parameter associated with an action, based on failure or abortion of another action within the schedule. In addition, there is provided a method of executing a schedule comprising selectively compensating certain actions or transactions within the schedule according to a compensation parameter associated with an action or transaction, based on failure or abortion of another action or transaction within the schedule.
    Type: Grant
    Filed: July 21, 2000
    Date of Patent: August 10, 2010
    Assignee: Microsoft Corporation
    Inventors: Gregory Lucius Meredith, Amit Mital, Anthony Andrews, Arunchallam S. Sivakumar, Donald J. McCrady, Patrick J. Helland, Bimal Mehta
  • Patent number: 7702924
    Abstract: Reliable end-to-end messaging in which tracking and acknowledgement information are contained in the electronic message that is visible to layers above the transport layer, thereby being independent of what transport protocols, and whether different transport protocols, are used to communicate between the two end points. Furthermore, acknowledgment messages may identify multiple ranges of sequence numbers corresponding to received electronic messages, thereby permitting further flexibility and completeness in acknowledging received messages.
    Type: Grant
    Filed: October 14, 2005
    Date of Patent: April 20, 2010
    Assignee: Microsoft Corporation
    Inventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchuk
  • Patent number: 7634777
    Abstract: Queued component interface passing provides a way for a queued component to convey results of processing a client program's method invocations made asynchronously via a queue. A queued component recorder for a “processing” queued component operates to marshal-by-value a method invocation parameter that is reference to another queued component recorder for another “results” queued component into a data stream of recorded method invocations, which is then submitted as a message to a queue associated with the processing queued component. On receipt of the message from the queue, a queued component player for the processing queued component unmarshals the reference to the other queued component recorder and passes this reference to the processing queued component. The processing queued component uses the passed reference to invoke methods of the results queued component through its message queue, which conveys the processing queued component's results.
    Type: Grant
    Filed: January 6, 2005
    Date of Patent: December 15, 2009
    Assignee: Microsoft Corporation
    Inventors: Richard Dievendorff, Patrick J. Helland, Gagan Chopra, Mohsen M. Al-Ghosein
  • Patent number: 7627759
    Abstract: Reliable end-to-end messaging in which tracking and acknowledgement information are contained in the electronic message that is visible to layers above the transport layer, thereby being independent of what transport protocols, and whether different transport protocols, are used to communicate between the two end points. Furthermore, acknowledgment messages may identify multiple ranges of sequence numbers corresponding to received electronic messages, thereby permitting further flexibility and completeness in acknowledging received messages.
    Type: Grant
    Filed: October 10, 2006
    Date of Patent: December 1, 2009
    Assignee: Microsoft Corporation
    Inventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchuk
  • Publication number: 20080147698
    Abstract: Systems and methods that integrate data type conversion(s) into a programming language, and describe external formats within a syntax thereof. A mapping component defines a declarative mapping from an external data format to one or more of its internal data types (e.g., expressing external data types in terms of source languages.) Moreover, a rule establishing component can define value-based rules, such as invariants to the external data format, wherein the schema declaration further defines data fields that make up the schema. Accordingly, by expressing rules in form of predicate logic (instead of imperative program logic) the subject innovation increase a likelihood that compilers can reason about the data.
    Type: Application
    Filed: December 19, 2006
    Publication date: June 19, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: Niklas Gustafsson, John L. Hamby, Patrick J. Helland
  • Patent number: 7389514
    Abstract: A run-time executive of an object management system for managing execution of software components in an object execution environment uses a component context object to store intrinsic context properties related to an associated component. The run-time executive maintains an implicit association of the component context object with the application component. For example, the context properties can include a client id, an activity id, and a transaction reference. The component context object also provides an interface accessible to the associated component, with member functions for use in transaction processing, in creating additional other application components inheriting component's context properties, and in access control based on abstract user classes (roles).
    Type: Grant
    Filed: May 26, 2004
    Date of Patent: June 17, 2008
    Assignee: Microsoft Corporation
    Inventors: Wilfred G. Russell, Patrick J. Helland, Greg Hope, Rodney Limprecht, Mohsen M. Al-Ghosein, Jan S. Gray
  • Patent number: 7376972
    Abstract: A system and method for employing a key exchange key to facilitate secure communication is provided. The key exchange key can be employed, for example, to encrypt and/or decrypt dialog session key(s) that are used to encrypt and/or decrypt message(s) that form a dialog between an initiator system and target system. In one example, a key exchange key is unique to a service pair, while a dialog session key is unique to a particular dialog between the service pair. The system can facilitate end-to-end encryption of message data in a dialog—the message data is encrypted at one dialog endpoint and not decrypted until it reaches the other dialog endpoint. The system can be employed to facilitate secure dialog with minimal performance overhead when compared with conventional system(s). Optionally, the system can facilitate load balancing (e.g., among deployed instances of a service).
    Type: Grant
    Filed: April 14, 2004
    Date of Patent: May 20, 2008
    Assignee: Microsoft Corporation
    Inventors: Scott A Konersmann, Patrick J Helland
  • Patent number: 7185209
    Abstract: Reliable end-to-end messaging in which tracking and acknowledgement information are contained in the electronic message that is visible to layers above the transport layer, thereby being independent of what transport protocols, and whether different transport protocols, are used to communicate between the two end points. Furthermore, acknowledgment messages may identify multiple ranges of sequence numbers corresponding to received electronic messages, thereby permitting further flexibility and completeness in acknowledging received messages.
    Type: Grant
    Filed: May 28, 2003
    Date of Patent: February 27, 2007
    Assignee: Microsoft Corporation
    Inventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchulk
  • Patent number: 6920636
    Abstract: Queued component interface passing provides a way for a queued component to convey results of processing a client program's method invocations made asynchronously via a queue. A queued component recorder for a “processing” queued component operates to marshal-by-value a method invocation parameter that is reference to another queued component recorder for another “results” queued component into a data stream of recorded method invocations, which is then submitted as a message to a queue associated with the processing queued component. On receipt of the message from the queue, a queued component player for the processing queued component unmarshals the reference to the other queued component recorder and passes this reference to the processing queued component. The processing queued component uses the passed reference to invoke methods of the results queued component through its message queue, which conveys the processing queued component's results.
    Type: Grant
    Filed: December 15, 1999
    Date of Patent: July 19, 2005
    Assignee: Microsoft Corporation
    Inventors: Richard Dievendorff, Patrick J. Helland, Gagan Chopra, Mohsen Al-Ghosein
  • Publication number: 20040243800
    Abstract: Reliable end-to-end messaging in which tracking and acknowledgement information are contained in the electronic message that is visible to layers above the transport layer, thereby being independent of what transport protocols, and whether different transport protocols, are used to communicate between the two end points. Furthermore, acknowledgment messages may identify multiple ranges of sequence numbers corresponding to received electronic messages, thereby permitting further flexibility and completeness in acknowledging received messages.
    Type: Application
    Filed: May 28, 2003
    Publication date: December 2, 2004
    Applicant: Microsoft Corporation
    Inventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchuk
  • Patent number: 6748417
    Abstract: The present invention liberates service provider architecture by allowing the primary logic component that manages the live data to be autonomous from the client interactive logic components. The client interactive logic components have reference data and single user writable data and are charged with interacting with the client and with forming request that will be recognized by the primary logic component. However, unlike the conventional architecture, requests submitted from the client interactive logic components are not trusted by the primary logic component. Instead, information within the request is validated for accuracy before the request is honored. The service provider also assists in handling requests based on stale data by the client interactive logic component generating formal requests that are commutative and business service oriented, and by the primary logic component having policies that recognize the existence of stale data.
    Type: Grant
    Filed: September 21, 2000
    Date of Patent: June 8, 2004
    Assignee: Microsoft Corporation
    Inventor: Patrick J. Helland
  • Patent number: 6490630
    Abstract: A computer architecture for avoiding a deadlock condition in an interconnection network comprises a messaging buffer having a size pre-calculated to temporarily store outgoing messages from a node. Messages are classified according to their service requirements and messaging protocols, and reserved quotas in the messaging buffer are allocated for different types of messages. The allocations of the reserved quotas are controlled by a mechanism that, to prevent overflow, limits the maximum number of messages that can be outstanding at any time. The messaging buffer is sized large enough to guarantee that a node is always able to service incoming messages, thereby avoiding deadlock and facilitating forward progress in communications. The buffer may be bypassed to improve system performance when the buffer is empty or when data in the buffer is corrupted.
    Type: Grant
    Filed: April 2, 1999
    Date of Patent: December 3, 2002
    Assignee: Fujitsu Limited
    Inventors: Wing Leong Poon, Patrick J. Helland, Takeshi Shimizu, Yasushi Umezawa, Wolf-Dietrich Weber
  • Patent number: 6453426
    Abstract: A method and system for distributing various types of cluster data among various storage devices of a server cluster. Cluster core boot data that is needed to get the cluster up and running is stored on a quorum storage mechanism, separate from cluster configuration data which is stored on lower cost and/or higher performance storage. The quorum storage may be implemented via a quorum of nodes, a single quorum disk or a quorum of replica members. The state of the cluster configuration data, as well as the state of other cluster data, may be stored on the quorum storage, thereby assuring the integrity of the data while providing increased reliability through the use of mirror sets of storage elements or the like for storing that data. Significant flexibility in how a cluster may be configured is achieved, along with improved cluster performance and scalability.
    Type: Grant
    Filed: March 26, 1999
    Date of Patent: September 17, 2002
    Assignee: Microsoft Corporation
    Inventors: Rod Gamache, Michael T. Massa, Patrick J. Helland
  • Patent number: 6425017
    Abstract: An object runtime architecture allows method invocations to be made on either a synchronous, real-time basis or a queued basis using the normal call semantics of an object model. The object runtime architecture provides a proxy of an object with a method invocation recorder for receiving method calls of a client on the object, and marshaling the method calls into a message for sending to a queue associated with the object. The object runtime architecture further provides a listener for dispatching the message from the queue to a player which uses a stub to unmarshal the message in order to issue the method calls to the object. The object runtime architecture thus decouples the client and objects lifetimes and availability, without requiring explicit programming of the client and object to perform message queuing. Accordingly, with no modification of the object's interface structure or code, the same object can be used in either a real-time or queued environment.
    Type: Grant
    Filed: August 17, 1998
    Date of Patent: July 23, 2002
    Assignee: Microsoft Corporation
    Inventors: Richard Dievendorff, Patrick J. Helland, Gagan Chopra, Mohsen Al-Ghosein
  • Patent number: 6393023
    Abstract: A system and method for acknowledging receipt of messages within a packet based communication network. A sending node generates a data packet within an upper layer, and transmits the data packet to a receiving node using a lower layer. The lower layer generates and transmits a pseudo reply packet to the upper layer in response to an acknowledgment received from the receiving node. The pseudo reply packet notifies the upper layer of the sending node that the receiving node successfully received the data packet and removes the burden of having an upper layer of the receiving node generate an actual reply packet.
    Type: Grant
    Filed: May 8, 1998
    Date of Patent: May 21, 2002
    Assignee: Fujitsu Limited
    Inventors: Takeshi Shimizu, Wolf-Dietrich Weber, Patrick J. Helland, Thomas M. Wicki, Winfried W. Wilcke
  • Patent number: 6003064
    Abstract: A system and method for controlling data transmission between two network elements. A first port of a transmitting element is coupled to a second port of a receiving element. The second port includes buffers for temporarily storing received data until the data can be sent to another element. Included in the transmitting element are a received-currently-full register (RCFR), a sent-and-not-received register (SANRR), and a buffer-busy register (BBR). The transmitting element checks its BBR to determine if a buffer in the receiving element is available. The availability of buffers can be determined using a single priority protocol or a multiple priority protocol.
    Type: Grant
    Filed: February 22, 1996
    Date of Patent: December 14, 1999
    Assignee: Fujitsu Limited
    Inventors: Thomas M. Wicki, Patrick J. Helland, Jeffrey D. Larson, Albert Mu, Raghu Sastry, Richard L. Schober, Jr.