×

Method and apparatus for determining at execution compatibility among client and provider components where provider version linked with client may differ from provider version available at execution

  • US 5,613,101 A
  • Filed: 06/07/1995
  • Issued: 03/18/1997
  • Est. Priority Date: 05/05/1993
  • Status: Expired due to Term
First Claim
Patent Images

1. A method for verifying compatibility between modular components in a system having a processor, at least one client component and at least one provider component, the at least one provider component capable of providing services to the at least one client component, a provider component having one or more versions, the at least one client being linked to a version of a provider component during the creation of an executable file of the at least one client and the at least one client, during execution on the processor, using a version of the provider component which is available in the system at the time of execution, wherein the provider component used during execution may be a different version than the provider component to which the client was linked, said method comprising the steps of:

  • specifying a provider indicator for each provider component, said provider indicator identifying a provider component'"'"'s type and uniquely identifying the provider component in a manner that distinguishes the provider component from other provider components;

    specifying a current indicator for each version of each provider component, said current indicator having a value identifying a version of the provider component in a manner which distinguishes the version from other versions of the provider component;

    specifying for each version of each provider component a compatibility range, the compatibility range for a version of a provider component identifying a range of versions of the provider component which are compatible with that version of the provider component such that during execution of a client that version of the provider can be used as long as the client was built using a version of the provider component identified in that version'"'"'s compatibility range;

    specifying for each client component a compatibility range for each provider component to which it is linked, each compatibility range identifying a range of versions of a provider component which can be used to execute the client component;

    linking the at least one client to a provider component to construct an executable client component;

    associating the at least one client with the current indicator of the linked provider component;

    when a client component is executed, determining which of the at least one provider component and versions thereof are available on the system and connecting the client component and the available at least one provider component such that information such as the current indicator and compatibility range of the provider component, the current indicator of a provider component associated with the client component during linking, and the compatibility range of the client can be exchanged between the connected client component and the available at least one provider component;

    determining compatibility between the client component and the connected at least one provider component, the determination being based on the current indicator of the at least one provider component, the current indicator of a provider component associated with the client component during linking, and the compatibility range of the newer of the at least one provider component and the client component such that compatibility is found to exist when the current indicator of the at least one provider component and the current indicator of the linked provider component indicate substantially the same version of the provider component or when the current indicator of the older of the at least one provider component and the linked provider component is within the compatibility range of the newer of the at least one provider component and the client component; and

    indicating whether compatibility exists.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×