Integrierte Server-API

WebSphere eXtreme Scale enthält Anwendungsprogrammierschnittstellen (APIs) und Systemprogrammierschnittstellen für die Integration von eXtreme-Scale-Servern und -Clients in vorhandenen Java-Anwendungen. Im folgenden Abschnitt werden die verfügbaren integrierten Server-APIs beschrieben.

eXtreme-Scale-Server instanziieren

Sie können verschiedene Eigenschaften verwenden, um die eXtreme-Scale-Serverinstanz zu konfigurieren, die Sie mit der Methode "ServerFactory.getServerProperties" abrufen können. Das ServerProperties-Objekt ist das Singleton, und deshalb ruft jeder Aufruf der Methode "getServerProperties" dieselbe Instanz ab.

Sie können einen neuen Server mit dem folgenden Code erstellen.

Server server = ServerFactory.getInstance();

Alle Eigenschaften, die vor ersten Aufruf von "getInstance" gesetzt werden, werden zum Initialisieren des Servers verwendet.

Servereigenschaften abrufen

Sie können die Servereigenschaften festlegen, bis die Methode "ServerFactory.getInstance" zum ersten Mal aufgerufen wird. Der erste Aufruf der Methode "getInstance" instanziiert den eXtreme-Scale-Server und liest alle konfigurierten Eigenschaften. Das Festlegen von Eigenschaften nach der Erstellung der Instanz hat keine Auswirkung. Das folgende Beispiel zeigt, wie Eigenschaften vor der Instanziierung einer Server-Instanz definiert werden.

// Servereigenschaften abrufen, die diesem Prozess zugeordnet sind.
ServerProperties serverProperties = ServerFactory.getServerProperties();

// Servernamen für diesen Prozess festlegen.
serverProperties.setServerName("EmbeddedServerA");

// Namen der Zone festlegen, in der sich dieser Prozess befindet.
serverProperties.setZoneName("EmbeddedZone1");

// Erforderliche Endpunktinformationen zum Booten des Katalogservice festlegen.
serverProperties.setCatalogServiceBootstrap("localhost:2809");

// Hostnamen des ORB-Listeners festlegen, zu dem die Bindung hergestellt werden soll.
serverProperties.setListenerHost("host.local.domain");

// ORB-Listener-Port festlegen, zu dem die Bindung hergestellt werden soll.
serverProperties.setListenerPort(9010);

// Alle MBeans für diesen Prozess inaktivieren.
serverProperties.setMBeansEnabled(false);

Server server = ServerFactory.getInstance();

Integrierter Katalogservice

Jede JVM, die von der Methode "CatalogServerProperties.setCatalogServer" markiert wird, kann den Katalogservice für eXtreme Scale ausführen. Diese Methode weist die Laufzeitumgebung des eXtreme-Scale-Servers an, den Katalogservice zu instanziieren, wenn der Server gestartet wird. Der folgende Code veranschaulicht, wie der Katalogserver von eXtreme Scale instanziiert wird:
CatalogServerProperties catalogServerProperties = 
	ServerFactory.getCatalogProperties();
catalogServerProperties.setCatalogServer(true);

Server server = ServerFactory.getInstance();

eXtreme-Scale-Container integrieren

Setzen Sie die Methode "Server.createContainer" für jede JVM ab, die mehrere eXtreme-Scale-Container ausführen soll. Der folgende Code veranschaulicht, wie ein eXtreme-Scale-Container instanziiert wird:

Server server = ServerFactory.getInstance();
DeploymentPolicy policy = DeploymentPolicyFactory.createDeploymentPolicy(
    new File("META-INF/embeddedDeploymentPolicy.xml").toURI().toURL(),
    new File("META-INF/embeddedObjectGrid.xml").toURI().toURL());
Container container = server.createContainer(policy);

Eigenständiger Serverprozess

Sie können alle Services gemeinsam starten, was für die Entwicklung hilfreich und auch in einer Produktionsumgebung praktisch ist. Wenn die Services gemeinsam gestartet werden, führt ein einziger Prozess alle folgenden Aufgaben aus: Er startet den Katalogservice, er startet eine Gruppe von Containern und er führt die Clientverbindungslogik aus. Mit dieser Art des Servicestarts können Programmierungsprobleme festgestellt werden, bevor die Services in einer verteilten Umgebung implementiert werden. Der folgende Code veranschaulicht, wie ein eigenständiger eXtreme-Scale-Server instanziiert wird:

CatalogServerProperties catalogServerProperties = 
	ServerFactory.getCatalogProperties();
catalogServerProperties.setCatalogServer(true);

Server server = ServerFactory.getInstance();
DeploymentPolicy policy = DeploymentPolicyFactory.createDeploymentPolicy(
    new File("META-INF/embeddedDeploymentPolicy.xml").toURI().toURL(),
    new File("META-INF/embeddedObjectGrid.xml").toURI().toURL());
Container container = server.createContainer(policy);

eXtreme Scale in WebSphere Application Server integrieren

Die Konfiguration für eXtreme Scale wird automatisch vorgenommen, wenn Sie eXtreme Scale in einer Umgebung mit WebSphere Application Server installieren. Sie müssen keine Eigenschaften festlegen, bevor Sie auf den Server zugreifen, um einen Container zu erstellen. Der folgende Code veranschaulicht, wie Sie einen eXtreme-Scale-Server in WebSphere Application Server instanziieren:

Server server = ServerFactory.getInstance();
DeploymentPolicy policy = DeploymentPolicyFactory.createDeploymentPolicy(
    new File("META-INF/embeddedDeploymentPolicy.xml").toURI().toURL(),
    new File("META-INF/embeddedObjectGrid.xml").toURI().toURL);
Container container = server.createContainer(policy);
Ein schrittweises Beispiel für das Starten eines integrierten Katalogservice und -containers über das Programm finden Sie unter Integrierte Server-API zum Starten und Stoppen von Servern verwenden.