Escalabilidade e performance
Suportando arquitecturas em cluster, O XSITE - Content Management Server está habilitado a responder a situações exigentes de tráfego, bastando adicionar capacidade de processamento, através do aumento do número de nodes do cluster, permitindo ao mesmo tempo obter desempenhos superiores e providenciar mecanismos de failover, assegurando elevados valores de uptime.
Tecnologia
O XSITE - Content Management Server disponibiliza as seguintes funcionalidades, como parte integrante da sua configuração base:
- Enterprise application server: EJBs;
- Web application server (Tomcat): JSP's e Servlets;
- Webservices: Através de AXIS do Apache Jakarta;
- Escalabilidade: pooling, caching e storage optimization;
- Suporte para Messaging distribuído;
- Distributed cache;
- Distributed configuration;
- Single Sign-on;
- Autenticação LDAP;
- Load balancing;
- Elevada disponibilidade através de mecanismos de failover ao nível aplicacional;
- Ferramentas colaborativas sobre Macromedia Flash, sem requisitos de plug-ins adicionais.
Arquitectura do Application Server
Tendo uma estrutura típica de J2EE Application Server, o XSITE segue o padrão da plataforma J2EE para aplicações distribuídas. Esta arquitectura permite criar um padrão para componentes de aplicações que podem ser distribuídas e reutilizadas.
A utilização de um framework com estas características proporciona significativos benefícios para desenvolvimento de aplicações, nomeadamente:
- Reutilização de código;
- Simplificação do processo de desenvolvimento;
- Manutenção mais rápida devido à divisão do código em pequenas unidades;
- Melhor performance através de balanceamento de carga e distribuição de componentes;
- Maior escalabilidade de aplicações.
- A utilização desta tecnologia proporciona ainda um importante conceito de portabilidade. Todo o core do XSITE é possível de ser executado em qualquer plataforma independentemente do sistema operativo.
Load Balancing
Um sistema de balanceamento de carga é indispensável a uma arquitectura composta por um conjunto de servidores que disponibilizam um mesmo serviço. O objectivo directo na utilização de sistemas Load Balancing está ligado ao facto de distribuir a carga de processamento por um conjunto de sistemas semelhantes, possibilitando uma resposta mais eficiente, traduzida num número mais elevado de pedidos atendidos por unidade de tempo.
A distribuição de carga por entre os vários nodes poderá ser feita através da análise do tráfego em cada node (funcionamento típico de um TCP/IP Load Balancing System). Neste cenário, o node seleccionado será aquele que apresente menos tráfego no seu interface de rede associado ao cluster.
De forma a permitir o conceito de "sessão" na implementação da solução, a configuração do Load balancing deve assegurar a afinidade de IP's, permitindo que um determinado utilizador se mantenha no node inicial até finalizar a sua sessão.
Sistema de Cache distribuída
O XSITE permite atribuir e gerir elementos individuais de uma página em cache, isto é, permite que numa mesma página, diversas áreas estejam em cache, e outras sejam processadas em cada pedido. Esta medida torna flexível o conceito de template, permitindo que uma mesma template possa ser reutilizada para apresentar vários tipos de conteúdos, assim como permite que informação frequentemente acedida em todas as templates possa estar em cache sem que isso afecte as restantes áreas da página.
Cada template é composta por um conjunto de agentes responsáveis pelo tratamento individual de determinadas áreas do portal. Estes agentes podem ser marcados como "cacheable", ao qual se atribui um tempo máximo em cache, findo o qual será refrescado automaticamente.
Sistema de Configurações cetralizadas
De forma semelhante ao que acontece com a cache dos agentes, o XSITE dispõe de um sistema de gestão centralizada de configurações.
No XSITE, todas as configurações de sistema estão centralizadas num formato proprietário, acedido através de uma API, no qual estão guardadas todas as configurações e parâmetros do sistema, num formato hierárquico de dependências pai-filho (registry).
Gateway de interoperabilidade com providers
Por forma a dar resposta às necessidades, cada vez mais frequentes, de integração com fontes externas de dados ou sistemas aplicacionais externos, o XSITE permite a utilização de uma porta de comunicações com o exterior, possibilitando uma fácil e escalável solução para integração com esses sistemas.
O funcionamento sob a forma de plug-ins torna esta gateway numa ferramenta modular, general purpose, com suporte para funcionamento em cluster, dando respostas às mais exigentes necessidades de integração.
Cada plug-in é uma JAVA CLASS, registada no sistema de registry do XSITE, onde estão armazenadas todas as configurações de registo dessa classe, assim como parâmetros que ela possa utilizar. Como o registry disponibiliza uma API pública, é sempre possível o acesso às configurações do sistema dentro de qualquer plug-in.
O desenvolvimento destes plug-ins é completamente livre, possibilitando as mais variadas funcionalidades. Como suporte base, o XSITE fornece aos plug-ins da gateway a sua API de conectividade com o SGBD, assim como acesso a todo o XSITE CMS Framework.
Watchdog
O serviço de watchdog vem adicionar mecanismos de tolerância a falhas no sistema, monitorizando os application servers por forma a verificar todos os recursos e comunicações, assegurando o correcto funcionamento do sistema.
A monitorização é feita através de mecanismos de Heart-Beat que consistem numa verificação periódica do estado de saúde do sistema, agindo segundo um plano de acção configurado, em caso de falha.
No caso de se verificar alguma falha no sistema, o serviço de watchdog tenta efectuar a sua recuperação, especificando um time-out para a execução deste procedimento, findo o qual, é lançado um alerta sobre um possível "hang" do plano de recuperação.
O serviço é persistente nas suas tentativas, tentando durante 5 ciclos efectuar a recuperação dos serviços. Ao fim destas tentativas, o serviço de watchdog emite um alerta indicando que irá entrar em "Silent mode", deixando de emitir as mensagens de falha de serviço, passando apenas a reportar as tentativas de startup.
No caso de sistemas em cluster, quando o serviço de watchdog detecta a ocorrência de um erro num dos nodes do cluster, através do plano de acção, é possível remover temporariamente esse node do cluster, procedendo à notificação dos administradores do erro obtido, e recuperando o normal funcionamento desse node.
Se a recuperação tiver sido eficiente, o watchdog devolve esse node de volta ao cluster, estando novamente apto a receber pedidos.
O sistema de notificações suporta envio de mensagens SMS e e-mail.
Em resumo, em ambientes em cluster, a utilização do watchdog possibilita mecanismos de failover ao nível do serviço, assim como elimina possíveis single point of failure, através da gestão individual dos nodes dentro do cluster.