IndexJanus Webanwendung


Übersicht

Die Webanwendung bildet den Rahmen, um verschiedene Dienste rund um die Janus-Kommunikation zusammenfassend zur Verfügung zu stellen. Sie enthält Connection-Pools für die Verbindungen zu den NonStop-Anwendungen und Dienste, über die externe oder interne Anwendungen auf die Pools zugreifen können. Momentan implementiert ist ein Proxy-Server.
Schematische Darstellung der Verbindung

Funktionsweise des Proxy-Servers

Der Proxy-Server bildet die Kommunikationsanforderungen vieler Clients auf die Resourcen eines Connection-Pools ab. Es geht darum, auf dem NonStop-Host nur so viele Kommunikationsprozesse wie nötig vorzuhalten und nicht für jeden Client einen eigenen Prozess.

Die Clients verbinden sich nicht direkt mit dem Host sondern stattdessen mit dem Proxy-Server. Dieser reserviert bei Bedarf eine Verbindung zum Host und wickelt über diese die Kommunikation ab. Die Hostverbindung wird an den Pool zurückgegeben, sobald keine Datenbank-Transaktion mehr offen ist bzw. der Client seine Verbindung geschlossen hat.

Die Proxy-Verbindung ist durch das Pooling nicht völlig transparent: Der Initialisierungsparameter beim Verbindungsaufbau -der Name des Pathmon-Prozesses- wird nicht vom Client vorgegeben, sondern nur in der Konfiguration des Proxy-Servers. Clients können allerdings beliebige Pathway-Systeme ansteuern, indem sie an den Namen der Serverklasse ein '@' und den Namen des Pathmon-Prozesses anhängen.

Pool-Konfiguration

Die Pool-Konfiguration erfolgt in der Datei pool.properties im Verzeichnis WEB-INF. Eine Beispielkonfiguration zeigt die folgende Datei:

#
# pool.properties
#
poolcount=2
poolname.1=prodpool
poolname.2=testpool

prodpool.host=tandem
prodpool.port=2000
prodpool.pathmon=$BDE
prodpool.poolsize=4
prodpool.idletime=600
prodpool.debug=false

testpool.host=mac
testpool.port=2222
testpool.pathmon=$TEST
testpool.poolsize=2
testpool.idletime=30
testpool.debug=true

Sie definiert zwei Pools mit den Namen "prodpool" bzw. "testpool". Eine Beschreibung der Parameter findet sich in der API-Dokumentation der Klasse janus.net.ConnectionPool.

Service-Konfiguration

Die Service-Konfiguration erfolgt in der Datei service.properties im Verzeichnis WEB-INF. Eine Beispielkonfiguration zeigt die folgende Datei:
#
# service.properties
#
active=true

services=prodproxy,testproxy,Echo

#
# Gemeinsame Paramter
#
class=ProxyService
address=0.0.0.0
timeout=10000
autorelease=true
debug=false

#
# Parameter fuer prodproxy
#
prodproxy.port=2000
prodproxy.pool=prodpool

#
# Paramter fuer testproxy
#
testproxy.port=2222
testproxy.timeout=20000
testproxy.pool=testpool
testproxy.debug=true
testproxy.autorelease=false

#
# Paramter fuer Echo
#
Echo.class=EchoService
Echo.port=2001
Echo.debug=true
Echo.args=1500

Hier werden zwei Proxy-Server und ein Test-Server (EchoService) definiert. Alle Zeiten sind in Millisekunden angegeben. Die wichtigsten Parameter sind die folgenden:

Parameter Bedeutung
class Name der Java-Klasse, die den Service implementiert. Die Klassen liegen im Package janus.web.service.
address IP-Interface, auf dem der Dienst Verbindungen annimmt. "0.0.0.0" steht für alle Interfaces, localhost für rein internen Zugriff, also nur für Prozesse auf demselben Rechner.
port Der TCP-Port, auf dem Verbindungen angenommen werden. Jeder Port darf nur genau einem Dienst zugewisen werden.
timeout Maximale Wartezeit auf eine freie Verbindung. Ist innerhalb dieser Zeit keine Verbindung aus dem Pool frei, wird ein Fehler an den Client zurückgemeldet.
autorelease Wenn dieser Parameter gesetzt ist (default), werden Verbindungen immer dann an den Pool zurückgegeben, wenn gerade keine Datenbank-Transaktion aktiv ist. Wenn Sie UMS-Verbindungen benötigen, dann muss der Parameter auf false gesetzt werden. In diesem Fall bleibt die Host-Verbindung reserviert, bis der Client seine Verbindung zum Proxy-Server getrennt hat.
debug Setzen Sie diesen Paramter, wenn sie Traceausgaben im Logfile Janus-Service.trc  machen wollen. Sie können den kompletten Datenverkehr aufzeichnen.
Echo.args Der Testserver antwortet einfach mit der gesendeten Nachricht. Das Argument ist eine Verzögerungszeit in Millisekunden. Wenn der Client eine UMS-Verbindung aufbaut (Connection.acceptNew()), dann sendet dieser Server alle 30 Sekunden eine UMS-Nachricht an den Client.

Weitere Services sind in Planung. Mittelfristig soll die Webanwendung die bisherige Janus/SAP-Anwendung ablösen.


[Index] [nächste Seite]