É 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.