XMP (X/Open Management Protocols Application Program Interface) ist ein API, mit dem Anwendungen auf die Management-Protokolle CMIP (bzw. CMOT bei NetView) und SNMP zugreifen können. Die Parameter für die XMP-Funktionsaufrufe werden mit XOM (X/Open OSI-Abstract-Data-Manipulation API) erstellt, einem API für die Repräsentation von ASN.1-Datentypen in C.
Die Funktionsaufrufe von XMP unterstützen sowohl die CMIP-Operationen, als auch die von SNMP:
CMIP Operation | SNMP Operation | XMP Funktionsaufruf |
Action | - | mp_action_req(), mp_action_rsp() |
Cancel get | - | mp_cancel_get_req(), mp_cancel_get_rsp() |
Create | - | mp_create_req(), mp_create_rsp() |
Delete | - | mp_delete_req(), mp_delete_rsp() |
Get | Get | mp_get_req(), mp_get_rsp() |
Set | Set | mp_set_req(), mp_set_rsp() |
Notification | Trap | mp_event_report_req(), mp_event_report_rsp() |
- | Get next | mp_get_next_req(), mp_get_next_rsp() |
Außer den Protokolloperationen hat XMP noch zusätzliche Funktionsaufrufe zum Einrichten und Verwalten von Kommunikationsbeziehungen. Abbildung 3.4 zeigt eine typische Umgebung für XMP-basierte Managementanwendungen, die (bei NetView über den Postmaster-Dämon) auf SNMP- und CMOT-Protokollstacks zugreifen.
Das XMP-API ist nicht protokollunabhängig. Es können zwar die gleichen Funktionsaufrufe verwendet werden, um mit SNMP- und CMIP-Agenten zu kommunizieren, aber es werden je nach Managementprotokoll unterschiedliche Funktionsargumente gebraucht. Eine Managementanwendung muß also wissen, welches Protokoll ein bestimmter Agent unterstützt.
Die Argumente für die XMP-Funktionsaufrufe werden in Form von sogenannten OM-Objekten erzeugt. Bei diesen Objekten handelt es sich um Repräsentationen von ASN.1-Datentypen in C, die mit XOM erstellt werden. OM-Objekte setzen sich aus Attributen zusammen und unterstützen Vererbung. Z.B. gibt es eine OM-Klasse GET-ARGUMENT mit zwei Subklassen: MP_C_SNMP_GET_ARGUMENT und MP_C_CMIS_GET_ARGUMENT.
OM-Klassendefinitionen werden in sogenannten Packages zusammengefaßt. Es gibt zwei Arten von Packages:
XMP/XOM wird für SNMP-basierte Managementanwendungen aufgrund seiner großen Komplexität nur selten verwendet. Es ist jedoch momentan das einzige standardisierte API für CMIP.Die Komplexität ist auch der Hauptgrund, warum es nicht sinnvoll ist, XMP/XOM als API für einen ORB zu verwenden (vgl. Kapitel 4).