WebSphere eXtreme Scale incluye interfaces de programación de aplicaciones (API) e interfaces de programación del sistema para incorporar servidores y clientes de eXtreme Scale a sus aplicaciones Java existentes. El tema siguiente describe las API de servidor incorporado disponibles.
Puede utilizar diversas propiedades para configurar la instancia del servidor eXtreme Scale, que puede recuperar del método ServerFactory.getServerProperties. El objeto ServerProperties es un singleton, de modo que cada llamada al método getServerProperties recupera la misma instancia.
Puede crear un servidor nuevo con el código siguiente.
Server server = ServerFactory.getInstance();
Todas las propiedades definidas antes de la primera invocación de getInstance se utilizan para inicializar el servidor.
Puede establecer las propiedades de servidor hasta que se llame a ServerFactory.getInstance por primera vez. La primera llamada del método getInstance crea una instancia del servidor eXtreme Scale y lee todas las propiedades configuradas. Establecer las propiedades después de la creación no tiene ningún efecto. El ejemplo siguiente muestra cómo definir propiedades antes de crear una instancia de Server.
// Obtener las propiedades de servidor asociadas con este proceso.
ServerProperties serverProperties = ServerFactory.getServerProperties();
// Establecer el nombre del servidor para este proceso.
serverProperties.setServerName("EmbeddedServerA");
// Establecer el nombre de la zona donde está contenido este proceso.
serverProperties.setZoneName("EmbeddedZone1");
// Establecer la información de punto final necesaria para crear una rutina de
carga para el servicio de catálogo.
serverProperties.setCatalogServiceBootstrap("localhost:2809");
// Establecer el nombre de host de escucha ORB que se va a utilizar en los enlaces.
serverProperties.setListenerHost("host.local.domain");
// Establecer el puerto de escucha ORB que se va a utilizar en los enlaces.
serverProperties.setListenerPort(9010);
// Desactivar todos los MBeans de este proceso.
serverProperties.setMBeansEnabled(false);
Server server = ServerFactory.getInstance();
CatalogServerProperties catalogServerProperties =
ServerFactory.getCatalogProperties();
catalogServerProperties.setCatalogServer(true);
Server server = ServerFactory.getInstance();
Emita el método Server.createContainer de cualquier JVM para albergar varios contenedores de eXtreme Scale. El código siguiente muestra cómo crear la instancia de un contenedor de 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);
Puede iniciar todos los servicios de forma conjunta, que es práctico para el desarrollo y, también, práctico para la producción. Al iniciar los servicios de forma conjunta, un único proceso realiza todo lo siguiente: inicia el servicio de catálogo, inicia un conjunto de contenedores y ejecutar la lógica de conexión de cliente. Iniciar los servidores de esta forma clasifica los problemas de programación antes del despliegue en un entorno distribuido. El código siguiente muestra como crear la instancia de un servidor eXtreme Scale autónomo:
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 configuración de eXtreme Scale se realiza automáticamente al instalar eXtreme Scale en un entorno de WebSphere Application Server. No es necesario establecer ninguna propiedad antes de acceder al servidor para crear un contenedor. El código siguiente muestra cómo crear instancias de un servidor eXtreme Scale en 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);