IP Library Granted Patent US 7,051,070
Granted Patent B2
US 7,051,070 · App. 10/105,018 · Granted May 23, 2006

Asynchronous messaging using a node specialization architecture in the dynamic routing network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,051,070
App. No.
10/105,018
Granted
May 23, 2006
Kind
B2
Abstract

A network routes update messages containing updates to properties of live objects from input sources to clients having the objects. When the clients receive live objects, the clients identify the object IDs associated with the objects and register the object IDs with the routing network. The routing network is adapted to selectively send update messages to nodes in the network and the nodes forward the messages to the clients. One implementation uses a hierarchy of registries to indicate which nodes and clients receive which update messages. Another implementation assigns update messages to one or more of N categories and nodes to one or more of M types, and the gateways maintain mapping between categories and types. To ensure that clients receive all of the update messages for which they register, the clients connect to client proxies that in turn connect to at least one node of each type.

Claims (56)

1. A method for dynamically updating a property of a live object at remote clients, comprising:

receiving a first message from a remote input source, the first message identifying the live object and containing data for updating a property of the live object;

identifying nodes that have registered for updates to the live object, wherein the nodes are distributed on a network;

routing the first message via the network to the registered nodes;

identifying remote clients that have registered for updates to the live object, wherein the remote clients are distributed on the network; and

routing a second message via the network from the nodes to the registered clients, the second message identifying the live object and containing the data for updating the property of the live object;

wherein the registered clients are adapted to process the data to cause the update to the property of the live object.

2. The method of claim 1 , wherein the live object is identified by an object ID.

3. The method of claim 1 , further comprising:

receiving a registration request from a node, the registration request identifying the live object with an object ID.

4. The method of claim 1 , further comprising:

receiving a registration request from a client, the registration request identifying the live object with an object ID.

5. The method of claim 1 , further comprising:

receiving a request from a client for an activation module, the activation module adapted to identify any live objects at the client; and

providing the activation module to the client.

6. The method of claim 1 , further comprising:

receiving, by a node, a registration request registering for updates to properties of live objects at the client.

7. The method of claim 1 , further comprising:

processing the first message from a first format to a second format to produce the second message.

8. The method of claim 1 , wherein the first message and the second message are identical.

9. A dynamic content routing network for enabling updating of a property of a live object at a client coupled to the network, comprising:

a gateway for receiving a message from a remote input source, the message identifying the live object and containing data for updating a property of the live object, for maintaining a registry of nodes coupled to the gateway that have registered to receive updates to properties of the live object, and for routing the message to the registered nodes; and

a node in communication with the gateway, for receiving the message from the gateway, for maintaining a registry of remote clients coupled to the network that have registered to receive updates to properties of the live object, and for routing the message to the registered clients.

10. The routing network of claim 9 , wherein the node is further adapted to receive a registration request from a client, the registration request identifying the live object with an object ID, to update the node's registry in response to the registration request, and to send a corresponding registration request to the gateway if the node is not registered for the object ID.

11. The routing network of claim 9 , wherein the node is further adapted to receive a deregistration request from a client, the deregistration request identifying the live object with an object ID, and to send a corresponding deregistration request to the gateway if no other clients connected to the node are registered for the object ID.

12. The routing network of claim 9 , wherein the registry maintained by the node comprises:

a data structure identifying live objects for which clients have registered, and an address of each registered client.

13. The routing network of claim 9 , wherein the registry maintained by the gateway comprises:

a data structure identifying live objects for which nodes have registered, and an address of each registered node.

14. A dynamic content routing network for enabling updating properties of live objects at a client coupled to the network, comprising:

a gateway for receiving messages from a remote input source, the messages identifying the live objects and containing data for updating properties of the live objects, for identifying categories of the messages, for determining node types to which the message categories map, and for routing the messages responsive to the mappings; and

a plurality of nodes, each node assigned to at least one node type, the nodes in communication with the gateway and adapted to receive messages of categories mapped to the nodes' types, the nodes for maintaining a registry of clients coupled to the network that have registered to receive updates to properties of the live objects, and for routing the messages to the registered clients.

15. The routing network of claim 14 , wherein a node includes client identifiers with the messages routed to the clients, the network further comprising:

a client proxy in communication with a node of each type, for receiving the messages routed by the nodes and the client identifiers and for using the client identifiers to route the messages to the registered clients.

16. The routing network of claim 14 , wherein the registry maintained by a node comprises:

a data structure identifying clients that have registered for live objects, client proxy identifiers identifying the client proxies to which the clients are connected, and client identifiers identifying connections between the client proxies and clients.

17. The routing network of claim 14 , wherein the registry maintained by the node comprises:

a data structure identifying clients that have registered for live objects, client proxy identifiers identifying the client proxies to which the clients are connected, and a list of client identifiers identifying connections between the clients and client proxies.

18. The routing network of claim 15 , wherein the client proxy is further adapted to receive a registration request for update messages for a live object from a client and to route the registration request to a node.

19. The routing network of claim 18 , wherein the client proxy routes the registration request to at least one node of each type.

20. The routing network of claim 18 , wherein the client proxy routes the registration request to a node of a type to which the update message category is mapped.

21. A dynamic content routing network for enabling updating properties of live objects at a client coupled to the network, comprising:

a gateway for receiving messages from a remote input source, the messages identifying the live objects and containing data for updating properties of the live objects, for identifying categories of the messages, for determining node types to which the message categories map, and for routing the messages responsive to the mappings; and

a plurality of nodes, each node assigned to at least one node type, the nodes in communication with the gateway and adapted to receive messages of categories mapped to the nodes' types, the nodes for determining a client proxy that is registered to receive updates to properties of the live object, and for routing the message to the registered client proxy.

22. The routing network of claim 21 , wherein the registry maintained by the client proxy comprises:

a data structure identifying live objects for which clients have registered, and an address of each registered client.

23. A method for dynamically updating properties of live objects at remote clients, the method comprising the steps:

receiving a message from a remote input source, the message identifying a live object and containing data for updating a property of the live object;

identifying a category of the message;

identifying a mapping to a node type for the identified category of the message; and

routing the message via the network to a node of the identified node type;

wherein the node is adapted to identify clients that have registered for updates to properties of the live object and to route the message to those clients, and wherein the clients are adapted to process the message to cause the update to the property of the live object.

24. The method of claim 23 , wherein the step of identifying a category of the message comprises the step of:

looking up the message in a lookup table.

25. The method of claim 23 , wherein the step of identifying a category of the message comprises the step of:

applying a hash function to an ID of the live object to generate the category.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2023
From: ZARBAÑA DIGITAL FUND LLC
To: INTELLECTUAL VENTURES I LLC
Reel/Frame 065469/0496 →
MERGER Recorded Dec 6, 2015
From: SHAW PARSING LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 037219/0324 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2004
From: BANG NETWORKS, INC.
To: SHAW PARSING LLC
Reel/Frame 014790/0220 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2002
From: TUTTLE, TIMOTHY; RUMELHART, KARL E.
To: BANG NETWORKS, INC.
Reel/Frame 013025/0417 →
Continuity (7)
Continuation In Part 1001718200 · Dec 14, 2001
Provisional Application 6028062700 · Mar 29, 2001
Provisional Application 6027960800 · Mar 28, 2001
Provisional Application 6027830300 · Mar 21, 2001
Provisional Application 6027684700 · Mar 16, 2001
Provisional Application 6025661300 · Dec 18, 2000
Related Publication 20060031283A1 · Feb 9, 2006