< Anterior | Próximo >

Lição 1.2: Entender os Arquivos de Configuração do OSGi

A amostra OSGi inclui arquivos de configuração usados para iniciar e configurar a grade e o servidor do WebSphere eXtreme Scale.

Arquivos de Configuração OSGi

Nesta lição, você explorará os arquivos de configuração a seguir que estão incluídos na amostra OSGI:
  • collocated.server.properties
  • protoBufObjectGrid.xml
  • protoBufDeployment.xml
  • blueprint.xml

collocated.server.properties

Uma configuração do servidor é necessária para iniciar um servidor. Quando o pacote configurável do servidor eXtreme Scale é iniciado, ele não inicia um servidor. Ele aguarda o PID de configuração, com.ibm.websphere.xs.server, ser criado com um arquivo de propriedades do servidor. Esse arquivo de propriedades do servidor especifica o nome do servidor, o número da porta e outras propriedades do servidor.

Na maioria dos casos, uma configuração é criada para configurar o arquivo de propriedades do servidor. Raramente, você pode querer apenas iniciar um servidor com cada propriedade configurada para um valor padrão. Nesse caso, é possível criar uma configuração denominada com.ibm.websphere.xs.server com o valor configurado para padrão.

Para obter mais detalhes sobre o arquivo de propriedades de servidor, consulte o tópico Arquivo de Propriedades do Servidor.

O arquivo de propriedades do servidor de amostra OSGi inicia um catálogo único. Esse arquivo de propriedades de amostra inicia um serviço de catálogo e um servidor de contêiner únicos no processo da estrutura do OSGi. Os clientes do eXtreme Scale se conectam à porta 2809 e os clientes do JMX se conectam à porta 1099. O conteúdo do arquivo de propriedades do servidor de amostra é:
serverName=collocatedServer
isCatalog=true
catalogClusterEndPoints=collocatedServer:localhost:6601:6602
traceSpec=ObjectGridOSGi=all=enabled
traceFile=logs/trace.log
listenerPort=2809
JMXServicePort=1099

protoBufObjectGrid.xml

O arquivo XML do descritor do ObjectGrid protoBufObjectGrid.xml de amostra contém o conteúdo a seguir, com comentários removidos.
<objectGridConfig 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
    xmlns="http://ibm.com/ws/objectgrid/config">

    <objectGrids>
        <objectGrid name="Grid" txTimeout="15">

            <bean id="ObjectGridEventListener"
                osgiService="myShardListener"/>

            <backingMap name="Map" readOnly="false"
                lockStrategy="PESSIMISTIC" lockTimeout="5" 
                copyMode="COPY_TO_BYTES"
                pluginCollectionRef="serializer"/>
                
        </objectGrid>
    </objectGrids>

    <backingMapPluginCollections>
        <backingMapPluginCollection id="serializer">
            <bean id="MapSerializerPlugin"
                osgiService="myProtoBufSerializer"/>"/>
        </backingMapPluginCollection>
    </backingMapPluginCollections>
	</objectGridConfig>
Há dois plug-ins configurados neste arquivo XML do descritor do ObjectGrid:
ObjectGridEventListener
O plug-in de nível de shard. Para cada instância do ObjectGrid, há uma instância de ObjectGridEventListener. Ela é configurada para usar o myShardListener de serviço do OSGi. Isso significa que quando a grade é criada, o plug-in ObjectGridEventListener usa o serviço OSGi myShardListener com a classificação deserviço mais alta disponível.
MapSerializerPlugin
O plug-in de nível de mapa. Para o mapa de apoio denominado Map, há um plug-in MapSerializerPlugin configurado. Ele é configurado para usar o serviço OSGimyProtoBufSerializer. Isso significa que quando o mapa é criado, o plug-in MapSerializerPlugin usa o serviço myProtoBufSerializer com a maior classificação de serviço obtida disponível.

protoBufDeployment.xml

O arquivo XML do descritor de implementação descreve a política de implementação para a grade denominada Grid, que usa cinco partições. Consulte o exemplo de código a seguir do arquivo XML:
<deploymentPolicy 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
	xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">

  <objectgridDeployment objectgridName="Grid">
    <mapSet name="MapSet" numberOfPartitions="5">
      <map ref="Map"/>
    </mapSet>
  </objectgridDeployment>
</deploymentPolicy>

blueprint.xml

Como alternativa para o uso do arquivo collocated.server.properties em conjunto com o PID de configuração, com.ibm.websphere.xs.server, o XML do ObjectGrid e os arquivos XML de implementação podem ser incluídos em um pacote configurável OSGi, juntamente com um arquivo XML Blueprint, conforme mostrado no exemplo a seguir :
<blueprint 
	  xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:objectgrid="http://www.ibm.com/schema/objectgrid"
       default-activation="lazy">
    
    <objectgrid:server id="server" isCatalog="true"
                name="server"
                tracespec="ObjectGridOSGi=all=enabled"
                tracefile="C:/Temp/logs/trace.log"
                workingDirectory="C:/Temp/working"
                jmxport="1099">
        <objectgrid:catalog host="localhost" port="2809"/>
    </objectgrid:server>
  
    <objectgrid:container id="container" 
	 objectgridxml="/META-INF/objectgrid.xml" 
       deploymentxml="/META-INF/deployment.xml" 
	 server="server"/>
</blueprint>

Ponto de verificação de lições

Nesta lição, você aprendeu sobre os arquivos de configuração que são usados na amostra OSGi. Agora, quando iniciar e configurar a grade e o servidor eXtreme Scale, você entenderá quais arquivos estão sendo usados nestes processos e como esses arquivos interagem com seus plug-ins na estrutura do OSGi.

< Anterior | Próximo >