API de serveurs intégrés

WebSphere eXtreme Scale comprend des interfaces de programmes d'application (API) et des interfaces de programmation de système permettant d'intégrer des serveurs et des clients eXtreme Scale dans vos applications Java existantes. Nous allons décrire ces API de serveurs intégrés.

Instanciation du serveur eXtreme Scale

Plusieurs propriétés permettent de configurer l'instance du serveur eXtreme Scale, qu'il est possible d'extraire de la méthode ServerFactory.getServerProperties. L'objet ServerProperties étant un singleton, chaque appel à la méthode getServerProperties extrait la même instance.

Le code suivant permet de créer un serveur :

Server server = ServerFactory.getInstance();

Toutes les propriétés définies avant la première invocation de getInstance sont utilisées pour initialiser le serveur.

Définir les propriétés du serveur

Vous pouvez définir les propriétés du serveur jusqu'au premier appel à la méthode ServerFactory.getInstance. Ce premier appel instancie le serveur eXtreme Scale et lit toutes les propriétés configurées. Les propriétés définies après la création n'ont aucun effet. L'exemple qui suit montre comment définir les propriétés avant d'instancier une instance Server.

// L'on obtient les propriétés du serveur associées à ce processus.
ServerProperties serverProperties = ServerFactory.getServerProperties();

// L'on définit le nom du serveur pour ce processus.
serverProperties.setServerName("EmbeddedServerA");

// L'on définit le nom de la zone dans laquelle est contenu ce processus.
serverProperties.setZoneName("EmbeddedZone1");

// L'on définit les informations de point de contact requises pour l'amorçage du service de catalogue.
serverProperties.setCatalogServiceBootstrap("localhost:2809");

// L'on définit le nom de l'hôte d'écoute de l'ORB à utiliser pour la liaison.
serverProperties.setListenerHost("host.local.domain");

// L'on définit le port d'écoute de l'ORB à utiliser pour la liaison.
serverProperties.setListenerPort(9010);

// L'on désactive tous les beans gérés pour ce processus.
serverProperties.setMBeansEnabled(false);

Server server = ServerFactory.getInstance();

Incorporer le service de catalogue

Tout paramètre JVM marqué par la méthode CatalogServerProperties.setCatalogServer peut héberger le service de catalogue d'eXtreme Scale. Cette méthode demande à l'environnement d'exécution du serveur eXtreme Scale d'instancier le service de catalogue lors du démarrage du serveur. Le code qui suit montre comment instancier le serveur de catalogue eXtreme Scale :
CatalogServerProperties catalogServerProperties = 
	ServerFactory.getCatalogProperties();
catalogServerProperties.setCatalogServer(true);

Server server = ServerFactory.getInstance();

Incorporer le conteneur eXtreme Scale

La méthode Server.createContainer permet à n'importe quelle machine virtuelle Java d'héberger plusieurs conteneurs eXtreme Scale. Le code qui suit montre comment instancier un conteneur eXtreme Scale :

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);

Processus serveur autonome

Vous pouvez démarrer ensemble tous les services, ce qui est utilise aussi bien en phase de développement qu'en production. En démarrant les services ensemble, le même processus se charge de toutes les tâches suivantes : démarrage du service de catalogue, démarrage d'un ensemble de conteneurs, exécution de la logique de connexion client. Démarrer les services de cette manière résout les problèmes de programmation antérieurs au déploiement dans un environnement réparti. Le code qui suit montre comment instancier un serveur eXtreme Scale autonome :

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);

Intégrer eXtreme Scale dans WebSphere Application Server

La configuration eXtreme Scale est définie automatiquement lorsque vous installez eXtreme Scale dans un environnement WebSphere Application Server. Vous n'êtes pas obligé de définir des propriétés avant d'accéder au serveur pour créer un conteneur. Le code qui suit montre comment instancier un serveur eXtreme Scale dans WebSphere Application Server :

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);
Utilisation de l'API de serveur embarqué pour démarrer et arrêter les serveurs contient un exemple expliquant pas à pas comment démarrer par programmation un service de catalogue et un conteneur intégrés.