Achieving polymorphism in a COM software architecture or the like
First Claim
1. A method comprising:
- providing a client configured to interoperate with a first server having a first functionality by using a first interface, the first interface having at least one first unique identifier;
providing a second server derived from the first server and having a second functionality and a second interface, the second interface having at least one second unique identifier;
allowing the client to interoperate with the second server and obtain a result based on the second functionality by making the at least one second unique identifier identical to the at least one first unique identifier and replacing the first server with the second server at runtime.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method is provided that allows a software application or client to access and utilize new or different functionality so that the application or client may evolve and improve. More specifically, a system and method is provided that allows a client to interoperate with and obtain a result from a derived server having a first functionality based on an existing relationship between the client and a base server having a second functionality. The existing relationship is based on one or more unique identifiers that may be associated with an interface of the base server and which may be used to interoperate with encapsulated data and methods. The system and method includes making one or more unique identifiers associated with the derived server identical to one or more unique identifiers associated with the base server.
-
Citations
26 Claims
-
1. A method comprising:
-
providing a client configured to interoperate with a first server having a first functionality by using a first interface, the first interface having at least one first unique identifier;
providing a second server derived from the first server and having a second functionality and a second interface, the second interface having at least one second unique identifier;
allowing the client to interoperate with the second server and obtain a result based on the second functionality by making the at least one second unique identifier identical to the at least one first unique identifier and replacing the first server with the second server at runtime. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
- 11. A machine-readable medium having stored thereon data representing sequences of instructions, the sequences of instructions which, when executed by a machine, cause the machine to allow a client configured to interoperate with a first server to interoperate with a second server, the first server having a first functionality and a first interface having at least one first unique identifier, the second server having a second functionality and a second interface having at least one second unique identifier, wherein the instructions causing the machine to allow include instructions causing the machine to make the at least one second unique identifier identical to the at least one first unique identifier and replace the first server with the second server at runtime.
-
15. A system comprising:
-
a logical memory storing a client configured to interoperate with a first server having a first functionality by using a first interface, the first interface having at least one first unique identifier;
the logical memory further storing a second server derived from the first server and having a second functionality and a second interface, the second interface having at least one second unique identifier; and
a computer system functionally connected with the logical memory and including a processor, the processor to obtain a result based on the second functionality after the at least one second unique identifier is made identical to the at least one first unique identifier and the first server is replaced by the second server at runtime. - View Dependent Claims (16, 17, 18)
-
-
19. A method comprising:
-
providing a client;
providing a base COM server having an interface to interoperate with the client, the base COM server having a first name and the interface having a second name, wherein the base COM server is located in a first directory, and wherein the base COM server has been registered in the first directory by storing at least one first UUID in a registry;
providing a derived COM server with a third name, wherein the derived COM server has an interface having a fourth name, and wherein the derived COM server comprises properties and methods associated with the base COM server;
modifying an IDL file to make a UUID of the interface and a UUID of a class of the derived COM server identical to a UUID of the interface and a UUID of a class of the base COM server;
making identifications of properties and methods of the derived COM server identical to corresponding identifications of properties and methods of the base COM server;
making the third name of the derived COM server identical to the first name of the base COM server; and
obtaining a result at the client based on one or more methods of the modified derived COM server. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
wherein the derived COM server is initially located in a second directory, the second directory different from the first directory; and
further comprising copying the derived COM server from the second directory to the first directory.
-
-
25. The method of claim 19, wherein the base COM server and the derived COM server are created using ATL.
-
26. The method of claim 19, further comprising providing the appearance of polymorphism from the perspective of the client by dynamically selecting among a plurality of derived COM servers at runtime based upon functionality needed by the client.
Specification