Um plug-in do
WebSphere eXtreme
Scale
é um componente que fornece um certo tipo de função para os
componentes conectáveis que incluem ObjectGrid e BackingMap. O WebSphere eXtreme
Scale fornece vários pontos de conexão para permitir que os aplicativos e provedores de cache se integrem com vários armazéns de dados, APIs de cliente alternativo e para melhorar o desempenho geral do cache. O produto é fornecido com vários plug-ins padrão pré-construídos, mas também é possível criar plug-ins customizados com o aplicativo.
Todos os plug-ins são classes concretas que implementam uma ou mais interfaces do plug-in eXtreme Scale. Tais classes são divididas em instâncias e chamadas pelo ObjectGrid nos momentos apropriados. O ObjectGrid e os BackingMaps permitem que plug-ins customizados sejam registrados.
Plug-ins do ObjectGrid
Os seguintes plug-ins estão disponíveis para uma instância do ObjectGrid. Se o plug-in for apenas do lado do servidor, os plug-ins serão removidas nas instâncias ObjectGrid e BackingMap do cliente. As instâncias do ObjectGrid e BackingMap são apenas do lado do servidor.
- TransactionCallback: Um plug-in TransactionCallback fornece eventos do ciclo de
vida de transação. Se o plug-in TransactionCallback for a implementação de classe JPATxCallback integrada (com.ibm.websphere.objectgrid.jpa.JPATxCallback), o plug-in será apenas do lado do servidor. Entretanto, as subclasses da
classe JPATxCallback não são apenas do lado do servidor.
- ObjectGridEventListener: Um plug-in ObjectGridEventListener
fornece eventos de ciclo de vida ObjectGrid para o ObjectGrid, shards
e transações.
- ObjectGridLifecycleListener: Um plug-in ObjectGridLifecycleListener fornece eventos de ciclo de vida ObjectGrid para a instância do ObjectGrid.
O plug-in ObjectGridLifecycleListener pode ser usado como uma interface combinada opcional para todos os outros plug-ins do ObjectGrid.
- ObjectGridPlugin: Um ObjectGridPlugin é uma interface combinada opcional que fornece eventos de gerenciamento de ciclo de vida estendida para todos os outros plug-ins do ObjectGrid.
- SubjectSource, ObjectGridAuthorization, SubjectValidation:
eXtreme Scale
fornece vários terminais de segurança para permitir que mecanismos de
autenticação customizados sejam integrados ao
eXtreme Scale.
(Apenas do lado do servidor)
Requisitos Comuns do Plug-in do ObjectGrid
O
ObjectGrid instancia e inicializa as instâncias de plug-in usando as convenções JavaBeans. Todas as implementações do plug-in apresentam os seguintes requisitos:
- A classe de plug-in deve ser uma classe pública de alto nível
- Ela deve apresentar um construtor público, sem argumentos.
- A classe de plug-in deve estar disponível no caminho de classe dos servidores e clientes (como apropriado).
- Os atributos devem ser definidos utilizando os métodos de propriedade de estilo do JavaBeans.
- Os plug-ins, exceto quando indicado de outra forma, são registrados antes da inicialização do ObjectGrid e não podem ser alterados depois de tal inicialização.
Plug-ins do BackingMap
Os seguintes plug-ins estão disponíveis para um BackingMap:
- Evictor - Um plug-in evictor é um mecanismo padrão fornecido para descartar entradas de cache e um plug-in para criar evictors customizados.
ObjectTransformer: Um plug-in ObjectTransformer permite serializar,
desserializar e copiar objetos no cache. A interface ObjectTransformer foi substituída pelos plug-ins DataSerializer, que podem ser usados para armazenar dados arbitrários com eficiência no WebSphere eXtreme
Scale para que as APIs do produto existentes possam interagir eficientemente com seus dados.
OptimisticCallback - Utilize o plug-in OptimisticCallback para
customizar as operações de versão e comparação dos objetos de cache
ao utilizar a estratégia de bloqueio otimista. O plug-in OptimisticCallback foi substituído pela interface
ValueDataSerializer.Versionable,
que pode ser implementada quando o plug-in DataSerializer for usado com
o modo de cópia COPY_TO_BYTES ou quando for usada a anotação @Version
com a API do EntityManager.
- MapEventListener - Um plug-in MapEventListener fornece notificações de retorno de
chamada e alterações de estado de cache significativas que ocorrem para um BackingMap.
- BackingMapLifecycleListener: Um plug-in BackingMapLifecycleListener fornece eventos de ciclo de vida BackingMap para a instância do BackingMap.
O plug-in BackingMapLifecycleListener pode ser usado como uma interface combinada opcional para todos os outros plug-ins do BackingMap.
- BackingMapPlugin: Um BackingMapPlugin é uma interface combinada opcional que fornece eventos de gerenciamento de ciclo de vida estendida para todos os outros plug-ins do BackingMap.
- Indexação - Use o recurso de indexação, que é representado pelo plug-in MapIndexplug-in, para construir um ou mais índices em um mapa BackingMap para suportar acesso a dados sem chave.
- Loader: Um plug-in Loader em um mapa ObjectGrid atua como um cache de memória
para os dados que são normalmente mantidos em um armazenamento persistente
no mesmo sistema ou em outro sistema diferente. (Apenas do lado do servidor)
- MapSerializerPlugin: Um MapSerializerPlugin permite que você
serialize e aumente os objetos Java e os dados não Java no cache.
Ele é usado com as interfaces combinadas DataSerializer, permitindo opções
robustas e flexíveis para aplicativos de alto desempenho.