Patents by Inventor Richard L. Hasha

Richard L. Hasha 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: 7613703
    Abstract: The present invention extends to methods, systems, and computer program products for organizing resources into collections to facilitate more efficient and reliable resource access. Namespace managers communicate with one another to form a federation namespace infrastructure. The infrastructure can efficiently route, migrate, and process namespace requests, such as, for example, namespace registration requests from providers requesting to manage portions of namespaces and lookup requests from consumers requesting access to managed resources. Resources can be registered in and made accessible from multiple different namespaces. Resources can be identified using nested queries that filter results at multiple levels of a hierarchical namespace.
    Type: Grant
    Filed: September 30, 2004
    Date of Patent: November 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, Richard L. Hasha
  • Publication number: 20090248900
    Abstract: The present invention extends to methods, systems, and computer program products for synchronizing clocks in an asynchronous distributed system. Embodiments of the invention facilitate creation of a trustable and practical common time (time of day) reference across a set of peer nodes (observers), such as, for example, members within a common asynchronous (distributed) system. A class of pseudo synchronous system can be created via tracking and accumulating worst case relativistic time skews amongst pairs of nodes (observers), without reference to a common master. As such, cooperating nodes can essentially guarantee a lower bound on the time-of-day that one node will observe, given an observation on another node. Accordingly, embodiments of the invention can be applied to provide a consistent (essentially safe) view of the worst case (i.e., greatest variance in) current time across such an asynchronous system—without a common external time-of-day clock entity being used.
    Type: Application
    Filed: March 25, 2009
    Publication date: October 1, 2009
    Applicant: Microsoft Corporation
    Inventors: Michael J. Marucheck, Richard L. Hasha, Mansoor Mohsin
  • Patent number: 7496602
    Abstract: Implementations of the present invention relate in part to optimizations to peer-to-peer communication systems. For example, one implementation relates to use of a smart transceiver that creates, caches, and manages communication channels dynamically between peers. Another implementation relates to use of a central tracking object that can be used to efficiently register and distribute peer messages among the various peers. In one implementation, the central tracking object is shared amongst peers in the group. Still another implementation relates to associating peer groups with namespaces, and for including peer groups of one namespace within still other peer groups of different namespaces. These and other aspects of the invention can also be used to ensure delivery intent of a given peer message is preserved, and to ensure that optimal numbers of messages are communicated to any given peer at any given time.
    Type: Grant
    Filed: January 4, 2006
    Date of Patent: February 24, 2009
    Assignee: Microsoft Corporation
    Inventors: Christopher G. Kaler, Gopala Krishna R. Kakivaya, Hervey Oliver Wilson, Richard L. Hasha
  • Publication number: 20090041033
    Abstract: The present invention extends to methods, systems, and computer program products for fitness based routing. Embodiments of the invention significantly improve the likelihood that routing nodes contained in routing table have adequate (or even relatively increased) ability to transfer and process messages in an overlay network. Thus, when the node is to make a routing decision for a message, the node has some assurances that any selected routing node is adequate (or is at least the best currently available). Further, a sending node can take preference to routing nodes with higher fitness values when sending a message. Preference to higher fitness metric values further insures that messages are adequately transferred and processed. Accordingly, embodiments of the invention can be used to route messages in a manner that optimizes bandwidth and provides efficient routing capability.
    Type: Application
    Filed: July 15, 2008
    Publication date: February 12, 2009
    Applicant: Microsoft Corporation
    Inventors: Michael J. Marucheck, Bradford H. Lovering, Max Attar Feingold, Richard L. Hasha, Michael Abbott
  • Patent number: 7466662
    Abstract: The present invention extends to methods, systems, and computer program products for establishing and maintaining membership within a federation infrastructure. A joining node submits a join message to an existing federation infrastructure. The federation infrastructure routes the join message to a processing node. The processing node facilitates identification of predecessor, successor, neighborhood, and routing nodes (for the joining node) within a ring of nodes. The joining node exchanges messages with identified nodes to obtain state information for the identified nodes and other nodes within the ring. Nodes periodically exchange state information, including state information for other nodes, such that state information for the ring is efficiently propagated to all nodes in the ring even when communication between some nodes is lost. Instance IDs, phase values, and freshness values are used to determine when state information is stale and/or is to be updated.
    Type: Grant
    Filed: December 17, 2004
    Date of Patent: December 16, 2008
    Assignee: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, Richard L. Hasha, Thomas Lee Rodeheffer
  • Publication number: 20080288646
    Abstract: In some embodiments, it is determined that a primary node has been elected from among a plurality of nodes in a replica set of nodes. The primary node accepts and processes client data access requests. The replica set includes the primary node and other secondary nodes. The primary node receives client data access requests. The primary node assigns a data sequence number to each client data access request that mutates state in the order the client data access requests are received. The data sequence numbers include a linearized processing order that is to be followed by each of the nodes in the replica set. The primary node sends the mutating client data access requests including any corresponding data sequence numbers to the secondary nodes. The primary node receives, from a threshold number of secondary nodes, an acknowledgement indicating reception of the client data access request. The primary node commits the data mutating access request.
    Type: Application
    Filed: November 7, 2007
    Publication date: November 20, 2008
    Applicant: Microsoft Corporation
    Inventors: Richard L. Hasha, Lu Xun, Gopala Krishna R. Kakivaya, Dahlia Malkhi
  • Publication number: 20080288659
    Abstract: The present invention extends to methods, systems, and computer program products for a joining node to join a ring of nodes within a rendezvous federation. Embodiments include detecting a neighborhood of nodes on the ring of nodes. The joining node indicates its intent to take id-space ownership for a portion of the id-space between the joining node and a selected immediately adjacent node. The joining node indicates an intent to monitor the selected node. The joining node receives three indications, the first indicating acceptance of the joining node's intent to take id-space ownership for a portion of the id-space between the joining node and the selected node, the second indicating acceptance of the joining node's intent to monitor the selected node, the third indicating the first selected node's intent to monitor the joining node. The joining node indicates acceptance of the selected node's intent to monitor the joining node.
    Type: Application
    Filed: November 7, 2007
    Publication date: November 20, 2008
    Applicant: Microsoft Corporation
    Inventors: Richard L. Hasha, Lu Xun, Gopala Krishna R. Kakivaya, Dahlia Malkhi
  • Patent number: 7453906
    Abstract: Systems and methods for automatic network optimization with application variables are provided. Operation of a protocol stack, such as an SCP stack, relies upon a number of persistent variables, which are remembered over power and reset cycles, used in connection with controlling protocol timing and behavior. These application variables are handled at the network layer of the protocol and may be assigned values by an address space arbitrator, which is an entity responsible for managing the logical network. Each node member of a logical network maintains a set of values for its application variables. This set can be handled by the protocol's network layer, and can be saved in persisted storage. Since the variable values may be modified asynchronously, they are treated as volatile and thus, when a variable is used, its value is obtained through an application interface exposed by a network layer, e.g., through polling.
    Type: Grant
    Filed: September 19, 2002
    Date of Patent: November 18, 2008
    Assignee: Microsoft Corporation
    Inventors: Guillaume Simonnet, Harry S. Pyle, Richard L. Hasha
  • Patent number: 7362718
    Abstract: The present invention extends to methods, systems, and computer program products for establishing and maintaining membership within a federation infrastructure. A joining node submits a join message to an existing federation infrastructure. The federation infrastructure routes the join message to a processing node. The processing node facilitates identification of predecessor, successor, neighborhood, and routing nodes (for the joining node) within a ring of nodes. The joining node exchanges messages with identified nodes to obtain state information for the identified nodes and other nodes within the ring. Nodes periodically exchange state information, including state information for other nodes, such that state information for the ring is efficiently propagated to all nodes in the ring even when communication between some nodes is lost. Instance IDs, phase values, and freshness values are used to determine when state information is stale and/or is to be updated.
    Type: Grant
    Filed: December 17, 2004
    Date of Patent: April 22, 2008
    Assignee: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, Richard L. Hasha, Thomas Lee Rodeheffer
  • Patent number: 6934269
    Abstract: A system for forming and maintaining one or more networks of devices connected to a shared includes processes for: (a) forming a logical network on the shared media; (b) discovering devices connected to the shared medium; (c) assigning (or acquiring) devices to a logical network; and (d) maintaining a logical network. The system also defines a message format and protocol for communication over the shared media. The protocol uses a two-level address scheme (e.g., a logical network ID and a device ID) and defines several message types used to support the above processes and other useful features. A logical network includes an address space arbiter (ASA) and, typically, one or more devices attached to the shared media. An acquisition authority (AA), interacting with the ASA, is required to complete acquisition of a device by a logical network.
    Type: Grant
    Filed: April 24, 2000
    Date of Patent: August 23, 2005
    Assignee: Microsoft Corporation
    Inventors: Richard L. Hasha, Bradford A. Christian, John E. Elsbree, Timothy R. Osborne
  • Publication number: 20040267876
    Abstract: An ad-hoc discovery protocol improves reliability, security and scalability of multicast and server-based discovery. In switching from multicast to server-based discovery, the discovery client is made responsible for multicast suppression, and not discoverable devices with services. Messages include message identifier and time-to-live parameters to detect recast queries and avoid duplicating replies. A device's announcement message includes endpoint identifier, configuration number and stateless boot time parameters to detect changed device configuration and rebooted state for refreshing cached device and service descriptions. Paging parameters allow a discovery client to control the number of discovery responses returned at a time from a discovery server.
    Type: Application
    Filed: June 30, 2003
    Publication date: December 30, 2004
    Applicant: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, Jeffrey C. Schlimmer, Christian Huitema, Richard L. Hasha, Don Box, Jeffrey B. Parham
  • Publication number: 20040081201
    Abstract: Systems and methods for automatic network optimization with application variables are provided. Operation of a protocol stack, such as an SCP stack, relies upon a number of persistent variables, which are remembered over power and reset cycles, used in connection with controlling protocol timing and behavior. These application variables are handled at the network layer of the protocol and may be assigned values by an address space arbitrator, which is an entity responsible for managing the logical network. Each node member of a logical network maintains a set of values for its application variables. This set can be handled by the protocol's network layer, and can be saved in persisted storage. Since the variable values may be modified asynchronously, they are treated as volatile and thus, when a variable is used, its value is obtained through an application interface exposed by a network layer, e.g., through polling.
    Type: Application
    Filed: September 19, 2002
    Publication date: April 29, 2004
    Inventors: Guillaume Simonnet, Harry S. Pyle, Richard L. Hasha