Visão Geral da Programação do Serialziador

É possível usar os plug-ins do DataSerializer para gravar serializadores otimizados para armazenar objetos Java e outros dados no formato binário na grade. O plug-in também fornece métodos que você pode usar para atributos de consulta dentro dos dados binários sem exigir que o objeto de dados inteiro seja expandido.

Os plug-ins DataSerializer incluem três plug-ins principais e várias interfaces combinadas opcionais. O plug-in MapSerializerPlugin inclui metadados sobre o relacionamento entre um mapa e outros mapas. Ele também inclui uma referência a um KeySerializerPlugin e um ValueSerializerPlugin. Os plug-ins do serializador de chave e valor incluem metadados e código de serialização responsável pela interação com os respectivos dados de chave e valor para um mapa. Um plug-in MapSerializerPlugin deve incluir um ou ambos os serializadores de chave e valor.

O plug-in KeySerializerPlugin fornece métodos e metadados para serializar, aumentar e examinar as chaves. O plug-in ValueSerializer fornece métodos e metadados para serializar, aumentar e examinar valores. Ambas as interfaces possuem requisitos diferentes. Para obter detalhes sobre quais métodos estão disponíveis nos plug-inss DataSerializer, consulte a documentação da API para o pacote com.ibm.websphere.objectgrid.plugins.io.

Plug-in MapSerializerPlugin
O MapSerializerPlugin é o ponto de plug-in principal para a interface BackingMap e inclui dois plug-ins aninhados: os plug-ins KeySerializerPlugin e ValueSerializerPlugin. Como o eXtreme Scale não suporta plug-ins aninhados ou conectados, o plug-in BasicMapSerializerPlugin acessa estes plug-ins aninhados artificialmente. Quando você usa esses plug-ins com a estrutura do OSGi, o único proxy é o plug-in MapSerializerPlugin. Todos os plug-ins aninhados não devem ser armazenados em cache em outros plug-ins dependentes, como os carregadores, a menos que esses plug-ins também atendam aos eventos do ciclo de vida do BackingMap. Isto é importante ao executar em uma estrutura do OSGi, porque as referências com esses plug-ins podem continuar sendo atualizadas.
Plug-in KeySerializerPlugin
O plug-in KeySerializerPlugin estende a interface DataSerializer e inclui outras interfaces e metadados combinados que descrevem a chave. Use este plug-in para serializar e aumentar os objetos de dados e atributos de chave.
Plug-in ValueSerializerPlugin
O plug-in ValueSerializerPlugin estende a interface DataSerializer, porém não expõe nenhum método adicional. Use este plug-in para serializar e aumentar objetos de dados e atributos de valor.

Interfaces Opcionais e Combinadas

As interfaces opcionais e combinadas fornecem capacidades adicionais, como:
Versão otimista
A interface Provida de Versões permite que o plug-in ValueSerializerPlugin manipule a verificação de versão e as atualizações de versão ao usar bloqueio otimista. Se a Versão não estiver implementada e o bloqueio otimista estiver ativado, a versão será o formulário serializado inteiro do valor de objeto de dados.
Roteamento não baseado em hashCode
A interface Particionável permite que as implementações de KeySerializerPlugin roteiem solicitações para partições explícitas. Isso é equivalente à interface PartitionableKey, quando usado com a API do ObjectMap sem KeySerializerPlugin. Sem esse recurso, a chave é roteada para a partição com base no hashCode resultante.
Interface UserReadable (toString)
A interface UserReadable (toString) permite que todas as implementações de DataSerializer forneçam um método alternativa para exibir dados em arquivos de log e depuradores. Com esse recurso, é possível ocultar dados sensíveis, como senhas. Se implementações de DataSerializer não implementarem esta interface, o ambiente de tempo de execução poderá chamar toString() diretamente no objeto ou incluir representações alternativas, se apropriado.
Suporte à evolução
A interface Mesclável pode ser implementada em implementações de plug-in ValueSerializerPlugin para permitir a interoperabilidade entre diversas versões de objetos quando houver versões diferentes do DataSerializer atualizando dados na grade durante seu tempo de vida. Os métodos Mergeable permitem que o plug-in DataSerializer retenha quaisquer dados que ele não possa entender de outra forma.