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.
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.
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();
CatalogServerProperties catalogServerProperties =
ServerFactory.getCatalogProperties();
catalogServerProperties.setCatalogServer(true);
Server server = ServerFactory.getInstance();
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);
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);
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);