[미국특허]
Smart stub or enterprise Java�� bean in a distributed processing system
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/46
G06F-009/44
G06F-015/16
G06F-015/173
출원번호
US-0427646
(2003-04-30)
등록번호
US-7454755
(2008-11-18)
발명자
/ 주소
Jacobs,Dean B.
Halpern,Eric M.
출원인 / 주소
BEA Systems, Inc.
대리인 / 주소
Fliesler Meyer LLP
인용정보
피인용 횟수 :
4인용 특허 :
57
초록▼
A clustered enterprise distributed processing system. The distributed processing system includes a first and a second computer coupled to a communication medium. The first computer includes a virtual machine (JVM) and kernel software layer for transferring messages, including a remote virtual machin
A clustered enterprise distributed processing system. The distributed processing system includes a first and a second computer coupled to a communication medium. The first computer includes a virtual machine (JVM) and kernel software layer for transferring messages, including a remote virtual machine (RJVM). The second computer includes a JVM and a kernel software layer having a RJVM. Messages are passed from a RJVM to the JVM in one computer to the JVM and RJVM in the second computer. Messages may be forwarded through an intermediate server or rerouted after a network reconfiguration. Each computer includes a Smart stub having a replica handler, including a load balancing software component and a failover software component. Each computer includes a duplicated service naming tree for storing a pool of Smart stubs at a node.
대표청구항▼
What is claimed is: 1. An article of manufacture including an information storage medium wherein is stored information, comprising: a first set of digital including a stub operating at a client and including within the stub a load balancing software component for selecting a service provider from a
What is claimed is: 1. An article of manufacture including an information storage medium wherein is stored information, comprising: a first set of digital including a stub operating at a client and including within the stub a load balancing software component for selecting a service provider from a plurality of service providers in a cluster, wherein the stub is a remote method invocation stub that is used by the client to contact a naming service within the cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses its load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 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 from the plurality of service providers in a round robin manner. 5. The article of manufacture of claim 1, wherein the road 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. A method for use by a stub stored in a processing device on a distributed processing system, which when executed by a processor performs the steps comprising: obtaining a list of service providers; and selecting a service provider from the list of service providers, wherein the stub is a remote method invocation stub that operates at the client and is used by the client to contact a naming service within a cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 11. The method of claim 10, further comprising the step of: removing a failed service provider from the list of service providers. 12. The method of claim 10, wherein the list of service providers is obtained from a naming service. 13. The method of claim 10, wherein the step of selecting further includes the step of: selecting a service provider based upon an affinity. 14. The method of claim 10, 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 15. The method of claim 10, wherein the step of selecting further includes the step of: selecting a service provider randomly from the list of service providers. 16. The method of claim 10, 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. 17. The method of claim 10, 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. 18. The method of claim 10, 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. 19. The method of claim 10, 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. 20. 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, wherein the stub is a remote method invocation stub that operates at the third processing device and is used by the processing device to contact a naming service within a cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster. wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 21. The system of claim 20 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. 22. The system of claim 20 wherein said stub includes a load balancing component and a failover component. 23. The system of claim 21 wherein said replica handler includes a failover software component that selects one of said available processing devices upon failure of a processing device. 24. The system of claim 23 wherein a failed processing device is removed from a list of available processing devices 25. The system of claim 23 wherein said replica handler designates a failed processing device as being unavailable. 26. The system of claim 23 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. 27. The system of claim 21 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using a load balancing method. 28. The system of claim 27 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 29. The system of claim 27 wherein said load balancing software component selects a processing device based on a round robin method. 30. The system of claim 27 wherein said load balancing software component randomly selects a processing device. 31. The system of claim 27 wherein said load balancing software component selects a processing device based on the present load at each processing device. 32. The system of claim 27 wherein said load balancing software component selects a processing device based on the date type requested. 33. The system of claim 27 wherein said load balancing software component selects a processing device based on the closest physical processing device. 34. The system of claim 27 wherein said load balancing software component selects a processing device based on the time period in which each processing device responds. 35. The system of claim 27 wherein said plurality of processing devices includes a server, and said third processing device includes a client, with the stub associated with said client. 36. 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, wherein the stub is a remote method invocation stub that is used by the first processing device to contact a naming service within a cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 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 using a failover method. 40. 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. 41. The system of claim 39 wherein a failed processing device is removed from a list of available processing devices. 42. The system of claim 39 wherein said replica handler designates a failed processing device as being unavailable. 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 load balancing 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 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 time period in which each processing device responds. 51. 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, wherein the stub is a remote method invocation stub that is used by the third processing device to contact a naming service within the cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 52. The method of claim 51 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. 53. The method of claim 52 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover. 54. The method of claim 53 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. 55. The method of claim 52 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing. 56. The method of claim 55 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 57. The method of claim 55 wherein said load balancing software component selects a processing device based on round robin 58. The method of claim 55 wherein said load balancing software component randomly selects a processing device. 59. The method of claim 55 wherein said load balancing software component selects a processing device based on the load of each processing device. 60. The method of claim 55 wherein said load balancing software component selects a processing device based on the data type requested. 61. The method of claim 55 wherein said load balancing software component selects a processing device based on the closest physical processing device. 62. The method of claim 55 wherein said load balancing software component selects a processing device based on time period in which each processing device responds. 63. 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, wherein the stub is a remote method invocation stub that is used by the first processing device to contact a naming service within the cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 64. The method of claim 63 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. 65. The method of claim 64 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover. 66. The method of claim 65 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. 67. The method of claim 64 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing. 68. The method of claim 67 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 69. The method of claim 67 wherein said load balancing software component selects a processing device based on round robin. 70. The method of claim 67 wherein said load balancing software component randomly selects a processing device. 71. The method of claim 67 wherein said load balancing software component selects a processing device based on the load of each processing device. 72. The method of claim 67 wherein said load balancing software component selects a processing device based on the data type requested. 73. The method of claim 67 wherein said load balancing software component selects a processing device based on the closest physical processing device. 74. The method of claim 67 wherein said load balancing software component selects a processing device based on time period in which each processing device responds. 75. 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, wherein the stub is a remote method invocation stub that is used by the first processing device to contact a naming service within the cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 76. The system of claim 75 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. 77. The system of claim 75 wherein said stub includes a load balancing component and a failover component. 78. The system of claim 76 wherein said replica handler includes a failover software component that selects one of said available processing devices upon failure of a processing device. 79. The system of claim 78 wherein a failed processing device is removed from a list of available processing devices. 80. The system of claim 78 wherein said replica handler designates a failed processing device as being unavailable. 81. The system of claim 78 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. 82. The system of claim 76 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using a load balancing method. 83. The system of claim 82 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 84. The system of claim 82 wherein said load balancing software component selects a processing device based on a round robin method. 85. The system of claim 82 wherein said load balancing software component randomly selects a processing device. 86. The system of claim 82 wherein said load balancing software component selects a processing device based on the present load at each processing device. 87. The system of claim 82 wherein said load balancing software component selects a processing device based on the data type requested. 88. The system of claim 82 wherein said load balancing software component selects a processing device based on the closest physical processing device. 89. The system of claim 82 wherein said load balancing software component selects a processing device based on the time period in which each processing device responds. 90. The system of claim 82 wherein said plurality of processing devices includes a server, and said third processing device includes a client, with the stub associated with said client. 91. 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, wherein the stub is a remote method invocation stub that is used by the third processing device to contact a naming service within the cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 92. The method 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 method of claim 92 wherein said replica handier includes a failover software component that selects one of said available processing devices using failover. 94. The method of claim 93 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. 95. The method of claim 92 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing. 96. The method of claim 95 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 97. The method of claim 95 wherein said load balancing software component selects a processing device based on round robin. 98. The method of claim 95 wherein said load balancing software component randomly selects a processing device. 99. The method of claim 95 wherein said load balancing software component selects a processing device based on the load of each processing device 100. The method of claim 95 wherein said load balancing software component selects a processing device based on the data type requested. 101. The method of claim 95 wherein said load balancing software component selects a processing device based on the closest physical processing device. 102. The method of claim 95 wherein said load balancing software component selects a processing device based on time period in which each processing device responds. 103. A computer readable medium including instructions stored thereon which when executed cause a 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, wherein the stub is a remote method invocation stub that is used by the third processing device to contact a naming service within a cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 104. The computer readable medium of claim 103 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. 105. The method of claim 104 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover. 106. The computer readable medium of claim 105 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. 107. The computer readable medium of claim 104 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing. 108. The computer readable medium of claim 107 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 109. The computer readable medium of claim 107 wherein said load balancing software component selects a processing device based on round robin. 110. The computer readable medium of claim 107 wherein said load balancing software component randomly selects a processing device. 111. The computer readable medium of claim 107 wherein said load balancing software component selects a processing device based on the load of each processing device. 112. The computer readable medium of claim 107 wherein said load balancing software component selects a processing device based on the data type requested. 113. The computer readable medium of claim 107 wherein said load balancing software component selects a processing device based on the closest physical processing device. 114. The computer readable medium of claim 107 wherein said load balancing software component selects a processing device based on time period in which each processing device responds. 115. An article of manufacture, including instructions stored in a storage medium which when executed by a computer cause the computer to perform the steps 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, wherein the stub is a remote method invocation stub that is used by the first processing device to contact a naming service within a cluster and wherein the naming service provides to the stub at runtime an updated list of currently available service providers in the cluster, wherein each of the service providers provides a remote method implementation that the stub can communicate with using remote method invocation, and wherein the stub uses a load balancing software component to select a service provider and then communicate with the selected service provider using the remote method invocation. 116. The article of manufacture of claim 115 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. 117. The article of manufacture of claim 116 wherein said replica handler includes a failover software component that selects one of said available processing devices using failover. 118. The article of manufacture of claim 117 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. 119. The article of manufacture of claim 116 wherein said replica handler includes a load balancing software component that selects one of said available processing devices using load balancing. 120. The article of manufacture of claim 119 wherein said load balancing software component selects a processing device based on an affinity for a particular processing device. 121. The article of manufacture of claim 119 wherein said load balancing software component selects a processing device based on round robin. 122. The article of manufacture of claim 119 wherein said load balancing software component randomly selects a processing device. 123. The article of manufacture of claim 119 wherein said load balancing software component selects a processing device based on the load of each processing device. 124. The article of manufacture of claim 119 wherein said load balancing software component selects a processing device based on the data type requested. 125. The article of manufacture of claim 119 wherein said load balancing software component selects a processing device based on the closest physical processing device. 126. The article of manufacture of claim 119 wherein said load balancing software component selects a processing device based on time period in which each processing device responds.
Goldszmidt German Sergio ; Willebeek-LeMair Marc Hubert ; Hon Kenneth Sau-yee,HKX, Client-based dynamic switching of streaming servers for fault-tolerance and load balancing.
Hacherl Donald Joseph ; Reiter Tsvi Michael, Creating interobject reference links in the directory service of a store and forward replication computer network.
Gehr Chuck Royal ; Von Behren Paul David ; Williams Michael Patrick ; Wood Robert Barry, Dynamic server switching for maximum server availability and load balancing.
Baker Ernest Dysart (Boca Raton FL) Dinwiddie ; Jr. John Monroe (West Palm Beach FL) Grice Lonnie Edward (Boca Raton FL) Joyce James Maurice (Boca Raton FL) Loffredo John Mario (Deerfield Beach FL) S, Isolating a central processing unit from the operating system controlling said unit and its associated hardware for inte.
Pelegri-Llopart Eduardo ; Hamilton Graham ; Kessler Peter B. ; Waldo James H. ; Riggs Roger ; Wollrath Ann M., Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems.
Logan Keith W. ; Misra Pradyumna K. ; Leach Paul J. ; Van Dyke Clifford P. ; Straube Dave D. ; Miller Arnold S., Method and apparatus for representing and applying network topological data.
Laursen Andrew ; Olkin Jeffrey C. ; Porter Mark A. ; Nazem Farzad ; Bailey William ; Moore Mark, Method and apparatus for scalable, high bandwidth storage retrieval and transportation of multimedia data on a network.
Hamilton Graham ; Powell Michael L. ; Mitchell James G. ; Gibbons Jonathan J., Method and apparatus for subcontracts in distributed processing systems.
Colby Steven ; Krawczyk John J. ; Nair Raj Krishnan ; Royce Katherine ; Siegel Kenneth P. ; Stevens Richard C. ; Wasson Scott, Method and system for directing a flow between a client and a server.
Want Roy (Mountain View CA) Adams Norman I. (Sunnyvale CA) Goldstein Richard J. (San Francisco CA) Schilit William N. (Palo Alto CA) Tso Michael M. (Beaverton OR), Method and system for maintaining processing continuity to mobile computers in a wireless network.
High ; Jr. Robert Howard ; Kumar Vinoj Narayan, Method and system for providing a multiple property searching capability within an object-oriented distributed computing.
Kawabe Shigehisa,JPX ; Hashimoto Sunao,JPX ; Yamashita Ichiro,JPX ; Horikiri Kazunori,JPX, Name service apparatus using resource management, name resolution and virtual resource realization for realizing a virt.
Badovinatz Peter Richard ; Brenner Larry Bert ; Chandra Tushar Deepak ; Gopal Ajei Sarat ; Kirby Orvalle Theodore ; Pershing ; Jr. John Arthur ; Blount Marion Lee ; Kaplan Marc Adam ; Turek John Jose, Program product to effect barrier synchronization in a distributed computing environment.
John K. Gee ; David A. Greve ; David S. Hardin ; Allen P. Mass ; Michael H. Masters ; Nick M. Mykris ; Matthew M. Wilding, Real time processor capable of concurrently running multiple independent JAVA machines.
Rabinovich Irina ; Rabinovich Michael, Replication service system and method for directing the replication of information servers based on selected plurality of servers load.
Blair Steven Cameron ; Hetherington David James ; Kumhyr David Bruce, Runtime locale-sensitive switching of calendars in a distributed computer enterprise environment.
Brendel Juergen ; Kring Charles J. ; Liu Zaide ; Marino Christopher C., World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-n.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.