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: 8086671Abstract: 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: GrantFiled: February 11, 2004Date of Patent: December 27, 2011Assignee: Microsoft CorporationInventors: Patrick J. Helland, Gerald L. Hinson
-
Patent number: 7934207Abstract: 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: GrantFiled: December 19, 2006Date of Patent: April 26, 2011Assignee: Microsoft CorporationInventors: Niklas Gustafsson, John L. Hamby, Patrick J. Helland
-
Publication number: 20100318454Abstract: 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: ApplicationFiled: June 16, 2009Publication date: December 16, 2010Applicant: Microsoft CorporationInventors: 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: 20100319004Abstract: 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: ApplicationFiled: June 16, 2009Publication date: December 16, 2010Applicant: Microsoft CorporationInventors: William Hunter Hudson, Patrick J. Helland, Benjamin G. Zorn
-
Patent number: 7774219Abstract: 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: GrantFiled: July 21, 2000Date of Patent: August 10, 2010Assignee: Microsoft CorporationInventors: Gregory Lucius Meredith, Amit Mital, Anthony Andrews, Arunchallam S. Sivakumar, Donald J. McCrady, Patrick J. Helland, Bimal Mehta
-
Patent number: 7702924Abstract: 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: GrantFiled: October 14, 2005Date of Patent: April 20, 2010Assignee: Microsoft CorporationInventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchuk
-
Patent number: 7634777Abstract: 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: GrantFiled: January 6, 2005Date of Patent: December 15, 2009Assignee: Microsoft CorporationInventors: Richard Dievendorff, Patrick J. Helland, Gagan Chopra, Mohsen M. Al-Ghosein
-
Patent number: 7627759Abstract: 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: GrantFiled: October 10, 2006Date of Patent: December 1, 2009Assignee: Microsoft CorporationInventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchuk
-
Publication number: 20080147698Abstract: 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: ApplicationFiled: December 19, 2006Publication date: June 19, 2008Applicant: MICROSOFT CORPORATIONInventors: Niklas Gustafsson, John L. Hamby, Patrick J. Helland
-
Patent number: 7389514Abstract: 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: GrantFiled: May 26, 2004Date of Patent: June 17, 2008Assignee: Microsoft CorporationInventors: Wilfred G. Russell, Patrick J. Helland, Greg Hope, Rodney Limprecht, Mohsen M. Al-Ghosein, Jan S. Gray
-
Patent number: 7376972Abstract: 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: GrantFiled: April 14, 2004Date of Patent: May 20, 2008Assignee: Microsoft CorporationInventors: Scott A Konersmann, Patrick J Helland
-
Patent number: 7185209Abstract: 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: GrantFiled: May 28, 2003Date of Patent: February 27, 2007Assignee: Microsoft CorporationInventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchulk
-
Patent number: 6920636Abstract: 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: GrantFiled: December 15, 1999Date of Patent: July 19, 2005Assignee: Microsoft CorporationInventors: Richard Dievendorff, Patrick J. Helland, Gagan Chopra, Mohsen Al-Ghosein
-
Publication number: 20040243800Abstract: 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: ApplicationFiled: May 28, 2003Publication date: December 2, 2004Applicant: Microsoft CorporationInventors: David E. Langworthy, Christopher G. Kaler, Luis Felipe Cabrera, Patrick J. Helland, Steven E. Lucco, John P. Shewchuk
-
Patent number: 6748417Abstract: 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: GrantFiled: September 21, 2000Date of Patent: June 8, 2004Assignee: Microsoft CorporationInventor: Patrick J. Helland
-
Patent number: 6490630Abstract: 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: GrantFiled: April 2, 1999Date of Patent: December 3, 2002Assignee: Fujitsu LimitedInventors: Wing Leong Poon, Patrick J. Helland, Takeshi Shimizu, Yasushi Umezawa, Wolf-Dietrich Weber
-
Patent number: 6453426Abstract: 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: GrantFiled: March 26, 1999Date of Patent: September 17, 2002Assignee: Microsoft CorporationInventors: Rod Gamache, Michael T. Massa, Patrick J. Helland
-
Patent number: 6425017Abstract: 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: GrantFiled: August 17, 1998Date of Patent: July 23, 2002Assignee: Microsoft CorporationInventors: Richard Dievendorff, Patrick J. Helland, Gagan Chopra, Mohsen Al-Ghosein
-
Patent number: 6393023Abstract: 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: GrantFiled: May 8, 1998Date of Patent: May 21, 2002Assignee: Fujitsu LimitedInventors: Takeshi Shimizu, Wolf-Dietrich Weber, Patrick J. Helland, Thomas M. Wicki, Winfried W. Wilcke
-
Patent number: 6003064Abstract: 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: GrantFiled: February 22, 1996Date of Patent: December 14, 1999Assignee: Fujitsu LimitedInventors: Thomas M. Wicki, Patrick J. Helland, Jeffrey D. Larson, Albert Mu, Raghu Sastry, Richard L. Schober, Jr.