P
US7370336B2ExpiredUtilityPatentIndex 97

Distributed computing infrastructure including small peer-to-peer applications

Assignee: CLEARCUBE TECHNOLOGY INCPriority: Sep 16, 2002Filed: Sep 15, 2003Granted: May 6, 2008
Est. expirySep 16, 2022(expired)· nominal 20-yr term from priority
Inventors:HUSAIN SYED MOHAMMAD AMIRENRIGHT TODD JOHNTHORNTON BARRY W
H04L 67/104H04L 41/0803H04L 67/10015H04L 41/0816H04L 67/1097H04L 67/02H04L 67/1001H04L 41/5009H04L 69/328H04L 67/568H04L 41/0886H04L 41/0879H04L 67/62G06F 11/2097H04L 41/5067H04L 67/1068H04L 41/0856H04L 12/1818H04L 67/133G06F 11/2038G06F 11/202H04L 41/0859H04L 41/22H04L 67/565H04L 69/08G06F 11/2033H04L 51/066H04L 67/34G06F 11/1662H04L 67/1048G06F 9/54H04L 9/40G06F 11/203H04L 69/329H04L 41/0863H04L 41/0813
97
PatentIndex Score
57
Cited by
17
References
36
Claims

Abstract

Systems and methods are disclosed for a distributed computing infrastructure on a computer network comprising a plurality of computers. The distributed computing infrastructure (DCI) provides a software platform for creating, running, and managing distributed applications. DCI may include XML-capable software applications on a peer-to-peer network. DCI may include small, network-unaware applications called peerlets. DCI may include a system and method for creating complex distributed applications using pre-complied binaries. DCI may include a capability for multiple, independent collaborative sessions for distributed collaborative applications (e.g., chat, instant messaging, shared whiteboard, etc.). DCI may include systems and methods for reducing interactions between users and applications to archivable form and then playing back the interactions. DCI may include a system and method for automatic software retrieval on a peer-to-peer network.

Claims

exact text as granted — not AI-modified
1. A method comprising:
 generating a message from a source application on a first computer system, wherein the source application is configured to communicate using an application programming interface (API) to a distributed computing infrastructure, and wherein the source application is network-unaware; 
 sending the message from the source application to the distributed computing infrastructure using the API; 
 the distributed computing infrastructure translating the message from an original format to a portable format on the first computer system, thereby generating a portable message, wherein the portable message comprises metadata which comprise identifying characteristics of the source application; and 
 sending the portable message from the first computer system to a second computer system using peer-to-peer message passing between the first computer system, the second computer system, and optionally one or more intermediary computer systems; 
 receiving the portable message at the second computer system; and 
 the distributed computing infrastructure routing the portable message to a target application on the second computer system based on the metadata, wherein the target application is configured to communicate using the API to the distributed computing determining an application type of the target application based on the metadata of the portable message; 
 determining whether an existing instance of the application type of the target application is running on the second computer system; 
 wherein the routing the portable message to the target application comprises routing the portable message to the existing instance if the existing instance of the application type of the target application is running on the second computer system; and 
 wherein the routing the portable message to the target application comprises routing the portable message to a new instance of the target application if the existinginstance of the application type of the target application is not running on the second computer system. infrastructure, and wherein the target application is network-unaware. 
 
     
     
       2. The method of  claim 1 ,
 wherein the source application routes network activity through the API to the distributed computing infrastructure, and wherein the target application receives network activity through the API from the distributed computing infrastructure. 
 
     
     
       3. The method of  claim 1 ,
 wherein the source application and the target application comprise chat applications enabling a user of the first computer system and a user of the second computer system to communicate using text; 
 wherein the message from the source application comprises text to be displayed by the target application on the second computer system. 
 
     
     
       4. The method of  claim 1 ,
 wherein the source application and the target application comprise shared whiteboard applications enabling a user of the first computer system and a user of the second computer system to communicate using graphical data on a virtual shared whiteboard; 
 wherein the message from the source application comprises graphical data to be displayed by the target application on the second computer system. 
 
     
     
       5. The method of  claim 1 ,
 wherein the source application and the target application comprise collaborative applications enabling a user of the first computer system and a user of the second computer system to communicate using collaborative data; 
 wherein the message from the source application comprises collaborative data to be displayed by the target application on the second computer system. 
 
     
     
       6. The method of  claim 1 , further comprising:
 delivering a payload of the message to the target application. 
 
     
     
       7. The method of  claim 1 , further comprising:
 the distributed computing infrastructure translating the portable message from the portable format to the original format on the second computer system. 
 
     
     
       8. The method of  claim 1 , further comprising:
 invoking functionality of the second computer system in response to the message. 
 
     
     
       9. The method of  claim 8 ,
 wherein the invoking functionality on the second computer system comprises instructing the target application to take one or more actions. 
 
     
     
       10. The method of  claim 1 ,
 wherein the portable message is sent from the first computer system to the second computer system and one or more additional computer systems using multicast peer-to-peer messaging. 
 
     
     
       11. The method of  claim 1 ,
 wherein the portable message is sent from the first computer system to the second computer system and one or more additional computer systems using broadcast peer-to-peer messaging. 
 
     
     
       12. The method of  claim 1 ,
 wherein the portable format comprises XML, and wherein the portable messages comprise XML messages. 
 
     
     
       13. A computer-readable storage medium comprising program instructions, wherein the program instructions are computer-executable to implement:
 generating a message from a source application on a first computer system, wherein the source application is configured to communicate using an application programming interface (API) to a distributed computing infrastructure, and wherein the source application is network-unaware; 
 sending the message from the source application to the distributed computing infrastructure using the API; 
 the distributed computing infrastructure translating the message from an original format to a portable format on the first computer system, thereby generating a portable message, wherein the portable message comprises metadata which comprise identifying characteristics of the source application; and 
 sending the portable message from the first computer system to a second computer system using peer-to-peer message passing between the first computer system, the second computer system, and optionally one or more intermediary computer systems; 
 receiving the portable message at the second computer system; and 
 the distributed computing infrastructure routing the portable message to a target application on the second computer system based on the metadata, wherein the target application is configured to communicate using the API to the distributed computing 
 wherein the program instructions are further computer-executable to implement: 
 determining an application type of the target application based on the metadata of the portable message; 
 determining whether an existing instance of the application type of the target application is running on the second computer system; 
 wherein the routing the portable message to the target application comprises routing the portable message to the existing instance if the existing instance of the application type of the target application is running on the second computer system; and 
 wherein the routing the portable message to the target application comprises routing the portable message to a new instance of the target application if the existing instance of the application type of the target application is not running on the second computer system. infrastructure, and wherein the target application is network-unaware. 
 
     
     
       14. The computer-readable storage medium of  claim 13 ,
 wherein the source application routes network activity through the API to the distributed computing infrastructure, and wherein the target application receives network activity through the API from the distributed computing infrastructure. 
 
     
     
       15. The computer-readable storage medium of  claim 13 ,
 wherein the source application and the target application comprise chat applications enabling a user of the first computer system and a user of the second computer system to communicate using text; 
 wherein the message from the source application comprises text to be displayed by the target application on the second computer system. 
 
     
     
       16. The computer-readable storage medium of  claim 13 ,
 wherein the source application and the target application comprise shared whiteboard applications enabling a user of the first computer system and a user of the second computer system to communicate using graphical data on a virtual shared whiteboard; 
 wherein the message from the source application comprises graphical data to be displayed by the target application on the second computer system. 
 
     
     
       17. The computer-readable storage medium of  claim 13 ,
 wherein the source application and the target application comprise collaborative applications enabling a user of the first computer system and a user of the second computer system to communicate using collaborative data; 
 wherein the message from the source application comprises collaborative data to be displayed by the target application on the second computer system. 
 
     
     
       18. The computer-readable storage medium of  claim 13 , wherein the program instructions are further computer-executable to implement:
 delivering a payload of the message to the target application. 
 
     
     
       19. The computer-readable storage medium of  claim 13 , wherein the program instructions are further computer-executable to implement:
 the distributed computing infrastructure translating the portable message from the portable format to the original format on the second computer system. 
 
     
     
       20. The computer-readable storage medium of  claim 13 , wherein the program instructions are further computer-executable to implement:
 invoking functionality of the second computer system in response to the message. 
 
     
     
       21. The computer-readable storage medium of  claim 20 ,
 wherein the invoking functionality on the second computer system comprises instructing the target application to take one or more actions. 
 
     
     
       22. The computer-readable storage medium of  claim 13 ,
 wherein the portable message is sent from the first computer system to the second computer system and one or more additional computer systems using multicast peer-to-peer messaging. 
 
     
     
       23. The computer-readable storage medium of  claim 13 ,
 wherein the portable message is sent from the first computer system to the second computer system and one or more additional computer systems using broadcast peer-to-peer messaging. 
 
     
     
       24. The computer-readable storage medium of  claim 13 ,
 wherein the portable format comprises XML, and wherein the portable messages comprise XML messages. 
 
     
     
       25. A system comprising:
 a first computer system comprising a first CPU and a first memory; and 
 a second computer system comprising a second CPU and a second memory; 
 wherein the first computer system and the second computer system are communicatively coupled via a network; 
 wherein the first memory stores program instructions which are executable by the first CPU to:
 generate a message from a source application on the first computer system, wherein the source application is configured to communicate using an application programming interface (API) to a distributed computing infrastructure, and wherein the source application is network-unaware; 
 send the message from the source application to the distributed computing infrastructure using the API; 
 using the distributed computing infrastructure, translate the message from an original format to a portable format on the first computer system, thereby generating a portable message, wherein the portable message comprises metadata which comprise identifying characteristics of the source application; and 
 send the portable message from the first computer system to the second computer system using peer-to-peer message passing between the first computer system, the second computer system, and optionally one or more intermediary computer systems; and 
 
 wherein the second memory stores program instructions which are executable by the second CPU to:
 receive the portable message at the second computer system; and 
 using the distributed computing infrastructure, route the portable message to a target application on the second computer system based on the metadata, wherein the target application is configured to communicate using the API to the distributed 
 
 wherein the program instructions are executable by the second CPU to:
 determining an application type of the target application based on the metadata of the portable message; 
 determining whether an existing instance of the application type of the target application is running on the second computer system; 
 wherein the routing the portable message to the target application comprises routing the portable message to the existing instance if the existing instance of the application type of the target application is running on the second computer system; and 
 
 wherein the routing the portable message to the target application comprises routing the portable message to a new instance of the target application if the existing instance of the application type of the target application is not running on the second computer system. computing infrastructure, and wherein the target application is network-unaware. 
 
     
     
       26. The system of  claim 25 ,
 wherein the source application routes network activity through the API to the distributed computing infrastructure, and wherein the target application receives network activity through the API from the distributed computing infrastructure. 
 
     
     
       27. The system of  claim 25 ,
 wherein the source application and the target application comprise chat applications enabling a user of the first computer system and a user of the second computer system to communicate using text; 
 wherein the message from the source application comprises text to be displayed by the target application on the second computer system. 
 
     
     
       28. The system of  claim 25 ,
 wherein the source application and the target application comprise shared whiteboard applications enabling a user of the first computer system and a user of the second computer system to communicate using graphical data on a virtual shared whiteboard; 
 wherein the message from the source application comprises graphical data to be displayed by the target application on the second computer system. 
 
     
     
       29. The system of  claim 25 ,
 wherein the source application and the target application comprise collaborative applications enabling a user of the first computer system and a user of the second computer system to communicate using collaborative data; 
 wherein the message from the source application comprises collaborative data to be displayed by the target application on the second computer system. 
 
     
     
       30. The system of  claim 25 ,
 wherein the program instructions are executable by the second CPU to: 
 deliver a payload of the message to the target application. 
 
     
     
       31. The system of  claim 25 ,
 wherein the program instructions are executable by the second CPU to: 
 using the distributed computing infrastructure, translate the portable message from the portable format to the original format on the second computer system. 
 
     
     
       32. The system of  claim 25 ,
 wherein the program instructions are executable by the second CPU to: 
 invoke functionality of the second computer system in response to the message. 
 
     
     
       33. The system of  claim 32 ,
 wherein the invoking functionality on the second computer system comprises instructing the target application to take one or more actions. 
 
     
     
       34. The system of  claim 25 ,
 wherein the portable message is sent from the first computer system to the second computer system and one or more additional computer systems using multicast peer-to-peer messaging. 
 
     
     
       35. The system of  claim 25 ,
 wherein the portable message is sent from the first computer system to the second computer system and one or more additional computer systems using broadcast peer-to-peer messaging. 
 
     
     
       36. The system of  claim 25 ,
 wherein the portable format comprises XML, and wherein the portable messages comprise XML messages.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.