Contract Manager data layers

The Contract Manager manages three layers of data:

  • On the calling side, it manages data about applications. Each application has a name, a generated key, and a set of assigned privileges. This information is only relevant when application authentication has been enabled in the Contract Manager.
  • On the implementation side, it manages data about instances. They correspond to KCM instances that have been installed on specific servers. Instances are identified by a combination of a host and an instance number.
  • Between applications layer and instance layer, an additional indirection layer is introduced — a layer for contracts. A contract is identified by a partner and a customer, exposes a set of interfaces, and is connected to an active KCM instance.

    An interface is a specific call that is allowed for the contract. Interfaces are first grouped into contract types, and contract types are then assigned to contracts. The functionality of the contract is determined by the union of the interfaces of its contract types.

    The contract describes the capabilities of the instance and allows the instance information to be updated without affecting the requests. Each request is intended for a specific contract, and each contract is then mapped to a specific instance.

So, the Contract Manager stores the following information:

  • Information about applications
  • Information about contracts
  • Information about instances

This data is stored in the Contract Manager internal database. To work with this data, the solution provides a command-line tool named ManageCM.