# Interoperation

Basic interoperability

Interoperation allows repositories which use similar data models to share metadata with each other. The shared metadata objects are automatically linked into the catalog of the repository which creates the interoperation.

In the figure above, the objects maintained at Repository A are linked into the catalog of Repository B as a result of an interoperation created at Repository B. Note that the catalog links point to the *remote* objects. When someone clicks the link to view the object they retrieve that object from the repository you interoperate with, not from your repository. This ensures that the information in your catalog is always current, and also ensures that the repository which maintains the object controls its appearance and access permissions. The class of linked objects is dictated by the primary class of the repository which creates the interoperation (Repository B in the figure above).

Enhanced interoperability

In addition to being linked into the catalog, the shared metadata objects are also linked into the corresponding local classes of the repository that creates the interoperation. These links are referred to as interoperation objects. Interoperation objects are shown in the object browser with their names preceded by a '*'. Interoperation objects can not be editted but they can be 'used' by local objects. That is, you can make the Relationships of your local objects point to interoperation objects. When displayed in the catalog, relationships that are made to interoperation objects will point directly to the remote objects where these interoperation objects actually come from. You can delete and change the status of an interoperation object as usual. When you view an interoperation object, you will get to see the remote object it is pointing to.

Interoperation objects can also be used by the "Join" function of RIB. See help on Joins for more information.

The Interoperations browser

Clicking on the Interoperation tab will show the current status of the repository's interoperations. This area is called the Interoperations browser and will be empty until an interoperation has been created. See help on Creating Interoperations for instructions on how to set up a new interoperation. The "Refresh" button contacts the RIB server and updates the list. This is especially important if more than one person administrates the repository.

The Interoperations browser shows the update interval for each interoperation. The "Last Attempt" column shows the last time an attempt was made to start the interoperation, and what the results of that attempt were. To inspect or change the properties of an interoperation, select (left-click) it and then right-click it. CTRL+left-click or SHIFT+left-click will allow selection of multiple interoperations.

Deleting an interoperation in the Interoperations browser will automatically delete all the interoperation objects (links in the catalog and links in local classes) created as a result of this interoperation.

Note: In practice, to better interoperate with a remote repository, you may need to import the data model of it first. See help on importing a data model for more information.