Neste tutorial, você aprenderá sobre os conceitos principais do modelo de programação do monitor, incluindo seus elementos de programação principais e suas semânticas. O conceito mais fundamental do modelo de programação do monitor são os modelos do monitor.
Um modelo do monitor é a especificação de como você monitora uma entidade observável, como uma atividade de negócios. Os modelos do monitor definem que tipo de informações você recebe dessa entidade e como é possível processar essas informações para determinar as características do desempenho dessa entidade. Essas entidades podem ser tangíveis (servidores, ATMs) ou abstratas (status do projeto, desempenho de vendas).
Os modelos do monitor são baseados em um modelo de programação designado para monitoramento de negócios. O monitoramento de negócios concentra-se em coletar estatísticas relacionadas a negócios, como as vendas mensais por região ou a porcentagem de remessas retornadas por categoria de produto. O monitoramento de negócios difere do monitoramento de TI porque o monitoramento de TI concentra-se em coletar estatísticas, como o rendimento máximo de processamento da transação de um determinado servidor e da pilha de software ou do tempo médio de resposta de um serviço da Web. O WebSphere Business Monitor não se destina ao monitoramento de TI e, portanto, é a amostra neste tutorial.
A amostra utilizada nesse tutorial acompanha a vida de uma empresa de limousines. Suponha que você deseje monitorar as atividades de viagens de sua frota de limousines, mas faz isso somente no papel. Ao despachar a limusine, você tem que preparar uma planilha com o número da placa do carro, o nome do motorista, o nome do passageiro, os endereços de partida e de destino, a hora da saída organizada e a hora da chegada planejada. Quando um motorista entra em contato com você para informar sobre uma alteração, é necessário atualizar sua planilha. O motorista também pode fornecer informações em tempo real, como os horários de chegada e de partida, o status e a duração da viagem reais. É difícil controlar essas informações em uma planilha. Como você está administrando uma Empresa de Limousines, tem vários motoristas e vários carros. Isso significa que você deve coordenar todas essas informações de entrada através de várias planilhas.
Para aprimorar a eficiência de seus negócios, é necessário coletar estatísticas e analisar essas planilhas regularmente. Por exemplo, você pode desejar calcular a média da distância da viagem de uma limusine semanalmente para que possa prever as despesas com gasolina e determinar se é necessário ajustar as taxas. Adicionalmente, você pode desejar calcular quanto tempo, em média, seus carros ficam inativos no estacionamento ou quais motoristas são os mais pontuais ou quem são seus melhores clientes. Em seguida, você pode armazenar todas essas informações registradas em planilhas adicionais e mantê-las em uma pasta para sua referência. Como proprietário de uma empresa, freqüentemente você precisa dessas informações para manter sua empresa funcionando tão eficientemente quanto possível. Você pode considerar algumas dessas informações tão importantes que as mantém fixadas no mural para que possa ter controle contínuo sobre elas. Essas informações podem incluir despesas com combustível, horas no estacionamento (porque você não possui estacionamento próprio e paga pela hora) e as horas totais gastas com a condução de cada motorista.
Você está utilizando ativamente seu próprio modelo para monitorar as atividades de sua frota. Este é seu modelo do monitor. Todas as informações armazenadas nas planilhas, os papéis nas pastas e os papéis fixados no mural são informações vitais para sua empresa e precisam ser mantidas atualizadas.
O kit de ferramentas de desenvolvimento ajuda a converter seu modelo do monitor baseado em papel em um modelo do monitor baseado em computador, que pode ser implementado sobre um servidor monitor. A figura a seguir representa uma visualização de alto nível de um modelo do monitor quando ele é implementado no WebSphere Business Monitor.
A atividade de negócios no exemplo da limusine é um serviço de aluguel de limousines. Os eventos produzidos por essa atividade de negócios são itens como: partida de um estacionamento, apanhar o passageiro, deixar o passageiro. O modelo do monitor no servidor monitor ouve os eventos gerados pela atividade de negócios. O servidor monitor é um ambiente de tempo de execução em que você pode implementar e executar os modelos do monitor. Vários modelos do monitor podem ser implementados em um servidor monitor. O modelo do monitor utiliza os dados contidos nos eventos de entrada para calcular dados de desempenho, como a duração e o status da viagem e qual motorista é o mais pontual. Em seguida, esses dados são armazenados em um banco de dados. As informações do banco de dados são apresentadas para o usuário a título de uma UI orientada a negócios conhecida como um painel. O painel inclui medições e gráficos.
Até agora introduzimos os conceitos básicos no WebSphere Business Monitor por analogia, utilizando a empresa de aluguel de limusine baseada em papel, como um exemplo. A tabela a seguir resume a analogia. Você aprenderá mais sobre contextos de monitoramento, métricas e eventos no Capítulo 2:
Monitoramento baseado em papel | Monitoramento baseado em computador |
---|---|
Planilhas com dados | Contextos de Monitoramento |
Uma descrição de qual tipo de dados é registrado e como é organizado dentro de uma planilha. | Definições de contextos de monitoramento |
Campos dentro de uma planilha | Métricas |
Chamadas telefônicas de entrada dos motoristas | Eventos |
Pasta para manter as planilhas e outras informações computadas fora das planilhas | Bancos de dados |
Murais | Painéis |
O modelo de programação de monitor é baseado em evento. Os modelos do monitor recebem entrada de dados diretamente de eventos que são emitidos por entidades monitoradas. Para um modelo do monitor recuperar dados corretamente de um evento de entrada, você deve especificar as expressões de caminho que fazem referência ao conteúdo do evento relevante. Para ajudar a definir esses caminhos e validá-los, o MME deve conhecer o tipo (layout) de carga útil do evento que contém essas informações.
A carga útil contém dados relevantes para o modelo do monitor, como o identificador da limusine, o nome do motorista e a hora da partida. A carga útil que o WebSphere Business Monitor processa é gravada em XML. O MME deve ser informado da carga útil pela definição de esquema XML (XSD), para que as informações possam ser acessadas corretamente.
No cenário de negócios de limousines, uma chamada de um motorista é um evento. Os motoristas podem chamar por diferentes motivos. Eles podem chamar para dizer que já chegaram no endereço do passageiro, e desse modo você sabe que é um tipo de evento “apanhar passageiro”. Portanto, você pode esperar informações específicas deles, como a hora que chegaram ao local e o tempo que estiveram lá. No WebSphere Business Monitor, essa "etapa de classificação do evento" é baseada nas condições do filtro. Você pode verificar se o monitor é testado para determinados elementos de dados para estar presente em um evento ou ter determinados valores para esse evento a ser reconhecido como tendo um determinado tipo. Os eventos devem ser emitidos e entregues por meio de um canal ou mídia. Em nosso modelo em papel, as torres de celular e as freqüências de rádio são utilizadas para transmitir os eventos. No WebSphere Business Monitor, os eventos são transmitidos para o modelo do monitor por meio do Common Event Infrastructure (CEI).
A figura a seguir é a mesma figura mostrada anteriormente no tutorial com as informações do evento incluídas nele. A CEI envia a fonte de eventos (a entidade monitorada) para o Servidor Monitor. Os eventos na CEI são entregues em um formato específico, conhecido como Common Based Event (CBE) que está também em XML (e tem sua própria definição de esquema XML). Dentro do CBE há um campo (ou slot) que contém a carga útil que o modelo do monitor recebe.
Esta lição demonstra que os eventos são processados como CBEs (que são baseados em XML) e que a carga útil das informações também é gravada em XML. Como resultado, o servidor monitor requer um meio de navegação por meio do CBE e a carga útil para recuperar os campos de dados específicos. Esse método está utilizando expressões de linguagem de Caminho XML (XPath).
No início deste capítulo, você faz a rechamada para visualizar um problema específico na guia Problema. A mensagem de erro indica que o MME está procurando uma definição no modelo do monitor que especifique quais eventos provocam a criação de instâncias. No modelo do monitor baseado em papel, ele corresponde ao início de uma nova planilha sempre que um motorista é despachado.
Nesta seção, você corrige esse problema por meio de assinatura de evento. As assinaturas de eventos são fundamentais para a operação correta do modelo do monitor, pois a única entrada direta na entidade monitorada para o modelo do monitor é um fluxo de eventos. No entanto, essa entidade pode estar emitindo muitos tipos diferentes de eventos, alguns dos quais o modelo do monitor talvez não precise. Por este motivo, o modelo do monitor deve inscrever explicitamente apenas os eventos de que ele precisa para seus cálculos. Nos parágrafos seguintes, você terá um entendimento melhor de como o processamento do evento é feito no WebSphere Business Monitor.
Conforme os eventos chegam, o servidor monitor entrega-os aos MCs que se inscreveram nesses eventos. Utilizando nossa metáfora da planilha, as planilhas eletrônicas são ″inscritas″ ou ouvem os eventos que contêm informações sobre a viagem registrada nessa planilha. As assinaturas de eventos são implementadas como definições de eventos de entrada no modelo de programação do monitor.
Um evento de entrada contém duas partes essenciais: (consulte o diagrama a seguir).
Uma definição de evento de entrada deve incluir uma diretiva sobre o que fazer em cada um desses casos possíveis. A tabela a seguir mostra quais ações possíveis podem ser executadas em cada um desses casos.
Resultado da expressão de correlação | Ações possíveis |
---|---|
Caso 1: Nenhuma instância correspondida |
|
Caso 2: Exatamente uma instância correspondida |
|
Caso 3: Várias instâncias correspondidas |
|
Como o desenvolvedor do modelo do monitor, você deve decidir o que fazer em cada um dos três casos para cada evento de entrada. As ações especificadas controlam a lógica do processamento do modelo do monitor. No exemplo da limusine, quando uma limusine é despachada e o motorista liga para que você saiba que ele está deixando o estacionamento, você cria uma nova planilha e preenche os dados iniciais. Esse tipo de evento (que provoca a criação da instância) é denominado evento de criação. No entanto, se o evento for apanhar um passageiro e a correlação resultar em nenhuma correspondência, você poderá desejar tratá-lo como um erro, pois alguém está tentando atualizar uma planilha que não existe.
Resumindo, quando um evento é recebido por um contexto de monitoramento, o tipo de evento é identificado primeiro através do processamento do filtro. Se ele for um tipo de evento no qual o contexto de monitoramento está interessado, o evento percorrerá um processamento de correlação para determinar quantas e quais instâncias são afetadas por esse evento. A ação a ser executada nesse evento depende do resultado do processamento de correlação e de quais ações foram especificadas para cada um dos três casos possíveis. Finalmente, você deve criar uma definição de evento de entrada para cada tipo de evento no qual o modelo do monitor deseja se inscrever.
Os contextos de monitoramento do WebSphere Business Monitor requerem algo que diminua a distância entre assinaturas de eventos e métricas. Você deve informar ao WebSphere Business Monitor como atualizar as métricas baseadas no conteúdo de eventos de entrada. Esse intervalo é diminuído com a definição dos mapas.
A figura a seguir mostra simbolicamente um contexto de monitoramento com suas assinaturas de eventos à esquerda e suas métricas à direita.
Um mapa é definido por uma expressão, propriedade de uma métrica de destino que define como o valor dessa métrica é calculado. Os mapas são semelhantes às fórmulas de planilha. Um mapa, que depende de um evento de entrada, é executado sempre que esse tipo de evento é entregue a um contexto de monitoramento. Se o evento for entregue a várias instâncias, o mapa será executado em cada instância. Um mapa, que depende apenas das métricas, é executado quando qualquer uma de suas métricas de entrada é alterada.
Apenas os mapas orientados a dados são utilizados neste tutorial.
Duas estratégias diferentes podem ser seguidas para definir os mapas. Você pode examinar o fluxo de dados (para cada tipo de evento de entrada, considere seus efeitos em cada métrica) ou as dependências (para cada métrica, considere como ele é afetado por cada tipo de evento de entrada). Se você definir os mapas pelas suas dependências, deverá cruzar a verificação do resultado primeiro.
De modo semelhante, os mapas entre as métricas podem ser definidos examinando o fluxo de dados (o que faz com que essa métrica tenha um impacto sobre outra métrica, e se isso acontecer, o que fazer) ou as dependências (quais outras métricas afetam essa métrica, e como). A dupla verificação do resultado utilizando o método "other" é recomendada.
Ao definir mapas, há algumas restrições importantes impostas pelo MME. A definição de um mapa pode criar dependências entre as métricas calculadas. Essas dependências devem ser acíclicas (se a métrica A depender da métrica B, a métrica B não deverá depender da métrica A) e um mapa pode fazer referência a não mais de um evento de entrada (como os eventos chegam simultaneamente, um ou outro não estará disponível).
Após definir os mapas, a "Visualização do Fluxo de Monitoramento" pode ser útil para visualizar o fluxo de dados resultantes. A figura a seguir representa uma visualização da amostra. O evento passengerPickedUp atualiza a métrica pickUpActualTime, que por sua vez provoca atualizações nas métricas tripStatus e pickUpWasLate.
Agora você está pronto para começar a Lição 1.2: Criando modelos de monitor