O WebSphere eXtreme Scale inclui interfaces de programação de aplicativos (APIs) e interfaces de programação do sistema para integrar clientes e servidores eXtreme Scale dentro de seus aplicativos Java existentes. O tópico a seguir descreve as APIs de servidor integradas disponíveis.
É possível utilizar várias propriedades para configurar a instância do servidor eXtreme Scale, que pode ser recuperada do método ServerFactory.getServerProperties. O objeto ServerProperties é um singleton, portanto, cada chamada para o método getServerProperties recupera a mesma instância.
É possível criar um novo servidor com o seguinte código.
Server server = ServerFactory.getInstance();
Todas as propriedades configuradas antes da primeira chamada de getInstance são utilizadas para inicializar o servidor.
É possível configurar as propriedades do servidor até que ServerFactory.getInstance seja chamado pela primeira vez. A primeira chamada do método getInstance instancia o servidor eXtreme Scale e lê todas as propriedades configuradas. Configurar as propriedades após a criação não tem efeito. O exemplo a seguir mostra como configurar propriedades antes de criar uma instância do Servidor.
// Get the server properties associated with this process.
ServerProperties serverProperties = ServerFactory.getServerProperties();
// Set the server name for this process.
serverProperties.setServerName("EmbeddedServerA");
// Set the name of the zone this process is contained in.
serverProperties.setZoneName("EmbeddedZone1");
// Set the end point information required to bootstrap to the catalog service.
serverProperties.setCatalogServiceBootstrap("localhost:2809");
// Set the ORB listener host name to use to bind to.
serverProperties.setListenerHost("host.local.domain");
// Set the ORB listener port to use to bind to.
serverProperties.setListenerPort(9010);
// Turn off all MBeans for this process.
serverProperties.setMBeansEnabled(false);
Server server = ServerFactory.getInstance();
CatalogServerProperties catalogServerProperties =
ServerFactory.getCatalogProperties();
catalogServerProperties.setCatalogServer(true);
Server server = ServerFactory.getInstance();
Emita o método Server.createContainer para qualquer JVM para hospedar vários contêineres do eXtreme Scale. O código a seguir mostra como instanciar um contêiner do 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);
Você pode iniciar todos os serviços juntos, o que é útil para o desenvolvimento e também prático na produção. Ao iniciar os serviços juntos, um único processo faz todo o seguinte: inicia o serviço de catálogo, inicia um conjunto de contêineres e executa a lógica de conexão do cliente. A inicialização dos serviços desta forma classifica os problemas de programação antes da implementação em um ambiente distribuído. O código a seguir mostra como instanciar um servidor eXtreme Scale autocontido:
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);
A configuração para o eXtreme Scale é definida automaticamente quando o eXtreme Scale é instalado em um ambiente do WebSphere Application Server. Você não precisa configurar quaisquer propriedades antes de acessar o servidor para criar um contêiner. O código a seguir mostra como instanciar um servidor do eXtreme Scale no 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);