Patents by Inventor Michael J. Duigou

Michael J. Duigou 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: 6854115
    Abstract: A system and method for providing process persistence in a virtual machine are described. A virtual persistent heap may be provided. The virtual persistent heap may enable the checkpointing of the state of the computation of a virtual machine, including processes executing within the virtual machine, to a persistent storage such as a disk or flash device for future resumption of the computation from the checkpoint. The Virtual Persistent Heap also may enable the migration of the virtual machine computation states, and thus the migration of executing processes, from one machine to another. The saved state of the virtual machine heap may also provide the ability to restart the virtual machine after a system crash or shutdown to the last saved persistent state, and to thus restart a process that was running within the virtual machine prior to the system crash or shutdown to a checkpointed state of the process stored in the virtual persistent heap.
    Type: Grant
    Filed: June 2, 2000
    Date of Patent: February 8, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernard A. Traversat, Michael J. Duigou, Thomas E. Saulpaugh, Gregory L. Slaughter
  • Publication number: 20040168030
    Abstract: A caching mechanism for a virtual persistent heap. A feature of a virtual persistent heap is the method used to cache portions of the virtual persistent heap into the physical heap. The caching mechanism may be effective with small consumer and appliance devices that typically have a small amount of memory and that may be using flash devices as persistent storage. In the caching mechanism, the virtual persistent heap may be divided into cache lines. A cache line is the smallest amount of virtual persistent heap space that can be loaded or flushed at one time. Caching in and caching out operations are used to load cache lines into the heap or to flush dirty cache lines into the store. Different cache line sizes may be used for different regions of the heap. Translation between a virtual persistent heap address and the heap may be simplified by the caching mechanism.
    Type: Application
    Filed: February 20, 2004
    Publication date: August 26, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Bernard A. Traversat, Michael J. Duigou, Thomas E. Saulpaugh, Gregory L. Slaughter
  • Patent number: 6763440
    Abstract: A method and system for garbage collecting a virtual heap using nursery regions for newly created objects to reduce flushing of objects from an in-memory heap to a store heap is provided. The garbage collection method is suited for use with small consumer and appliance devices that have a small amount of memory and may be using flash devices as persistent storage. The garbage collection method may provide good performance where only a portion of the virtual heap may be cached in the physical heap. The virtual heap may use a single address space for both objects in the store and the in-memory heap. In one embodiment, a single garbage collector is run on the virtual heap address space. The garbage collection method may remove non-referenced objects from the virtual heap. The garbage collection method may also include a compaction phase to reduce or eliminate fragmentation, and to improve locality of objects within the virtual heap.
    Type: Grant
    Filed: June 2, 2000
    Date of Patent: July 13, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernard A. Traversat, Michael J. Duigou, Thomas E. Saulpaugh, Gregory L. Slaughter
  • Patent number: 6760815
    Abstract: A caching mechanism for a virtual persistent heap is described. A feature of a virtual persistent heap is the method used to cache portions of the virtual persistent heap into the physical heap. The caching mechanism may be effective with small consumer and appliance devices that typically have a small amount of memory and that may be using flash devices as persistent storage. In the caching mechanism, the virtual persistent heap may be divided into cache lines. A cache line is the smallest amount of virtual persistent heap space that can be loaded or flushed at one time. Caching in and caching out operations are used to load cache lines into the heap or to flush dirty cache lines into the store. Different cache line sizes may be used for different regions of the heap. Translation between a virtual persistent heap address and the heap may be simplified by the caching mechanism. All references may be kept in one address space, the virtual persistent heap address space.
    Type: Grant
    Filed: June 2, 2000
    Date of Patent: July 6, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernard A. Traversat, Michael J. Duigou, Thomas E. Saulpaugh, Gregory L. Slaughter
  • Publication number: 20040044727
    Abstract: Embodiments of a shared resource distributed index mechanism that peers in a peer-to-peer network may utilize to distribute index entries corresponding to resources to indexes of shared resources among one or more other peers. These indexes may be used to direct queries to peers where the queries are most likely to be answered. When a query is received by a rendezvous peer including one or more indexes, contents of the query may be “looked up” in the index to find matches. The results of the lookup may include information on one or peer(s) that may hold advertisement(s) to the resource requested by the query. The query may then be forwarded to one or more peers that may hold the advertisement for the resource. Embodiments may provide “loosely-coupled” distribution of index entries for use in querying for resources in the peer-to-peer network.
    Type: Application
    Filed: August 30, 2002
    Publication date: March 4, 2004
    Inventors: Mohamed M. Abdelaziz, Bernard A. Traversat, Michael J. Duigou, Jean-Christophe Hugly, Sherif Botros
  • Publication number: 20040030743
    Abstract: System and method for describing and identifying abstract software modules in peer-to-peer networking environments. A module class may have one or more module specifications. Each module specification may have one or more module implementations. A module class advertisement may be generated for the module class. A unique module class identifier may be assigned to the module class. A role extension to the module class identifier may be generated for each instance of the module class that performs a different role in a context. A unique module specification identifier may be assigned to each module specification of the module class. In one embodiment, a module specification advertisement may be generated for each module specification. In one embodiment, there may be one or more module implementations for each module specification. In one embodiment, a module implementation advertisement may be generated for each module implementation.
    Type: Application
    Filed: February 20, 2003
    Publication date: February 12, 2004
    Inventors: Jean-Christophe Hugly, Mohamed M. Abdelaziz, Eric Pouyoul, Bernard A. Traversat, Michael J. Duigou
  • Publication number: 20040031038
    Abstract: System and method for providing multiple embodiments of abstract software modules in peer-to-peer network environments. A module class may have one or more module specifications. Each module specification may have one or more module implementations configured to execute within a particular execution environment. A unique module class identifier may be assigned to the module class. A role extension to the module class identifier may be generated for each instance of the module class that performs a different role in a context. A module specification advertisement may be generated for each module specification. A unique module specification identifier may be assigned to each module specification of the module class. A module implementation advertisement may be generated for each module implementation. In one embodiment, the module specification identifier of the corresponding module specification is included in each module implementation advertisement.
    Type: Application
    Filed: February 20, 2003
    Publication date: February 12, 2004
    Inventors: Jean-Christophe Hugly, Mohamed M. Abdelaziz, Eric Pouyoul, Bernard A. Traversat, Michael J. Duigou
  • Publication number: 20040030794
    Abstract: System and method for multiplatform implementation of abstract software modules in peer-to-peer networking environments. A module class may have one or more module specifications. Each module specification may have one or more module implementations configured to execute within a particular execution environment. A unique module class identifier may be assigned to the module class. A unique module specification identifier may be assigned to each module specification of the module class. In one embodiment, a module specification advertisement may be generated for each module specification. A module implementation advertisement may be generated for each module implementation. In one embodiment, the module specification identifier of the corresponding module specification is included in each module implementation advertisement.
    Type: Application
    Filed: February 20, 2003
    Publication date: February 12, 2004
    Inventors: Jean-Christophe Hugly, Mohamed M. Abdelaziz, Eric Pouyoul, Bernard A. Traversat, Michael J. Duigou
  • Patent number: 6643650
    Abstract: A system and method for searching for documents within spaces in a distributed computing environment are provided. A client sends a lookup message to a space which stores documents. The lookup message may specify desired characteristics, such as a name or partial XML schema, of the stored documents. The documents may include XML service advertisements and XML device advertisements as well as general-purpose XML documents. A set of zero or more documents which match the lookup message are discovered. In one embodiment, the lookup message may include a desired name. If the lookup message includes both a desired name and a desired schema, the set of discovered documents may include both discovered documents having a name that matches the desired name and discovered documents having a schema that matches the desired schema. If the lookup message includes neither a desired name nor a desired schema, the set of discovered documents may include substantially all the documents stored in the space.
    Type: Grant
    Filed: September 12, 2000
    Date of Patent: November 4, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Gregory L. Slaughter, Thomas E. Saulpaugh, Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou
  • Publication number: 20030041141
    Abstract: Embodiments of a decentralized mechanism for detecting the presence of entities in a peer-to-peer network. In one embodiment, using pipes, a peer may uniquely and independently generate an identity for a peer-to-peer network entity. The identity may be used to probe the peer-to-peer network for presence of instances of the corresponding entity on other peers regardless of which peer the identity was generated on and without using a central identity repository or presence system. In one embodiment, net crawling may be used to map identities and resolve the locations of instances of the corresponding entities. An entity may move anywhere on the network, and the decentralized mechanism for detecting entity presence may be used to locate the instance(s) of the entity.
    Type: Application
    Filed: October 3, 2002
    Publication date: February 27, 2003
    Inventors: Mohamed M. Abdelaziz, Eric Pouyoul, Jean-Christophe Hugly, Bernard A. Traversat, Michael J. Duigou
  • Publication number: 20030002521
    Abstract: A system and method for providing resources to networked devices for participating in a peer-to-peer environment. In one embodiment, a peer computing system on a network may include one or more bootstrap nodes that may provide, to devices coupled to the network, mechanisms for accessing resources for participating in the peer-to-peer environment. The bootstrap nodes may be peer nodes. The resources may give the devices access to services each of which may implement peer-to-peer platform protocols. The devices may be pre-configured to access one or more predefined peer nodes for information on bootstrap nodes. Alternatively, devices may use a bootstrapping mechanism to locate bootstrap nodes on the network.
    Type: Application
    Filed: January 22, 2002
    Publication date: January 2, 2003
    Inventors: Bernard A. Traversat, Li Gong, William J. Yeager, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020188657
    Abstract: A system and method for uniquely identifying peers and other resources in a peer-to-peer networking environment. In one embodiment, every peer in the peer-to-peer network may have a unique peer identifier. Other peer-to-peer network resources may also have unique identifiers, including peer groups, services, applications, pipes, endpoints, content and resource advertisements. Identifiers may serve to canonically refer to resources. Identifiers may be embedded in advertisements for resources. In one embodiment, a peer identifier may identify a peer group in which the peer is a member peer. In one embodiment, a peer may have a different peer identifier for each group in which it is a member peer. In one embodiment, an identifier may be bound to a network address of the resource. If the resource changes network addresses, the identifier may be bound to the new network address. Thus, identifiers provide dynamic addressing for resources in the peer-to-peer environment.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 12, 2002
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William N. Joy, Michael J. Clary
  • Publication number: 20020184358
    Abstract: A system and method for establishing communications channels between and among peers in a peer-to-peer networking environment. Pipes may be used as communication channels for sending and receiving messages and other data between services or applications over input and output endpoints. Pipes may be asynchronous, unidirectional, stateless and unreliable. Bidirectional pipes may also be supported. Pipes may have ends that may be moved around and bound to different peers at different times. Point-to-point and propagate pipes may be supported. Pipes may connect peers that have a direct physical link and peers that do not have a direct link. Peers may communicate through pipes without knowing on which peer a pipe endpoint is bound. A message is sent to all peer endpoints currently connected (listening) to the pipe. The set of connected endpoints may be obtained from a pipe service using a pipe binding protocol.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, William N. Joy, Michael J. Clary
  • Publication number: 20020184310
    Abstract: A system and method for providing peer groups in a peer-to-peer environment. A peer group may be one or more peers in a peer-to-peer environment that share a set of network services and content. A peer group may define an implicit scope for messages originating from members peers of the peer group. A peer group may provide redundant services and content for greater reliability. In one embodiment, interaction among peers and peer groups in the peer-to-peer environment may be implemented using protocols that are platform-independent as to programming language implementations and network transports. In one embodiment, peers may discover existing peer groups and join the existing peer groups. In one embodiment, peers may create new peer groups.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Li Gong, William J. Yeager, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020184357
    Abstract: A system and method for providing rendezvous nodes in a peer-to-peer networking environment is described. Rendezvous nodes preferably cache information about network resources that may be useful to peer nodes on a peer-to-peer network. In one embodiment, a network of rendezvous nodes may help peer nodes to discover network resources over long-range on the peer-to-peer network. Network resource may include, but may not be limited to peer nodes, peer groups, services, content, and communication channels. In one embodiment, rendezvous nodes may respond to discovery query messages from peer nodes. The discovery query messages may specify desired network resource information. In one embodiment, rendezvous nodes may provide route discovery for network resources. In one embodiment, a peer node may be pre-configured with a pre-defined set of rendezvous nodes to access on startup. These bootstrapping rendezvous may help the peer node discover network resources that it needs to start up.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Li Gong, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020184311
    Abstract: A peer-to-peer platform that may provide mechanisms through which peers may discover each other, communicate with each other, and cooperate with each other to form peer groups is described. The peer-to-peer platform may comprise several layers including a peer-to-peer platform layer, a peer-to-peer services layer, and a peer-to-peer applications layer. At the highest abstraction level, the peer-to-peer platform may be viewed as a set of protocols. Each protocol may be defined by one or more messages exchanged among participants of the protocol. In one embodiment, the peer-to-peer platform may include, but is not limited to, one or more of a peer discovery protocol, a peer resolver protocol, a peer information protocol, a peer membership protocol, a pipe binding protocol, and an endpoint routing protocol. To underpin this set of protocols, the peer-to-peer platform may define a number of concepts including peer, peer group, advertisement, message, pipe, and endpoint.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Gregory L. Slaughter, Thomas E. Saulpaugh, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, William N. Joy, Michael J. Clary
  • Publication number: 20020156893
    Abstract: System and method for the dynamic and transparent migration of services in a peer-to-peer networking environment. Member peers in a peer group using a peer-to-peer platform may cooperate to provide redundant instances of services to member peers. Dynamic migration of a service may be performed by unbinding one or more peer-to-peer platform pipes from a peer hosting an instance of the service and binding the pipes to another peer hosting a different instance of the service. Using pipes, services may transparently failover from one physical peer endpoint to another in order to mask a service or peer failure, or to access a newly published instance of a service. Thus, a collection of peers may provide a high level of fault tolerance, where, for example, a new peer at a different location may replace a crashed peer, with the new peer taking over the existing pipe to keep the communication going.
    Type: Application
    Filed: June 5, 2002
    Publication date: October 24, 2002
    Inventors: Eric Pouyoul, Mohamed M. Abdelaziz, Jean-Christophe Hugly, Michael J. Duigou, Bernard A. Traversat
  • Publication number: 20020152299
    Abstract: Embodiments of a system and method for establishing reliable connections between peers in a peer-to-peer networking environment. In one embodiment, a reliable communications channel may use transmit and receive windows, acknowledgement of received messages, and retransmission of messages not received to provide reliable delivery of messages between peers in the peer-to-peer environment. In one embodiment, each message may include a sequence number configured for use in maintaining ordering of received messages on a receiving peer. A communications channel may make multiple hops on a network, and different hops in the connection may use different underlying network protocols. Communications channels may also pass through one or more firewalls and/or one or more gateways on the network. A communications channel may also pass through one or more router (relay) peers on the network. The peers may adjust the sizes of the transmit and receive window based upon reliability of the connection.
    Type: Application
    Filed: January 22, 2002
    Publication date: October 17, 2002
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, William N. Joy, Michael J. Clary
  • Publication number: 20020147810
    Abstract: A system and method for sending, resolving, and receiving queries for information on the status of network resources. A peer computing system may include one or more resolver nodes on a network for resolving queries for a resource to particular resource instances. The resolver nodes may receive query messages from peer nodes on the network. Each query message may request information about a resource implemented by one or more peer nodes on the network. The query messages may be formatted in accordance with a peer resolver protocol. The resolver node may determine a particular instance of the resource hosted on a particular peer node to receive the query. The resolver node may use a variety of criteria to determine a particular resource instance. The resolver node may forward the query message to the determined resource instance.
    Type: Application
    Filed: January 22, 2002
    Publication date: October 10, 2002
    Inventors: Bernard A. Traversat, Li Gong, William J. Yeager, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020147771
    Abstract: A system and method for providing an open network computing platform designed for peer-to-peer computing. The peer-to-peer platform may provide protocols for peer-to-peer services and applications that allow peers to discover each other, communicate with each other, and cooperate with each other to form peer groups. The protocols may include a peer membership protocol, a peer discovery protocol, a peer resolver protocol, a peer information protocol, a pipe binding protocol, and a peer endpoint protocol. Services and applications that participate in the protocols may be provided to deal with higher-level concepts. Advertisements may be used to publish peer resources. The peer-to-peer platform provides the ability to replicate information toward end users and may enable peers to find content that is closest to them. The peer-to-peer protocols and unique peer identifiers may allow peer nodes to move to different locations and access services and other content independent of network physical addresses.
    Type: Application
    Filed: January 22, 2002
    Publication date: October 10, 2002
    Inventors: Bernard A. Traversat, Gregory L. Slaughter, Thomas E. Saulpaugh, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, Kuldipsingh Pabla, William N. Joy, Michael J. Clary