Claims
- 1. A system to manage versions of a software component, comprising:
at least one version of the software component, wherein the software component includes at least one external interface and at least one internal logic and/or storage; a container capable of deploying the at least one version of the software component; and a dispatcher capable of at least one of:
accepting a request from a client for the service of the software component; determining which version of the software component to instantiate; creating an instance of that version of the software component to serve the client; and maintaining the instance running during a session of the service request.
- 2. The system according to claim 1, wherein:
the software component can be stateful or stateless, using synchronous or asynchronous communication.
- 3. The system according to claim 1, wherein:
the software component can be hierarchically structured, including a top-level component and at least one nested component of the top-level component.
- 4. The system according to claim 3, wherein:
different instances of one version of the top-level component could contain the same or different versions of at least one of the nested component of the top-level component.
- 5. The system according to claim 1, wherein:
the at least one internal logic and/or storage of the software component can vary from version to version.
- 6. The system according to claim 1, wherein:
the at least one external interface of the software component can remain backwards compatible in behavior from version to version.
- 7. The system according to claim 1, wherein:
the at least one external interface of the software component can be used locally or over a network.
- 8. The system according to claim 1, wherein:
the at least one external interface of the software component can be used to define Web-based applications.
- 9. The system according to claim 1, wherein:
the container is capable of deploying a version of the at least one version of the software component via at least one of: registering, adding, deleting, and updating the version of the software component.
- 10. The system according to claim 1, wherein:
the dispatcher is capable of maintaining instances of different versions of the software component alive at the same time.
- 11. The system according to claim 1, wherein:
the dispatcher is capable of identifying a version of the at least one version of the software component as active, wherein such version will become the default version to use when the software component is instantiated.
- 12. The system according to claim 1, wherein:
the dispatcher is capable of performing one or more strategies to instantiate the at least one version of the software component in a dispatch cycle.
- 13. The system according to claim 12, wherein:
the dispatcher is capable of performing early branch versioning by making dispatch decisions on how to instantiate a version of the at least one version of the software component early in the dispatch cycle.
- 14. The system according to claim 12, wherein:
the dispatcher is capable of performing late branch versioning by making dispatch decisions on how to instantiate a version of the at least one version of the software component late in the dispatch cycle.
- 15. A method to manage versions of a software component, comprising:
deploying at least one version of the software component, wherein the software component includes at least one external interface and at least one internal logic and/or storage; accepting a request from a client for the service of the software component; determining which version of the software component to instantiate; creating an instance of that version of the software component to serve the client; and maintaining the instance running during a session of the service request.
- 16. The method according to claim 15, wherein:
the software component can be hierarchically structured, including a top-level component and at least one nested component of the top-level component.
- 17. The method according to claim 16, wherein:
creating different instances of one version of the top-level component having the same or different versions of at least one of the nested component of the top-level component.
- 18. The method according to claim 15, further comprising:
allowing the at least one internal logic and/or storage of the software component to vary from version to version.
- 19. The method according to claim 15, further comprising:
keeping the at least one external interface of the software component to remain backwards compatible in behavior from version to version.
- 20. The method according to claim 15, further comprising:
utilizing the at least one external interface of the software component locally or over a network.
- 21. The method according to claim 15, further comprising:
utilizing the at least one external interface of the software component to define Web-based applications.
- 22. The method according to claim 15, wherein:
deploying a version of the at least one version of the software component by performing at least one of: registering, adding, deleting, and updating the version of the software component.
- 23. The method according to claim 15, further comprising:
maintaining instances of different versions of the software component alive at the same time.
- 24. The method according to claim 15, further comprising:
identifying a version of the at least one version of the software component as active, wherein such version will become the default version to use when the software component is instantiated.
- 25. The method according to claim 15, further comprising:
performing one or more strategies to instantiate the at least one version of the software component in a dispatch cycle.
- 26. The method according to claim 25, wherein:
performing early branch versioning by making dispatch decisions on how to instantiate a version of the at least one version of the software component early in the dispatch cycle.
- 27. The method according to claim 25, wherein:
performing late branch versioning by making dispatch decisions on how to instantiate a version of the at least one version of the software component late in the dispatch cycle.
- 28. A machine readable medium having instructions stored thereon that when executed by a processor cause a system to:
deploy at least one version of the software component, wherein the software component includes at least one external interface and at least one internal logic and/or storage; accept a request from a client for the service of the software component; determine which version of the software component to instantiate; create an instance of that version of the software component to serve the client; and maintain the instance running during a session of the service request.
- 29. The machine readable medium of claim 28, wherein:
the software component can be hierarchically structured, including a top-level component and at least one nested component of the top-level component.
- 30. The machine readable medium of claim 29, further comprising instructions that when executed cause the system to:
create different instances of one version of the top-level component having the same or different versions of at least one of the nested component of the top-level component.
- 31. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
allow the at least one internal logic and/or storage of the software component to vary from version to version.
- 32. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
keep the at least one external interface of the software component to remain backwards compatible in behavior from version to version.
- 33. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
utilize the at least one external interface of the software component locally or over a network.
- 34. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
utilize the at least one external interface of the software component to define Web-based applications.
- 35. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
manage a version of the at least one version of the software component by performing at least one of: registering, adding, deleting, and updating the version of the software component.
- 36. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
maintain instances of different versions of the software component alive at the same time.
- 37. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
identify a version of the at least one version of the software component as active, wherein such version will become the default version to use when the software component is instantiated.
- 38. The machine readable medium of claim 28, further comprising instructions that when executed cause the system to:
perform one or more strategies to instantiate the at least one version of the software component in a dispatch cycle.
- 39. The machine readable medium of claim 38, further comprising instructions that when executed cause the system to:
perform early branch versioning by making dispatch decisions on how to instantiate a version of the at least one version of the software component early in the dispatch cycle.
- 40. The machine readable medium of claim 38, further comprising instructions that when executed cause the system to:
perform late branch versioning by making dispatch decisions on how to instantiate a version of the at least one version of the software component late in the dispatch cycle.
- 41. A system to manage versions of a software component, comprising:
means for deploying at least one version of the software component, wherein the software component includes at least one external interface and at least one internal logic and/or storage; means for accepting a request from a client for the service of the software component; means for determining which version of the software component to instantiate; means for creating an instance of that version of the software component to serve the client; and means for maintaining the instance running during a session of the service request.
- 42. A computer data signal embodied in a transmission medium, comprising:
a code segment including instructions to deploy at least one version of the software component, wherein the software component includes at least one external interface and at least one internal logic and/or storage; a code segment including instructions to accept a request from a client for the service of the software component; a code segment including instructions to determine which version of the software component to instantiate; a code segment including instructions to create an instance of that version of the software component to serve the client; and a code segment including instructions to maintain the instance running during a session of the service request.
CLAIM OF PRIORITY
[0001] This application claims priority from the following application, which is hereby incorporated by reference in its entirety:
[0002] U.S. Provisional Patent Application No. 60/449,961, entitled “Systems and Methods for Dynamic Component Versioning” by Kyle Marvin, filed Feb. 26, 2003 (Attorney Docket No. BEAS-01446US1).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60449961 |
Feb 2003 |
US |