Claims
- 1. A system for manually migrating a migratable service in a cluster, comprising:
a server cluster comprising at least two servers; a migration target comprising a list of servers in said server cluster capable of hosting a migratable service; a migration manager capable of moving a migratable service between servers in the server cluster, the migration manager ensuring that only one active instance of the service exists in the cluster at any time; and a service stub capable of serving a user request on the servers in said server cluster, the service stub capable of serving the user request on servers in the migration target until the user request is served on the server hosting the active instance of the migratable service.
- 2. A system according to claim 1, further comprising a lease manager adapted to assign a lease period to a server in said server cluster, the lease period determining how long the server will host an instance of the migratable service.
- 3. A system according to claim 2, wherein the lease manager is further capable of renewing a lease period for a server in the server cluster so the service will remain active.
- 4. A system according to claim 2, wherein an active instance of a migratable service is deactivated once the lease period expires.
- 5. A system according to claim 1, further comprising a shared persistence store from which a migratable service can recover a current state.
- 6. A system according to claim 1, wherein the migration target comprises an ordered list of servers.
- 7. A system according to claim 6, wherein first server in the list of servers of the migration target is the preferred server to host an active instance of the migratable service.
- 8. A system according to claim 1, wherein said migratable target contains a list of servers that can host multiple migratable services, such that related migratable services can be moved together by said migration manager.
- 9. A system according to claim 1, further comprising an administration console allowing an administrator to initiate migration in the cluster.
- 10. A system according to claim 1, further comprising an administration console allowing an administrator to monitor migration in the cluster.
- 11. A system according to claim 9, wherein said administration console further allows an administrator to force deactivation of an active instance.
- 12. A system according to claim 9, wherein said administration console further allows an administrator to assign a migratable service to a migratable target.
- 13. A system according to claim 9, wherein said administration console further allows an administrator to monitor the health of a server in the server cluster.
- 14. A system according to claim 1, wherein said service stub is a migration-aware stub that represents the service remotely.
- 15. A system according to claim 1, wherein said service stub is further capable of routing a user request to new active instance of a migratable service if the user request occurs after migration of the migratable service.
- 16. A system according to claim 1, wherein said service stub is further capable of routing a user request to an alternative server selected from the list of servers in the migratable target if the stub cannot reach the first server in the list.
- 17. A system according to claim 16, wherein the alternative server will return information to said service stub that refers the service stub to the server hosting the active instance of the service if the alternative server is not hosting the active instance.
- 18. A system according to claim 17, wherein said service stub is further capable of trying to serve the user request on the server hosting the active instance according to the alternative server.
- 19. A system according to claim 1, wherein said service stub can block a request during migration.
- 20. A system according to claim 1, wherein said service stub further provides an interface for initiating a remote method call.
- 21. A system according to claim 20, wherein said service stub is further capable of preparing arguments to be passed within the remote method call.
- 22. A system according to claim 21, wherein said service stub is further capable of interpreting return values of the remote method call.
- 23. A system according to claim 1, wherein said service stub is further capable of throwing an exception if the service stub is not able to serve a request on a server hosting an active instance of the service.
- 24. A system according to claim 1, further comprising a remote migration controller capable of remotely deactivating any migratable service deployed to said migratable target.
- 25. A system according to claim 1, further comprising a configuration file for storing the identity of a preferred server from the list of servers in said migratable target.
- 26. A system according to claim 25, wherein the preferred server can activate itself.
- 27. A system according to claim 1, further comprising an administration console capable of allowing an administrator to deploy a migratable service to all servers in the cluster associated with the migratable target.
- 28. A system according to claim 1, further comprising a service provider interface for a migratable service specifying a contract to be implemented by a migratable service provider.
- 29. A system according to claim 1, further comprising a node manager that maintains a list of servers in the cluster to be restarted.
- 30. A system according to claim 1, wherein said migratable service is selected from the group consisting of JMS backends, JTA recovery services, administration services, JCA connectors, timers, partitioned caches, and transactions logs.
- 31. A system according to claim 2, further comprising a maximum completion time to be used by the lease manager in disallowing any request on a migratable service when the lease time remaining for the instance of the migratable service is less than the maximum completion time.
- 32. A framework for manually migrating a service between servers, comprising:
a migration target capable of containing a list of servers capable of hosting a migratable service; a migration manager capable of activating an instance of a migratable service on one of the servers contained in said migration target, the migration manager further capable of migrating the migratable service to another one of the servers in the migration target and ensuring that only one active instance of the service exists at any time; a service stub capable of serving a user request on the servers contained in said migration target, the service stub capable of serving the user request on servers in the migration target until the user request is served on the server hosting the active instance of the migratable service; and a lease manager adapted to assign a lease period to the server hosting the migratable service, the lease period determining how long the server will host the active instance of the migratable service.
- 33. A framework according to claim 32, further comprising a migratable interface that defines the methods a framework can use to carry out migration.
- 34. A framework according to claim 33, further comprising an instance of a service class that can implement the migratable interface, the instance capable of being concurrently installed on every server contained in the migration target.
- 35. A framework according to claim 32, wherein the lease manager is further capable of renewing a lease period for the server hosting the active instance of the migratable service so the migratable service will remain active.
- 36. A framework according to claim 32, wherein the migration target comprises an ordered list of servers.
- 37. A framework according to claim 32, wherein first server in the list of servers of the migration target is the preferred server to host an active instance of the migratable service.
- 38. A framework according to claim 32, further comprising an administration console allowing an administrator to initiate and monitor migration among the servers.
- 39. A framework according to claim 38, wherein said administration console further allows an administrator to activate and deactivate an instance of a migratable service.
- 40. A framework according to claim 38, wherein said administration console further allows an administrator to assign a migratable service to the migration target.
- 41. A framework according to claim 32, further comprising a remote migration controller capable of remotely deactivating any migratable service deployed to said migration target.
- 42. A framework according to claim 32, wherein said migratable service is selected from the group consisting of JMS backends, JTA recovery services, administration services, JCA connectors, timers, partitioned caches, and transactions logs.
- 43. A framework according to claim 32, further comprising a maximum completion time to be used by the lease manager in disallowing any user request on a migratable service when the lease time remaining for the instance of the migratable service is less than the maximum completion time.
- 44. A method for manually migrating a service in a server cluster, comprising:
deactivating an active service class instance located a server in the server cluster; selecting a new host server in the server cluster to host the active service class instance, the new host server being selected from a migratable target containing a list of all servers in the server cluster capable of hosting an active instance; and activating the service class instance on the new host server.
- 45. A method according to claim 44, further comprising:
deploying a service class instance on each server in the migratable target.
- 46. A method according to claim 44, further comprising:
activating one of the service class instances on one of the servers in the server cluster before any migration.
- 47. A method according to claim 44, further comprising:
calling an activate method to activate one of the service class instances.
- 48. A method according to claim 44, further comprising:
waiting for a response from the new host server indicating that the service class instance is active.
- 49. A method according to claim 44, wherein the step of selecting a new host server further comprises selecting a new host server from the migratable target by selecting the next server in the list, the list of the migration target being ordered by preference.
- 50. A method according to claim 44, further comprising:
assigning a lease to the server hosting the active service class instance, the lease containing the length of time for which the server can host the instance.
- 51. A method according to claim 50, further comprising:
renewing the lease on the server hosting the active service class instance.
- 52. A method according to claim 50, further comprising:
deactivating the active service class instance when the lease expires.
- 53. A method according to claim 32, further comprising:
determining which servers should be included in the migration target.
- 54. A computer-readable medium, comprising:
means for deactivating an active service class instance located on a server in the server cluster; means for selecting a new host server in the server cluster to host the active service class instance, the new host server being selected from a migratable target containing a list of all servers in the server cluster capable of hosting an active instance; and means for activating the service class instance on the new host server.
- 55. A computer program product for execution by a server computer for migrating a service in a server cluster, comprising:
computer code for deactivating an active service class instance located on a server in the server cluster; computer code for selecting a new host server in the server cluster to host the active service class instance, the new host server being selected from a migratable target containing a list of all servers in the server cluster capable of hosting an active instance; and computer code for activating the service class instance on the new host server.
- 56. A system for migrating a service in a server cluster, comprising:
means for deactivating an active service class instance located on a server in the server cluster; means for selecting a new host server in the server cluster to host the active service class instance, the new host server being selected from a migratable target containing a list of all servers in the server cluster capable of hosting an active instance; and means for activating the service class instance on the new host server.
- 57. A computer system comprising:
a processor; object code executed by said processor, said object code configured to:
deactivate an active service class instance located on a server in the server cluster; select a new host server in the server cluster to host the active service class instance, the new host server being selected from a migratable target containing a list of all servers in the server cluster capable of hosting an active instance; and activate the service class instance on the new host server.
- 58. A computer data signal embodied in a transmission medium, comprising:
a code segment including instructions to deactivate an active service class instance located on a server in the server cluster; a code segment including instructions to select a new host server in the server cluster to host the active service class instance, the new host server being selected from a migratable target containing a list of all servers in the server cluster capable of hosting an active instance; and a code segment including instructions to activate the service class instance on the new host server.
CLAIM OF PRIORITY
[0001] This application claims priority to U.S. Provisional Patent Application No. 60/358,418, filed Feb. 21, 2002, entitled “SYSTEM AND METHOD FOR MIGRATABLE SERVICES,” as well as Application No. 60/358,662, filed Feb. 21, 2002, entitled “SYSTEM AND METHOD FOR AUTOMATED SERVICE MIGRATION,” each of which is hereby incorporated herein by reference.
[0002] The following applications are cross-referenced and incorporated herein by reference:
[0003] U.S. Provisional Application No. 60/317,718 entitled “Exactly Once Cache Framework,” by Dean Jacobs et al., filed Sep. 6, 2001.
[0004] U.S. Provisional Application No. 60/317,566 entitled “Exactly Once JMS Communication,” by Dean Jacobs et al., filed Sep. 6, 2001.
[0005] U.S. patent application Ser. No. 10/000,708 entitled “Method and Apparatus for Session Replication and Failover,” by Eric Halpern et al., filed Oct. 31, 2001.
[0006] U.S. patent application Ser. No. 10/000,709 entitled “Hardware Load-Balancing Apparatus for Session Replication,” by Eric Halpern et al., filed Oct. 31, 2001.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60358418 |
Feb 2002 |
US |
|
60358662 |
Feb 2002 |
US |