A Uniface signature describes the remote interface of a component. The interface enables other components to address the component without knowing anything about the implementation. This allows components of different origin to communicate through their respective interfaces.

For Uniface components, a signature is automatically generated when the component is compiled.

For non-Uniface components that you want to add to your Uniface environment, you can create signatures manually using the Signature Editor.

A signature contains the following elements:

  • Component name
  • List of all operations available within the component
  • List of parameters for each operation, including their data type
  • Optional documentation about the use of the component, including pre- and post-conditions and return values, and keywords

For Uniface components, signatures are automatically created when the component is compiled. Signatures for entity-level operations (defined in the Collection Operations and Occurrence Operations triggers of the entity) must be explicitly compiled (using the /ceo switch).

At runtime, Uniface uses the signature to:

  • Ensure that a component with the specified operation and parameters exists before activating it—when Uniface encounters an activate statement, it checks the signature before activating the operation
  • Provide a unique component identifier—the signature contains a unique ID which is also present in the component itself. Both are compared before a component is activated. This is a security mechanism.
  • Describe non-Uniface components—Uniface can find the API of a non-Uniface component in its signature. This makes it possible to activate these components.

When compiled, component signatures are stored as files in the working directory (resources\sig\ComponentName.sig ). At runtime, they are usually deployed in UAR files.

Related Topics