Bei CPI-C gibt es die Begriffe Conversation, Conversation Characteristics und Side Information.
Unter einer Conversation versteht man die Kommunikationsbeziehung, die ein CPI-C-Programm mit einem UTM-Service abwickelt.
Die Conversation Characteristics beschreiben die aktuellen Parameter und Eigenschaften einer Conversation, siehe „Conversation Characteristics“.
Die Side Information beschreibt beim Trägersystem UPIC im Wesentlichen die für eine Conversation notwendigen Adressierungsinformationen. Die für eine Conversation notwendigen Adressierungsinformationen können in der Side Information-Datei (upicfile) stehen.
Zustand einer Conversation
Der Zustand einer Conversation spiegelt die letzte Aktion dieser Conversation wider bzw. legt die erlaubten Folgeaktionen fest.
Wenn Sie ein Programm schreiben, das CPI-C-Aufrufe verwendet, müssen Sie darauf achten, dass im CPI-C-Programm und im UTM-Teilprogramm immer die passenden Aufrufe verwendet werden. Insbesondere kann immer nur der Partner Daten senden, der das Senderecht besitzt.
Eine Conversation kann sich beim Trägersystem UPIC in einem der folgenden Zustände befinden:
Zustand | Beschreibung |
Start | Das Programm ist nicht beim Trägersystem UPIC angemeldet. (Vor Enable_UTM_UPIC-Aufruf oder nach Disable_UTM_UPIC-Aufruf) |
Reset | Der conversation_ID ist keine Conversation zugeordnet. |
Initialize | Der Initialize_Conversation-Aufruf wurde erfolgreich beendet und der Conversation wurde eine conversation_ID zugeordnet. |
Send | Das Programm hat das Recht, Daten über die Conversation zu senden. |
Receive | Das Programm kann Informationen über die Conversation empfangen. |
Tabelle 1: Zustand einer Conversation
Eine Conversation befindet sich zu Beginn im Zustand "Reset" und nimmt danach verschiedene Folgezustände an, jeweils abhängig von den eigenen Aufrufen und den Informationen, die vom Partner-Programm empfangen wurden.
Eine besondere Rolle spielen die Zustände "Send" und "Receive", auf die im Abschnitt „Austausch von Nachrichten mit einem UTM-Service“ eingegangen wird. Eine Zustandstabelle finden Sie im Anhang im Abschnitt "Zustandstabelle". Hier finden Sie die Zustandsänderungen einer CPI-C-Conversation in Abhängigkeit von den CPI-C-Aufrufen und ihren Ergebnissen.
UPIC überwacht den aktuellen Zustand einer Conversation. Falls die Synchronisation der beiden Seiten durch einen ungültigen Aufruf verletzt werden sollte, wird dieser Fehler mit dem Wert CM_PROGRAM_STATE_CHECK als Ergebnis des Aufrufs angezeigt.
Die X/Open CPI-C Specification definiert weitere Zustände, die aber beim Trägersystem UPIC nicht angenommen werden können.
Conversation Characteristics
Die Conversation Characteristics werden zusammen mit der Side Information einer Conversation in einem Kontrollblock verwaltet. Dieser Abschnitt beschreibt die für CPI-C mit Trägersystem UPIC relevanten Characteristics sowie die Werte, die ihnen beim Aufruf Initialize_Conversation zugewiesen werden. Die X/OPEN-Schnittstelle CPI-C enthält weitere, hier nicht aufgeführte Characteristics.
Es gibt drei Arten von Conversation Characteristics:
fest vorgegebene
veränderbare über CPI-C-Aufrufe
UPIC-spezifische
Folgende Conversation Characteristics sind fest vorgegeben:
Conversation Characteristics | Initialisierungswert bei Initialize_Conversation |
conversation_type | CM_MAPPED_CONVERSATION |
return_control | CM_WHEN_SESSION_ALLOCATED |
send_type | CM_BUFFER_DATA |
sync_level | CM_NONE |
Tabelle 2: Fest vorgegebene Conversation Characteristics
Folgende Conversation Characteristics sind über CPI-C-Aufrufe veränderbar:
Conversation Characteristics | Initialisierungswert bei Initialize_Conversation |
deallocate_type | CM_DEALLOCATE_SYNC_LEVEL |
partner_LU_name | Wert aus Side Information, abhängig vom Symbolic Destination Name |
partner_LU_name_length | Länge von partner_LU_name |
receive_type | CM_RECEIVE_AND_WAIT |
security_new_password | leer |
security_new_password_length | 0 |
security_password | Leerzeichen |
security_password_length | 0 |
security_type | CM_SECURITY_NONE |
security_user_ID | Leerzeichen |
security_user_ID_length | 0 |
TP_name | Wert aus Side Information abhängig vom Symbolic Destination Name |
TP_name_length | Länge von TP_name |
Tabelle 3: Veränderbare Conversation Characteristics
Folgende Conversation Characteristics sind UPIC-spezifisch und veränderbar, dabei wird zwischen den Charakteristics für eine Partner-Anwendung und den Werten für eine lokale Anwendung unterschieden:
Conversation Characteristics | Initialisierungswert bei Initialize_Conversation |
CHARACTER_CONVERTION | CM_NO_CHARACTER_CONVERTION |
CLIENT_CONTEXT | leer |
ENCRYPTION-LEVEL | 0 |
PORT | 102 |
T-SEL | wird aus partner_LU_name abgeleitet |
T-SEL-FORMAT | wird aus partner_LU_name abgeleitet |
HOSTNAME | wird aus partner_LU_name abgeleitet |
IP-ADDRESS | wird nicht initialisiert |
RSA-KEY | wird von der UTM-Anwendung vergeben |
SECONDARY_RETURN_CODE | CM_RETURN_TYPE_SECONDARY |
TRANSACTION_STATE | leer |
Tabelle 4: UPIC-spezifische Conversation Characteristics für ferne Anwendungen
Werte für lokale Anwendung | Initialisierungswert bei Enable_UTM_UPIC |
PORT | wird vom UPIC-Client vergeben |
T-SEL | wird aus dem lokalen Anwendungsnamen abgeleitet |
T-SEL-FORMAT | wird aus dem lokalen Anwendungsnamen abgeleitet |
Tabelle 5: UPIC-spezifische Werte für lokale Anwendungen
Die Bedeutung der Characteristics und lokalen Werte wird nicht näher erklärt. Diese Aufzählung wird nur vorgenommen, um einen Vergleich der von UPIC zur Verfügung gestellten Schnittstelle CPI-C mit der X/Open-Schnittstelle CPI-C hinsichtlich der Conversation Characteristics zu ermöglichen. Eine detaillierte Erklärung finden Sie in der X/Open Spezifikation „CPI-C Specification Version 2“.
Side Information
Da die Adressierungsinformationen abhängig sind von der jeweiligen Konfiguration, verwenden CPI-C-Anwendungen folgende symbolische Namen für die Adressierung:
Symbolic Destination Name
Der Symbolic Destination Name adressiert den Kommunikationspartner. Hinter dem Symbolic Destination Name verbergen sich die folgenden Komponenten:partner_LU_name
Sie adressiert die UTM-Partner-Anwendung und kann im Programm mit Set_Partner_LU-name überschrieben werden.TP_name
Sie adressiert den UTM-Service innerhalb der UTM-Partner-Anwendung. TP_name ist ein Transaktionscode und kann vom Programm mit Set_TP_Name überschrieben werden, z.B. TP_name=KDCDISP für den Wiederanlauf.Der durch diesen Transaktionscode adressierte UTM-Service wird gestartet, sobald das Programm den ersten Receive-Aufruf oder einen Prepare_To_Receive-Aufruf abgesetzt hat.
Schlüsselwörter
Mit verschiedenen Schlüsselwörtern können weitere UPIC-spezifische Conversation Characteristics gesetzt werden. Ein Programm kann diese Characteristics mit den entsprechenden CPI-C-Aufrufen (z.B. Set_Conversation_Encryption_Level) überschreiben.
Der Symbolic Destination Name wird über die upicfile
mit der „realen“ Adressierung (partner_LU_name, TP_name) verknüpft. partner_LU_name und TP_name und die Schlüsselwörter gehören zu den Conversation Characteristics, die unten beschrieben werden.
local_name
Der local_name vergibt für die eigene Anwendung den lokalen Anwendungsnamen. Für den local_name kann in derupicfile
ein symbolischer Name vergeben werden. Mit Schlüsselwörtern können UPIC-lokale Werte gesetzt werden. Dadurch wird der Name, den das Programm vergibt, unabhängig vom Namen, der in der UTM-Generierung verwendet wird. Ein Programm kann diese Characteristics mit den entsprechenden CPI-C-Aufrufen (z.B. Specify_Local_Tsel()) überschreiben.
Wie die upicfile
erstellt wird und wie die Einträge mit der Netzwerk- und UTM-Generierung zusammenhängen, ist im Abschnitt „Abstimmung mit der Partnerkonfiguration“ beschrieben.
Wenn eine upicfile
verwendet wird, so hat dies den Vorteil, dass Netzwerk- und UTM-Generierung geändert werden können (z.B. die UTM-Anwendung auf einen anderen Rechner umziehen), ohne dass die Client-Programme geändert werden müssen.