Claims
- 1. An article of manufacture including an information storage medium wherein is stored information, comprising:
a first set of digital information, including a stub having a load balancing software component for selecting a service provider from a plurality of service providers.
- 2. The article of manufacture of claim 1, wherein the stub has a failover software component for removing a failed service provider from the plurality of service providers.
- 3. The article of manufacture of claim 1, wherein the load balancing software component selects a service provider based on an affinity for a particular service provider.
- 4. The article of manufacture of claim 1, wherein the load balancing software component selects a service provider from the plurality of service providers in a round robin manner.
- 5. The article of manufacture of claim 1, wherein the load balancing software component randomly selects a service provider.
- 6. The article of manufacture of claim 1, wherein the load balancing software component selects a service provider from the plurality of service providers based upon the load of each service provider.
- 7. The article of manufacture of claim 1, wherein the load balancing software component selects a service provider from the plurality of service providers based upon the data type requested.
- 8. The article of manufacture of claim 1, wherein the load balancing software component selects a service provider from the plurality of service providers based upon the closest physical service provider.
- 9. The article of manufacture of claim 1, wherein the load balancing software component selects a service provider from the plurality of service providers based upon a time period in which each service provider responds.
- 10. An article of manufacture including an information storage medium wherein is stored information, comprising:
a first set of digital information, including an Enterprise Java™ Bean object for selecting a service provider from a plurality of service providers.
- 11. The article of manufacture of claim 10, wherein the Enterprise Java™ Bean object has a failover software component for removing a failed service provider from the plurality of service providers.
- 12. The article of manufacture of claim 10, wherein the load balancing software component selects a service provider based on an affinity for a particular service provider.
- 13. The article of manufacture of claim 10, wherein the load balancing software component selects a service provider from the plurality of service providers in a round robin manner.
- 14. The article of manufacture of claim 10, wherein the load balancing software component randomly selects a service provider.
- 15. The article of manufacture of claim 10, wherein the load balancing software component selects a service provider from the plurality of service providers based upon the load of each service provider.
- 16. The article of manufacture of claim 10, wherein the load balancing software component selects a service provider from the plurality of service providers based upon the data type requested.
- 17. The article of manufacture of claim 10, wherein the load balancing software component selects a service provider from the plurality of service providers based upon the closest physical service provider.
- 18. The article of manufacture of claim 10, wherein the load balancing software component selects a service provider from the plurality of service providers based upon a time period in which each service provider responds.
- 19. The article of manufacture of claim 10, further comprising:
a second set of digital information, including a stateless session bean.
- 20. The article of manufacture of claim 10, further comprising:
a second set of digital information, including a stateful session bean.
- 21. The article of manufacture of claim 10, further comprising:
a second set of digital information, including an entity session bean.
- 22. An apparatus, comprising:
a processor; an instruction store, coupled to the processor, comprising an article of manufacture as recited in claim 1; and a data store, coupled to the processor, wherein an application program can be stored.
- 23. An apparatus, comprising:
a processor; an instruction store, coupled to the processor, comprising an article of manufacture as recited in claim 10; and a data store, coupled to the processor, wherein an application program can be stored.
- 24. An electrical signal for accessing a service provider in a distributed processing system, wherein the signal is embodied in a processor readable memory and includes a first signal section representing a stub in a naming tree.
- 25. An electrical signal for accessing a service provider in a distributed processing system, wherein the signal is embodied in a processor readable memory and includes a first signal section representing a bean in a naming tree.
- 26. In a stub stored in a processing device on a distributed processing system, a method comprising the steps of:
obtaining a list of service providers; and selecting a service provider from the list of service providers.
- 27. The method of claim 26, further comprising the step of:
removing a failed service provider from the list of service providers.
- 28. The method of claim 26, wherein the list of service providers is obtained from a naming service.
- 29. The method of claim 26, wherein the step of selecting further includes the step of:
selecting a service provider based upon an affinity.
- 30. The method of claim 26, wherein the step of selecting further includes the step of:
selecting a service provider from the list of service providers in a round robin manner.
- 31. The method of claim 26, wherein the step of selecting further includes the step of:
selecting a service provider randomly from the list of service providers.
- 32. The method of claim 26, wherein the step of selecting further includes the steps of:
obtaining the load of each service provider in the list of service providers; and selecting a service provider based upon the load of each service provider.
- 33. The method of claim 26, wherein the step of selecting further includes the steps of:
determining the type of data requested; and selecting a service provider from the list of service providers based upon the data type.
- 34. The method of claim 26, wherein the step of selecting further includes the steps of:
determining the physical distance to each service provider in the list of service providers; and selecting a service provider from the list of service providers based upon on the closest physical distance to the service provider.
- 35. The method of claim 26, wherein the step of selecting further includes the steps of:
determining a time period for each service provider in the list of service providers to respond; and selecting a service provider from the list of service providers based upon the time period for each service provider to respond.
- 36. A system for load balancing within a cluster, comprising:
a communications medium; a plurality of processing devices coupled to said communications medium and providing services, said plurality of processing devices including a first processing device and a second processing device, a third processing device, in communication with said communications medium, said third processing device including a stub operating thereon, said stub configured to select one of said plurality of processing devices for handling requests from the third processing device for a particular service.
- 37. The system of claim 36 wherein said stub includes a replica handler that determines available processing devices within the cluster, and selects one of said available processing devices for handling said request.
- 38. The system of claim 36 wherein said stub includes a load balancing component and a failover component.
- 39. The system of claim 37 wherein said replica handler includes a failover software component that selects one of said available processing devices upon failure of a processing device.
- 40. The system of claim 39 wherein a failed processing device is removed from a list of available processing devices.
- 41. The system of claim 39 wherein said replica handler designates a failed processing device as being unavailable.
- 42. The system of claim 39 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails, or is removed from the cluster.
- 43. The system of claim 37 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using a load balancing method.
- 44. The system of claim 43 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 45. The system of claim 43 wherein said load balancing software component selects a processing device based on a round robin method.
- 46. The system of claim 43 wherein said load balancing software component randomly selects a processing device.
- 47. The system of claim 43 wherein said load balancing software component selects a processing device based on the present load at each processing device.
- 48. The system of claim 43 wherein said load balancing software component selects a processing device based on the data type requested.
- 49. The system of claim 43 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 50. The system of claim 43 wherein said load balancing software component selects a processing device based on the time period in which each processing device responds.
- 51. The system of claim 43 wherein said plurality of processing devices includes a server, and said third processing device includes a client, with the stub associated with said client.
- 52. A system for load balancing within a cluster, comprising:
a first processing device, said first processing device including a stub operating thereon, said stub configured to communicate a request for service to one of a plurality of other processing devices, and, wherein said stub selects said one of said plurality of other processing devices for handling said request.
- 53. The system of claim 52 wherein said stub includes a replica handler that determines available processing devices within the cluster, and selects one of said available processing devices for handling said request.
- 54. The system of claim 52 wherein said stub includes a load balancing component and a failover component.
- 55. The system of claim 53 wherein said replica handler includes a failover software component that selects one of said available processing devices using a failover method.
- 56. The system of claim 55 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails or is removed from the cluster.
- 57. The system of claim 55 wherein a failed processing device is removed from a list of available processing devices.
- 58. The system of claim 55 wherein said replica handler designates a failed processing device as being unavailable.
- 59. The system of claim 53 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing.
- 60. The system of claim 59 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 61. The system of claim 59 wherein said load balancing software component selects a processing device based on a round robin method.
- 62. The system of claim 59 wherein said load balancing software component randomly selects a processing device.
- 63. The system of claim 59 wherein said load balancing software component selects a processing device based on the load at each processing device.
- 64. The system of claim 59 wherein said load balancing software component selects a processing device based on the data type requested.
- 65. The system of claim 59 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 66. The system of claim 59 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
- 67. A method of load balancing in a cluster, comprising the steps of:
providing a plurality of processing devices, in communication with a communications medium, said plurality of processing devices including a first processing device and a second processing device; and, communicating a request from a third processing device, via said communications medium, using a stub at said third processing device, said stub configured to select a one of said first or said second processing devices for handling said request.
- 68. The method of claim 67 wherein said stub includes a replica handler that determines available processing devices within the cluster and selects one of said available processing devices for handling said request.
- 69. The method of claim 68 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover.
- 70. The method of claim 69 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails or is removed from the cluster.
- 71. The method of claim 68 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing.
- 72. The method of claim 71 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 73. The method of claim 71 wherein said load balancing software component selects a processing device based on round robin.
- 74. The method of claim 71 wherein said load balancing software component randomly selects a processing device.
- 75. The method of claim 71 wherein said load balancing software component selects a processing device based on the load of each processing device.
- 76. The method of claim 71 wherein said load balancing software component selects a processing device based on the data type requested.
- 77. The method of claim 71 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 78. The method of claim 71 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
- 79. A method of load balancing at a stub in a cluster, comprising the steps of:
selecting, at a stub operating on a first processing device, one of a plurality of processing devices for handling a request for a service; and, communicating said request from said stub to the selected processing device.
- 80. The method of claim 79 wherein said stub includes a replica handler-that determines available processing devices within the cluster and selects one of said available processing devices for handling said request.
- 81. The method of claim 80 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover.
- 82. The method of claim 81 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails or is removed from the cluster.
- 83. The method of claim 80 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing.
- 84. The method of claim 83 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 85. The method of claim 83 wherein said load balancing software component selects a processing device based on round robin.
- 86. The method of claim 83 wherein said load balancing software component randomly selects a processing device.
- 87. The method of claim 83 wherein said load balancing software component selects a processing device based on the load of each processing device.
- 88. The method of claim 83 wherein said load balancing software component selects a processing device based on the data type requested.
- 89. The method of claim 83 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 90. The method of claim 83 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
- 91. A system for load balancing within a cluster, comprising:
a plurality of processing devices, said plurality of processing devices including a first processing device and a second processing device, a third processing device, said third processing device including a stub operating thereon, said stub configured to select one of said plurality of processing devices for handling requests from the third processing device for a particular service.
- 92. The system of claim 91 wherein said stub includes a replica handler that determines available processing devices within the cluster, and selects one of said available processing devices for handling said request.
- 93. The system of claim 91 wherein said stub includes a load balancing component and a failover component.
- 94. The system of claim 92 wherein said replica handler includes a failover software component that selects one of said available processing devices upon failure of a processing device.
- 95. The system of claim 94 wherein a failed processing device is removed from a list of available processing devices.
- 96. The system of claim 94 wherein said replica handler designates a failed processing device as being unavailable.
- 97. The system of claim 94 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails, or is removed from the cluster.
- 98. The system of claim 92 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using a load balancing method.
- 99. The system of claim 98 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 100. The system of claim 98 wherein said load balancing software component selects a processing device based on a round robin method.
- 101. The system of claim 98 wherein said load balancing software component randomly selects a processing device.
- 102. The system of claim 98 wherein said load balancing software component selects a processing device based on the present load at each processing device.
- 103. The system of claim 98 wherein said load balancing software component selects a processing device based on the data type requested.
- 104. The system of claim 98 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 105. The system of claim 98 wherein said load balancing software component selects a processing device based on the time period in which each processing device responds.
- 106. The system of claim 98 wherein said plurality of processing devices includes a server, and said third processing device includes a client, with the stub associated with said client.
- 107. A method of load balancing in a cluster, comprising the steps of:
providing a plurality of processing devices, said plurality of processing devices including a first processing device and a second processing device; and, communicating a request from a third processing device, using a stub at said third processing device, said stub configured to select a one of said first or said second processing devices for handling said request.
- 108. The method of claim 107 wherein said stub includes a replica handler that determines available processing devices within the cluster and selects one of said available processing devices for handling said request.
- 109. The method of claim 108 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover.
- 110. The method of claim 109 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails or is removed from the cluster.
- 111. The method of claim 108 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing.
- 112. The method of claim 111 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 113. The method of claim 111 wherein said load balancing software component selects a processing device based on round robin.
- 114. The method of claim 111 wherein said load balancing software component randomly selects a processing device.
- 115. The method of claim 111 wherein said load balancing software component selects a processing device based on the load of each processing device.
- 116. The method of claim 111 wherein said load balancing software component selects a processing device based on the data type requested.
- 117. The method of claim 111 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 118. The method of claim 111 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
- 119. A computer readable medium including instructions stored thereon which when executed cause the computer to perform the steps of:
providing a plurality of processing devices, in communication with a communications medium, said plurality of processing devices including a first processing device and a second processing device; and, communicating a request from a third processing device, via said communications medium, using a stub at said third processing device, said stub configured to select a one of said first or said second processing devices for handling said request.
- 120. The computer readable medium of claim 119 wherein said stub includes a replica handler that determines available processing devices within the cluster and selects one of said available processing devices for handling said request.
- 121. The method of claim 120 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover.
- 122. The computer readable medium of claim 121 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails or is removed from the cluster.
- 123. The computer readable medium of claim 120 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing.
- 124. The computer readable medium of claim 123 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 125. The computer readable medium of claim 123 wherein said load balancing software component selects a processing device based on round robin.
- 126. The computer readable medium of claim 123 wherein said load balancing software component randomly selects a processing device.
- 127. The computer readable medium of claim 123 wherein said load balancing software component selects a processing device based on the load of each processing device.
- 128. The computer readable medium of claim 123 wherein said load balancing software component selects a processing device based on the data type requested.
- 129. The computer readable medium of claim 123 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 130. The computer readable medium of claim 123 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
- 131. An article of manufacture, comprising:
a stub operating on a first processing device, for selecting one of a plurality of processing devices for handling a request for a service, and communicating said request from said stub to the selected processing device.
- 132. The article of manufacture of claim 131 wherein said stub includes a replica handler that determines available processing devices within the cluster and selects one of said available processing devices for handling said request.
- 133. The article of manufacture of claim 132 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover.
- 134. The article of manufacture of claim 133 wherein said failover software component is configured to determine when a processing device currently handling requests from said stub fails or is removed from the cluster.
- 135. The article of manufacture of claim 132 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing.
- 136. The article of manufacture of claim 135 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device.
- 137. The article of manufacture of claim 135 wherein said load balancing software component selects a processing device based on round robin.
- 138. The article of manufacture of claim 135 wherein said load balancing software component randomly selects a processing device.
- 139. The article of manufacture of claim 135 wherein said load balancing software component selects a processing device based on the load of each processing device.
- 140. The article of manufacture of claim 135 wherein said load balancing software component selects a processing device based on the data type requested.
- 141. The article of manufacture of claim 135 wherein said load balancing software component selects a processing device based on the closest physical processing device.
- 142. The article of manufacture of claim 135 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
- 143. A distributed processing system, comprising:
a communication medium; a first processing device, coupled to the communication medium, having a first software program emulating a first processing device, and a stub including a replica-handler with a load balancing software component and a failover software component for selecting one of a plurality of replicated objects; a second processing device, coupled to the communication medium, having a second software program emulating a second processing device; wherein the first software program in the first processing device is a virtual machine and the first data structure in the first processing device is a remote virtual machine and wherein the second software program in the second processing device is a virtual machine and the second data structure in the second processing device is a remote virtual machine, and, wherein the remote virtual machine in the second processing device corresponds to the virtual machine in the first processing device.
- 144. An article of manufacture, including an information storage medium wherein is stored, comprising:
a first set of digital information for transferring a message from a remote virtual machine in a first processing device to a virtual machine in a second processing device, wherein the remote virtual machine includes a message routing software component having a replica-handler for selecting the virtual machine from a plurality of virtual machines in a plurality of processing devices.
- 145. The distributed processing system of claim 143, wherein the first processing device includes a naming tree having a pool of stubs stored at a node of the tree and the second processing device includes a duplicate of the naming tree.
CLAIM OF PRIORITY
[0001] This application is a continuation of application Ser. No. 09/405,260, filed Sep. 23, 1999, which claims the benefit of U.S. Provisional Application No. 60/107,167, filed Nov. 5, 1998, and both are incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60107167 |
Nov 1998 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09405260 |
Sep 1999 |
US |
Child |
10427646 |
Apr 2003 |
US |