next up previous contents index
Next: Szenario 2: CICS-Anwendung startet Up: Ein anwendungsbezogenes Objektmodell Previous: Namenskonventionen

Szenario 1: Herstellen einer Verbindung zwischen CICS-Systemen

Eine Verbindung zwischen zwei Systemen herzustellen, setzt voraus, diese Systeme zu identifizieren. Die erste Klasse repräsentiert also ein CICS-System (System), das in einer bestimmten Domäne liegt.

Ein komplett neues Aufsetzten eines Systems ist eine Aufgabe, die viel Erfahrung im Umgang mit dem jeweiligen TP-Monitor erfordert. Der DTM  stellt jedoch ein Hilfsmittel dar, mit dem eine bestehende Domäne mit TP-Monitoren auf verschiedenen Plattformen administriert werden kann. Für den Einsatzbereich des Domain Transaction Manager  ist es momentan nicht notwendig, ein System von Grund auf aufzubauen, das heißt, man kann sich im Moment darauf beschränken, die Systemdefinitionen als Informationsquelle zu nutzen. Man braucht außerdem nicht die gesame Anzahl von Attributen für ein System, sondern kann sich für dieses Szenario auf wenige beschränken.

Um eine Region zu identifizieren braucht man den Region-Namen (sysName) und den Netznamen (netName). Diese Namen benötigt man jeweils für beide Systeme zwischen denen die Verbindung definiert werden soll. Um nun die beiden Verbindungs-Hälften zu definieren, gibt es die Klasse (HalfConnection). Zur Identifikation muß man ihnen jeweils einen Namen (connectionName) geben und festlegen, über welches Protokoll (connectionProtocol) die Verbindung laufen, ob und welches Gateway (gatewayName) und welche Zeichensatztabelle (remoteCodepage) auf der Gegenseite verwendet werden soll. Das ist notwendig, weil auf beiden Seiten unterschiedliche Zeichensätze dazu führen, daß zum Beispiel Paßwörter zur Verifikation der Berechtigungen nicht als richtig erkannt werden, obwohl die richtigen Paßwörter übermittelt wurden. In diesem Zusammenhang wird bei einer Halb-Verbindung angegeben, welche Sicherheitsmechanismen verwendet werden sollen, ob Userid, Paßwort, beides oder nichts übertragen werden soll (security). Diese Einstellungen müssen in den beiden zusammengehörenden Halb-Verbindungen übereinstimmen. Außerdem braucht man noch den Namen der DCE-Zelle (dceCellName) in der sich das andere System befindet. Um das andere System im Netz eindeutig zu identifizieren, benötigt man bei einer TCP/IP-Verbindung noch die TCP/IP-Adresse (remTcpAddress) und den Port (remPortnr). Diese Attribute werden aber sinnvollerweise bei dem jeweiligen System nochmals lokal gehalten (localTcpAddress und localPortnr), da sie auch lokal abgefragt werden sollen, um sie eventuell Anderen mitteilen zu können, die eine Verbindung zu diesem System aufbauen wollen. In SNA-Netzen ist die Identifizierung bereits über den Netznamen (remNetName) und den Region-Namen (remSysName) möglich, da diese eindeutig sind. Weil man eine Verbindung nur dann definieren kann, wenn beide beteiligten Systeme gestartet sind und laufen, braucht man eine Möglichkeit, festzustellen in welchem Zustand sich ein System gerade befindet (systemStatus).

Sollte in einem System während der Laufzeit ein Problem auftreten, kann es notwendig sein, ein System kurzzeitig herunterzufahren. Ein häufiger Grund ist zum Beispiel eine Anwendung, die aufgrund eines Programmierfehlers Betriebsmittel sperrt und nicht mehr freigibt. Das Stoppen sollte von einem Managementwerkzeug ebenso ermöglicht werden (stop()), wie das Starten.

Der Neustart (start()) eines Systems bereitet erfahrungsgemäß mehr Schwierigkeiten als das Stoppen, weil die Stop-Funktion noch im betreffenden System ausgeführt werden kann, ein nicht gestartetes System seinen eigenen Restart aber nicht ohne weiteres einleiten kann. Dazu muß auf die jeweils darunterliegende Ebene zurückgegriffen werden. Bei Betriebssystemen dient dazu beispielsweise das BIOS, im Falle der TP-Monitore müssen zum Starten Betriebssystem-Dienste verwendet werden.

Um einem Administrator mehr Übersichtlichkeit zu bieten, sollten jeweils die beiden Halb-Verbindungen zu einer logischen Verbindung zusammengefaßt werden und in einer Region oder besser noch global für einen Node oder eine Domäne angezeigt werden können, da ein Node mehrere Systeme enthalten kann. Dazu dient die Klasse Connection, die über den connectionName identifiziert wird und nur Metainformation enthält, über die jeweils die beiden dazugehörigen Halb-Verbindungen dereferenziert werden können (halfConnectionA und halfConnectionB).
Zur einfacheren Rechtevergabe und für selektives Sperren von Verbindungen und Halb-Verbindungen sollten diese in Gruppen (group) klassifiziert werden. Damit können zum Beispiel alle Verbindungen zu einem Testsystem geschlossen oder Produktiv-Systeme nur für spezielle Integrations-Systeme geöffnet werden. Um Verbindungen zu öffnen und zu sperren braucht man die Methoden enable() und disable().

Auf einer Verbindung werden eine oder mehrere Sitzungen (Session) aufgebaut. Einer Verbindung muß nun mitgeteilt werden, wieviele Sitzungen aufgebaut werden sollen, wenn die Verbindung zum ersten Mal aktiviert wird [*]. Dazu dient das Attribut sessionCount. Der Zeitpunkt der Aktivierung einer Verbindung wird über das Attribut activateAtStartup festgelegt. Das CICS aquiriert während des Betriebes nach Bedarf weitere Sitzungen, falls die Konversationen auf den bestehenden Sitzungen nicht mehr bewältigt werden können. Nachdem eine Verbindung erfolgreich definiert wurde, sollte eine Methode zur Verfügung stehen, um sie einmal auf Funktion zu prüfen (test()).


  
Abbildung: Die Klassen aus dem ersten Szenario
\begin{figure}
 \epsfxsize 0.9\hsize
 \begin{center}
 \rotatebox{0}{\epsffile{Folien/DASystem.ps}}
 \end{center} 
 \vspace{0.5cm} \vspace{0.5cm}
 \end{figure}


next up previous contents index
Next: Szenario 2: CICS-Anwendung startet Up: Ein anwendungsbezogenes Objektmodell Previous: Namenskonventionen
Copyright Munich Network Management Team