Addressing message gates in a distributed computing environment
First Claim
1. A method for addressing a message endpoint in a distributed computing environment, comprising:
- generating a gate name for a message gate, wherein the message gate is a message endpoint for messages in the distributed computing environment;
binding the gate name to a first transport address;
using the message gate to receive first messages from an entity in the distributed computing environment, wherein the first messages are sent to a first address including a combination of the gate name and the first transport address;
unbinding the gate name and the message gate from the first transport address;
binding the gate name to a second transport address; and
using the message gate to receive second messages, wherein the second messages are sent to a second address including a combination of the gate name and the second transport address.
2 Assignments
0 Petitions
Accused Products
Abstract
A message gate is the message endpoint for a client or service in a distributed computing environment. A message gate may provide a secure message endpoint that sends and receives type-safe messages. A gate may have a gate name that is a unique ID that refers only to the gate. In one embodiment, a gate is assigned a gate name when the gate is created and the gate name refers to only that gate for the life of the gate. A gate may be addressed using its gate name. The name may allow clients and services to migrate about the network and still work together. In a preferred embodiment, the gate address is independent of the physical message transport address and/or socket layer. Thus, a gate name may provide a virtual message endpoint address that may be bound and un-bound to a message transport address.
-
Citations
45 Claims
-
1. A method for addressing a message endpoint in a distributed computing environment, comprising:
-
generating a gate name for a message gate, wherein the message gate is a message endpoint for messages in the distributed computing environment;
binding the gate name to a first transport address;
using the message gate to receive first messages from an entity in the distributed computing environment, wherein the first messages are sent to a first address including a combination of the gate name and the first transport address;
unbinding the gate name and the message gate from the first transport address;
binding the gate name to a second transport address; and
using the message gate to receive second messages, wherein the second messages are sent to a second address including a combination of the gate name and the second transport address. - View Dependent Claims (2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15)
a first client using the message gate to access a service within the distributed computing device;
wherein said binding the gate name to a first transport address comprises binding the gate name to a transport address for the first client; and
wherein said using the message gate to receive first messages from an entity in the distributed computing environment comprises the first client using the message gate to receive messages from the service.
-
-
3. The method as recited in claim 2, further comprising creating the message gate according to a message schema for the service, wherein the message gate is configured to verify that messages passing through the message gate comply with the message schema.
-
4. The method as recited in claim 3, wherein the message schema is a data representation language schema and wherein messages sent between the first client and the service are formatted in the data representation language.
-
5. The method as recited in claim 4, wherein the data representation language is eXtensible Markup Language (XML).
-
6. The method as recited in claim 2, further comprising:
-
the first client finishing using the message gate to access the service;
wherein said unbinding the gate name and the message gate from the first transport address comprises the first client releasing the message gate;
wherein said binding the gate name to a second transport address comprises a second client binding the gate name to a transport address for the second client; and
wherein said using the message gate to receive second messages comprises the second client using the message gate to access the service.
-
-
9. The method as recited in claim 1, wherein the first transport address is a transport address for a first node in the distributed computing environment, wherein said using the message gate to receive first messages from an entity in the distributed computing environment comprises a process running in the first node using the message gate to receive messages from the entity;
- the method further comprising;
migrating the process and the message gate to a second node within the distributed computing environment;
wherein said second transport address comprises a transport address for the second node; and
wherein said using the message gate to receive second messages comprises the process using the message gate at the second node to receive the second messages from the entity.
- the method further comprising;
-
10. The method as recited in claim 1, wherein the gate name comprises a name string from an advertisement for a service within the distributed computing environment, wherein said using the message gate to receive first messages from an entity in the distributed computing environment comprises the service using the message gate to receive the first messages from a client within the distributed computing environment, and wherein the advertisement for the service comprises a message schema defining the first messages.
-
11. The method as recited in claim 10, wherein the gate name further comprises a random number.
-
12. The method as recited in claim 1, wherein the first transport address comprises a reference to a transport layer.
-
13. The method as recited in claim 12, wherein said reference includes a reference to a network socket.
-
14. The method as recited in claim 12, wherein said reference comprises a URI including a Port/IP address pair.
-
15. The method as recited in claim 1, wherein the gate name comprises a Universal Unique Identifier (UUID).
-
7. The method as recited in 2, further comprising:
-
assigning a new transport address for the first client;
wherein said binding the gate name to a second transport address comprises binding the gate name to the new transport address for the client; and
wherein said using the message gate to receive second messages, comprises the client using the message gate to access the service. - View Dependent Claims (8)
-
-
16. A device, comprising:
-
a processor;
a memory coupled to the processor, wherein the memory is configured to store instructions executable by said processor to;
generate a gate name for a message gate, wherein the message gate is a message endpoint for messages in the distributed computing environment;
bind the gate name to a first transport address;
use the message gate to receive first messages from an entity in the distributed computing environment, wherein the first messages are sent to a first address including a combination of the gate name and the first transport address;
unbind the gate name and the message gate from the first transport address;
bind the gate name to a second transport address; and
use the message gate to receive second messages, wherein the second messages are sent to a second address including a combination of the gate name and the second transport address. - View Dependent Claims (17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30)
execute a first client process that uses the message gate to access a service within the distributed computing device;
wherein said first transport address comprises a transport address for said first client process; and
wherein the first client process is configured to use the message gate to receive messages from the service, wherein the service is said entity.
-
-
18. The device as recited in claim 17, wherein said processor is configured to create the message gate according to a message schema for the service, wherein the message gate is configured to verify that messages passing through the message gate comply with the message schema.
-
19. The device as recited in claim 18, wherein the message schema is a data representation language schema and wherein messages sent between the first client process and the service are formatted in the data representation language.
-
20. The device as recited in claim 19, wherein the data representation language is eXtensible Markup Language (XML).
-
21. The device as recited in claim 17, wherein:
-
the first client processes is configured to unbind the gate name and the message gate from the first transport upon finishing using the message gate;
wherein said processor is configured to execute a second client process, wherein said second transport address comprises a transport address for said second client process; and
wherein said second client process is configured to use the message gate to receive said second messages.
-
-
24. The device as recited in claim 16, wherein said processor is configured to:
-
execute a first process that uses the message gate to receive messages from the entity;
migrate the first process and the message gate including said gate name to another device within the distributed computing environment after unbinding the gate name and the message gate from the first transport address.
-
-
25. The device as recited in claim 16, wherein the gate name comprises a name string from an advertisement for a service within the distributed computing environment, wherein said processor is configured to execute the service, wherein the service is configured to use the message gate to receive the first messages from a client within the distributed computing environment, and wherein the advertisement for the service comprises a message schema defining the first messages.
-
26. The device as recited in claim 25, wherein the gate name further comprises a random number.
-
27. The device as recited in claim 16, wherein the first transport address comprises a reference to a transport layer.
-
28. The device as recited in claim 27, wherein said reference includes a reference to a network socket.
-
29. The device as recited in claim 27, wherein said reference comprises a URI including a Port/IP address pair.
-
30. The device as recited in claim 16, wherein the gate name comprises a Universal Unique Identifier (UUID).
-
22. The device as recited in 17, the processor is configured to:
-
assign a new transport address for the first client process;
wherein said second transport address comprises the new transport address for the first client process; and
wherein said first client process is configured to use the message gate to receive said second messages to access the service. - View Dependent Claims (23)
-
-
31. A carrier medium comprising program instructions, wherein the program instructions are computer-executable to implement:
-
generating a gate name for a message gate, wherein the message gate is a message endpoint for messages in the distributed computing environment;
binding the gate name to a first transport address;
using the message gate to receive first messages from an entity in the distributed computing environment, wherein the first messages are sent to a first address including a combination of the gate name and the first transport address;
unbinding the gate name and the message gate from the first transport address;
binding the gate name to a second transport address; and
using the message gate to receive second messages, wherein the second messages are sent to a second address including a combination of the gate name and the second transport address. - View Dependent Claims (32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45)
a first client using the message gate to access a service within the distributed computing device;
wherein said binding the gate name to a first transport address comprises binding the gate name to a transport address for the first client; and
wherein said using the message gate to receive first messages from an entity in the distributed computing environment comprises the first client using the message gate to receive messages from the service.
-
-
33. The carrier medium as recited in claim 32, wherein the program instructions are further computer-executable to implement creating the message gate according to a message schema for the service, wherein the message gate is configured to verify that messages passing through the message gate comply with the message schema.
-
34. The carrier medium as recited in claim 33, wherein the message schema is a data representation language schema and wherein messages sent between the first client and the service are formatted in the data representation language.
-
35. The carrier medium as recited in claim 34, wherein the data representation language is eXtensible Markup Language (XML).
-
36. The carrier medium as recited in claim 32, wherein the program instructions are further computer-executable to implement:
-
the first client finishing using the message gate to access the service;
wherein said unbinding the gate name and the message gate from the first transport address comprises the first client releasing the message gate;
wherein said binding the gate name to a second transport address comprises a second client binding the gate name to a transport address for the second client; and
wherein said using the message gate to receive second messages comprises the second client using the message gate to access the service.
-
-
39. The carrier medium as recited in claim 31, wherein the first transport address is a transport address for a first node in the distributed computing environment, wherein said using the message gate to receive first messages from an entity in the distributed computing environment comprises a process running in the first node using the message gate to receive messages from the entity;
- wherein the program instructions are further computer-executable to implement;
migrating the process and the message gate to a second node within the distributed computing environment;
wherein said second transport address comprises a transport address for the second node; and
wherein said using the message gate to receive second messages comprises the process using the message gate at the second node to receive the second messages from the entity.
- wherein the program instructions are further computer-executable to implement;
-
40. The carrier medium as recited in claim 31, wherein the gate name comprises a name string from an advertisement for a service within the distributed computing environment, wherein said using the message gate to receive first messages from an entity in the distributed computing environment comprises the service using the message gate to receive the first messages from a client within the distributed computing environment, and wherein the advertisement for the service comprises a message schema defining the first messages.
-
41. The carrier medium as recited in claim 40, wherein the gate name further comprises a random number.
-
42. The carrier medium as recited in claim 31, wherein the first transport address comprises a reference to a transport layer.
-
43. The carrier medium as recited in claim 42, wherein said reference includes a reference to a network socket.
-
44. The carrier medium as recited in claim 42, wherein said reference comprises a URI including a Port/IP address pair.
-
45. The carrier medium as recited in claim 31, wherein the gate name comprises a Universal Unique Identifier (UUID).
-
37. The carrier medium as recited in 32, wherein the program instructions are further computer-executable to implement:
-
assigning a new transport address for the first client;
wherein said binding the gate name to a second transport address comprises binding the gate name to the new transport address for the client; and
wherein said using the message gate to receive second messages, comprises the client using the message gate to access the service. - View Dependent Claims (38)
-
Specification