A Out-of-Box Associations

Enterprise Manager provides a common set of association types that should meet the needs of most plug-in developers. As a plug-in developer, you are encouraged to become familiar with these association types and use them if applicable. As a plug-in developer, you should also update the Table of Integrators and Documents with links to the documents describing your association types and your usage of all association types (allowed_pairs).

The following tables provide details on the out-of-box associations:

Table A-1 application_contains

Basic Details Source/Destination Description Usage

extends: Contains

Core/Extended: Core

Display Name: "contains (app component)"

Inverse:member_of_application

Source: any aggragate type which is not kind of composite, for example oracle_emrep. For the source type of composite type, user should use composite_contains or assoc types extended from it.

Destination: member entity types, for example, j2ee_applications for Enterprise Manager console and backend service are members for oracle_emrep

Cardinality: 0..*

Capture the membership between application and its members. The source is an aggregation of the members. One member can be part of multiple aggregations.

Indicate a membership of an application, Can be used in the topology.


Table A-2 app_composite_contains

Basic Details Source/Destination Description Usage

extends: application_contains, composite_contains

Core/Extended: Core

Display Name: "contains (app_composite component)"

Inverse:member_of_composite_app

Source: any applicaion that is also a composite type, for example siebel_server. For the source type of cluster type, user should use cluster_contains

Destination: member entity types, for example, siebel_component_group is a member of siebel_server

Cardinality: 0..*

Capture the membership between application and its members. The membership is also a kind of composition. One member can be part of only one composition

Indicate a membership of an application, Can be used in the topology.


Table A-3 authenticated_by

Basic Details Source/Destination Description Usage

extends: depends_on

Core/Extended: Core

Display Name: "authenticated_by)"

Inverse:authenticates

Source: An ME that requires authentication

Destination: Me providing the Authentication, for example: oracle_ldap

Cardinality: 0..1

Capture the membership between application and its members. The membership is also a kind of composition. One member can be part of only one composition

Indicate a membership of an application, Can be used in the topology.


Table A-4 composite_contains (abstract)

Basic Details Source/Destination Description Usage

extends: contains,uses

Core/Extended: Core

Display Name: "CompositeContains"

Inverse: member_of_composite

Source: Source: any composite types

Destination: Members of the composite.

Cardinality: 0..*

A form of aggregation which requires that a part instance be included in at most one composite at a time. For example: If a database D1 is part of Oracle RAC cluster R1, it cannot be part of another cluster R2. This is used to place a box around the source and all its members to indicate that the members cannot be part of another source.

The restriction applies to specific concrete association type extended from composite_contains. An ME can be a destination of no more than 1 assoc of type T if T extends composite-contains. But an ME can be destination with different source ME as long as the concrete composit_contains types are different.

Current usage is to link cluster targets (rac_database,cluster,weblogic_cluster) to its members. Framework functionality, such as topology viewer, can use it.


Table A-5 cluster_contains

Basic Details Source/Destination Description Usage

extends: composite_ contains

Core/Extended: Core

Display Name: "contains (in cluster)"

Inverse:member_of_cluster

Source: A cluster target type, such as RAC or Cluster

Destination: Member type of the cluster. The cluster member types should be the same

Cardinality: 1..*

Cluster membership, where the members are of the same type and together provide scalability and redundancy. Also indicates composite containment; Cluster A cluster_contains B implies that B cannot be member of another cluster C.

Tools like Consolidation Planner need to know cluster membership. Also, all the general tools such as Topology Viewer.


Table A-6 connects_through

Basic Details Source/Destination Description Usage

extends: depends_ on

Core/Extended: Core

Display Name: "connects_through"

Inverse: connects

Source: An ME which is connecting to another ME via a intermediate path. Example: an application connecting to database via listener

Destination: Me providing the access point for another ME ( oracle_listener, oracle_apache, slb)

Cardinality: 0..*

Application connects_through Listener, which exposes database.Service connects_through oracle_apache, which exposes oracle_oc4j.

Used in Applications topology to represent the connection to the end via an intermediate path. Example: connects_through listener, which exposes database.The source will also have a direct functional dependency directly on the end point ( application stores_on_db database)In functional view, the direct dependency of stores_on_db will be shown, in physical view, the listener link will be shown.


Table A-7 contains (abstract)

Basic Details Source/Destination Description Usage

extends: none

Core/Extended: Core

Display Name: "contains"

Inverse: member_of

Any source ME and its member ME types

Cardinality: 0..*

Indicates containment membership. A contains B implies that B is one of the parts that make up A.

All containment relationships should be captured by plug-in developers except that system membership is captured by the OMS and TC containment is not required to be represented via an assoc instance. You must use the concreted types, which extend from "contains"

However, user can query instances for all the association types which extend from the "constains". Framework functionality, such as topology viewer, can query this type of associations.


Table A-8 depends_on(abstract)

Basic Details Source/Destination Description Usage

extends: uses

Core/Extended: Core

Display Name: "Depends on"

Inverse: depended_on_by

Source: any ME type

Destination: any ME type

Cardinality: 0..*

For any ME A that depends on ME B for its availability. If ME B is not available, the availability of A may be impacted.

Framework functionalities, such as RCA and Topology Viewer, can use it.


Table A-9 deployed_on

Basic Details Source/Destination Description Usage

extends: runs_on, member_of_application

Core/Extended: Core

Display Name: "Deployed on"

Inverse: deploys

Source: any ME except target component

Destination: j2ee container

Cardinality: 1..*

Application A is deployed into a J2EE? container B.

Topology viewer can display the application deployed on a j2ee server .


Table A-10 exposes

Basic Details Source/Destination Description Usage

extends: uses

Core/Extended: Core

Display Name: "exposes"

Inverse: exposed_by

Source: ME providing the access point for another ME ( oracle_listener, oracle_apache, slb)

Destination: ME of target being accessed via the source.

Cardinality: 0..*

Some ME's functionality is exposed through other ME, such as oracle_listener exposes oracle_database to application, oracle_apache expose oc4j.Capture more semantics for uses: What the listener can do gets impacted if the db goes down, but listener itself does not go down, it is degraded mode.

Used to represent the entry points for targets/systems.

Listener exposes oracle_database. In this case it is strictly not the database target which is providing the accesspoint, the oracle database can be thought of providing the services which are available via the listener.

oracle_http exposes oc4j. Here again, the oc4j target may not be providing the http service, the http service could be running as a seperate service which lets an application connect to oc4j.

Framework functionality, such as topology viewer, can use it.


Table A-11 hosted_by

Basic Details Source/Destination Description Usage

extends: runs_on

Core/Extended: Core

Display Name: "hosted_by"

Inverse: host_for

Source: any ME type except a system, service, or target component

Destination: host

Cardinality: 1

For any target T that is hosted_by H, the process(es) that comprise T execute on host H.A target can be hosted by only one host.

Used to locate the targets running on the given host.


Table A-12 installed_at

Basic Details Source/Destination Description Usage

extends: uses

Core/Extended: Core

Display Name: "installed_at"

Inverse: install_home_for

Source: any ME except target component

Destination: A ME representing an install home

Cardinality: 1

A installed at B indicates that B represents the install home for A Example: oracle database --> installed_at --> oracle_home.

Used to denote the link to the install home where the software for the ME is installed.Used in patching to get to the oracle home where the target is installed.


Table A-13 internal_contains (for internal OMS use only)

Basic Details Source/Destination Description Usage

extends: contains

Core/Extended: Core

Display Name: "InternalContains"

Inverse: internal_member_of

Source: System/Group

Destination: A system can contain any ME except group, a group can contain any ME except target component

Cardinality: 0..*

A special form of an association that specifies a whole-part relationship between the system and a component part. The component part can exist independent of the system and can be part of multiple systems. System A contains B implies that B is one of the parts that make up A. B can also be included in other system C

User should normally use Group/System API to find the members. But use can query the 'internal_contains' against table/view.


Table A-14 managed_by

Basic Details Source/Destination Description Usage

extends: monitored_by, uses

Core/Extended: Core

Display Name: "managed_by"

Inverse: manages

Source: any ME type except target component

Destination: an ME type that can provide management functionality for other ME types. For example, oracle_cs can manage oracle_database, oracle_listener etc.

Cardinality: 1..* (A specific allowed_pair can have stricter cardinality, such as 1)

The destination ME may work as watchdog and can start source target. The entity which manages another entities can make change to the managed entities, which the monitored_by doesn't have this semantic.

Framework functionality, such as topology viewer, can use the association


Table A-15 monitored_by

Basic Details Source/Destination Description Usage

extends:

Core/Extended: Core

Display Name: "monitored_by"

Inverse: monitors

Source: any ME type except target component

Destination: agent

Cardinality: 1 (cardinality is 1 at any given moment)

For any target T that is monitored by an agent. Example: target T--> monitored_by -> agent A .

Used in agent syncrononzation/availability calculations/framework code


Table A-16 provided_by

Basic Details Source/Destination Description Usage

extends: depends_on

Core/Extended: Core

Display Name: "provided_by"

Inverse: provides

Source: an ME, typically representing some kind of service, such as the db service, fusion product, webservice

Destination: A system or a target which is providing the service

Cardinality: 1

A provided_by B indicates that the service of B is provided by ME A.

Topology viewer can display the association


Table A-17 runs_on (abstract)

Basic Details Source/Destination Description Usage

extends: depends_on

Core/Extended: Core

Display Name: "runs_on"

Inverse: runs

Source: any ME except target component

Destination: any ME which provides infrastructure for other MEs to run, such as VM.

Cardinality: 1

A run_on B indicates that B provides infrastructure for some processes of A to execute. Note: processes is used in the English sense and does not indicate OS processes.

Framework functionality, such as topology viewer, can use it.


Table A-18 stores_on

Basic Details Source/Destination Description Usage

extends: depends_on

Core/Extended: Core

Display Name: "stores_on"

Inverse: stores

Source: typically a target which stores data. For example: oracle_database or sql server.

Destination: an ME representing storage. For example: netapp filer or exadata.

Cardinality: 0..*

Indicates the link to the target representing the storage of the bits. A stored_on B indicates that B provides infrastructure for storage of bits of A, Example: datafile-->stored_on-->netapp_filer. The stored data can be static or updatable.

Used to denote the link to the storage infrastructure. This is to visually locate the storage details in the topology.


Table A-19 stores_on_db

Basic Details Source/Destination Description Usage

extends: stores_on

Core/Extended: Core

Display Name: "Data Repository"

Inverse: data_repository_for

Source: an ME that stores data in a database.

Destination: ME providing the database repository for storing the data Example: application stores_on_db oracle_database.

Cardinality: 0..*

Represents depends_on in that if the database server is down, the source can be down.

Used in Applications topology to represent the database where an applications data is stored.


Table A-20 uses (abstract)

Basic Details Source/Destination Description Usage

extends: None

Core/Extended: Core

Display Name: "uses"

Inverse: used_by

Source: any ME type

Destination: any ME type

Cardinality: 0..*

For any ME A that depends on ME B for its working but does not affect availability.

Used in topology pages to indicate non availability dependency