Introdução

 

Ambientes de computação estão sempre em constante evolução, sendo que o momento está para o lado da computação distribuída e a área de gerenciamento também tem que estar em constante evolução para que não seja passada para trás. As plataformas centralizadas já possuem um bom grau de satisfação enquanto que as plataformas distribuídas apresentam grandes problemas de performance e segurança. Quando o ambiente é centralizado se a máquina que está executando um módulo falhar, todos os outros componentes que dependem deste módulo iram falhar, enquanto que no ambiente distribuído haverá uma degradação no desempenho dos módulos, porém continuaram executando normalmente.

O crescimento na utilização dos computadores tornou eminente o gerenciamento de aplicações, enquanto que para se gerenciar aplicações distribuídas nos mais diferentes locais, torna-se muito difícil o seu gerenciamento sem que haja a utilização de ferramentas de auxílio a tal tarefa, enquanto que em uma aplicação centralizada desenvolvida para vários usuários serão gerenciadas sem maiores problemas.

  

Gerenciamento de Aplicações

 

As funcionalidades necessárias para se conseguir gerenciar uma aplicação é necessário os seguintes itens:

 

    1. Monitoração – Avaliação contínua do funcionamento das principais atividades realizadas por uma aplicação e do seu tempo de resposta.
    2. Geração e Comunicação de eventos – Serve para que se detecte anomalias no funcionamento das aplicações.
    3. Correlação de eventos – Trata da identificação das diversas associações entre as entidades geradoras de eventos de uma rede.
    4. Controle – Permite adaptação das aplicações ao ambiente dinamicamente, para melhorar desempenho e recuperar falhas.

 

A monitoração de uma aplicação pode ser:

 

 

 Em um ambiente distribuído, o funcionamento e o desempenho das aplicações dependem do desempenho do sistema e da rede. Caso ocorra problemas com as aplicações, as dependências devem ser analisadas para que se possa analisar onde os problemas estam acontecendo. O problema no desempenho das aplicações que executam componentes remotas podem ser causadas por falhas na interface de rede, congestionamento nos links intermediários ou tempo de resposta alto, por isso a monitoração será necessária em todos os níveis.

 

Os gerenciamentos das aplicações eram feitos de modo indireto, com isso o gerenciamento era resumido a análise e monitoração do ambiente no qual as aplicações executavam, porém esta técnica de gerenciamento mostrou-se ineficiente em alguns casos, tornando-se necessário que as aplicações possuíssem seus próprios eventos e informações de gerenciamento para uma console, surgindo desta forma o gerenciamento direto de aplicações.

 

O uso de aplicações em atividades críticas do sistema, fizeram com que o gerenciamento das aplicações mudasse de indireto para direto.

 

Uma abordagem de gerenciamento de aplicações para ser completa terá que possuir as seguintes exigências:

 

 

Atualmente, quatro alternativas tendem a atender estas exigências :

 

  1. Integração do gerenciamento de rede e de sistemas com a correlação de eventos.
  2. Application Program Interfaces (APIs) pasra o gerenciamento de aplicações.
  3. Gerenciamento de servidores de Banco de Dados.
  4. Arquitetura para o gerenciamento de aplicações.

 

  A Integração do Gerenciamento de Redes e de Sistemas com a Correlação de Eventos utiliza a plataforma SNMP e os produtos convencionais para monitorar os arquivos de log, caches, discos e outros dispositivos, incluindo as próprias aplicações.

 

O funcionamento será o seguinte: o agente SNMP colhe os dados necessários ao gerenciamento provenientes da rede, do sistema e das aplicações, as aplicações por sua vez já disponibilizam informações de gerenciamento compatíveis com o SNMP, os dados são entregues a uma console de gerenciamento que realiza uma correlação nos eventos existentes para a descoberta de problemas. Os divulgadores desta alternativa são HP, IBM e Sun.

 

APIs para o Gerenciamento de Aplicações utilizam interfaces para a disponibilização de informações sobre a monitoração e controle para outras aplicações. Possui uma falta de mecanismos para a consulta de dados da rede e do sistema, ficando limitado ao gerenciamento de aplicações através de APIs. Os principais divulgadores desta alternativa são empresas como Tivoli, BMC Corp, HP e outros vendedores de produtos para gerenciamento de sistemas.

 

Gerenciamento de Servidores de Banco de Dados possuem facilidades para a monitoração e controle dos servidores de banco de dados de uma única console. As aplicações acessam estes bancos de dados e exibem informações sobre o seu funcionamento para uma console central de gerenciamento. Alguns fabricantes desta alternativa são: BMC Patrol e Compuware’s Eco Tools, as quais promovem uma abordagem independente de banco de dados para o gerenciamento de servidores.

 

A Arquitetura de Gerenciamento de Aplicações possui ferramentas de desenvolvimento de aplicações que tem eventos e medidas de performance pré-definidas que são inseridas dentro das aplicações durante a sua execução. Os eventos e medidas de desempenho são propagados para uma console de gerenciamento. Os fabricantes das ferramentas de desenvolvimento de aplicações são os principais divulgadores desta técnica.

 

 Tabelas de Comparação entre as Técnicas

  

Abordagem

Exigência

Gerenciamento convencional

APIs para Gerenciamento de Aplicações

Gerenciamento de Servidores de Banco de Dados

Arquitetura para o Gerenciamento de Aplicações

Geração de eventos específicos para aplicações

Código para o evento deve ser escrito utilizando o protocolo

Possibilita a geração eventos não sendo uma tarefa fácil

São gerados apenas eventos específicos de BD

Eventos podem ser gerados através das ferramentas de desenvolvimento

Arquitetura para múltiplas aplicações

Pode ser estendida para gerencia de múltiplas aplicações

Estabelecem um padrão compreensível para este suporte

Suportam múltiplas aplicações de BD

Realiza este suporte via ferramentas de desenvolvimento

Suporte para múltiplas consoles, PCs e agentes pré-construídos

Utilizam protocolos padrões, indepen

Dentemente de fabricantes que incluem este suporte. (SNMP)

Cada API é associada um único fabricante de ferramentas de gerenciamento

Fechados com uma tecnologia. A ênfase é dada aos produtos UNIX

Projetada para suportar as maiores plataformas

Arquitetura Escalonável

Pode ser estendida para suportar vários dispositivos e recursos

Não ataca a escalabilidade

Projetada para cobrir múltiplos servidores de BD

Projetada para suportar ambientes de larga escala. Incluem filtros de dados

Disciplinas de gerenciamento abordadas

Atacam geralmente o gerenciamento de falhas e configuração

Utilizada principalmente para o gerenciamento de performance

Tratam o gerenciamento de falhas e configuração

Provê suporte para as 5 disciplinas, cobrindo apenas o gerenciamento de falhas, performance e configuração

Tipo de monitoração

Híbrido

Embutido e manual

Embutido e automático

Híbrido

 

Comparação entre abordagens para o gerenciamento de aplicações

 

 

 

SNMP(Simple Network Management Protocol)

 

  Quando se começou a utilizar redes de computadores, o gerenciamento da rede era feito de uma maneira muito fácil, pois a área onde os seus componentes se encontravam era pequena geograficamente. Uma pessoa podia gerenciar todos os aspectos dessa rede. Com o passar do tempo, as redes foram aumentando e o seu gerenciamento se tornando mais difícil, muitas sub-redes foram incorporadas nas organizações, localizações ficaram inacessíveis por motivo da distância, então houve a necessidade de um controle maior em cima desse gerenciamento. Surgiu a partir de 1990 a publicasção de um protocolo preocupado com esse aspecto, o SNMP(Simple Network Management Protocol).

A arquitetura na qual o SNMP roda é muito simples, consiste dos seguintes elementos:

 

As estações de gerenciamento são computadores que rodam um software especial de gerenciamento e que contêm um ou mais processos que se comunicam com os diversos componentes da rede. Cada componentes deste possui um processo que faz seu gerenciamento. Esses processos são chamados agentes de gerenciamento. Esses agentes guardam variáveis que refletem o estado do componente. Se o componente for um roteador, uma de suas variáveis poderia ser a quantidade de pacotes que passou por ele, ou a velocidade de alguma linha de saída. Cada variável dessa é um objeto. O coleção de todos os possíveis objetos de uma rede é chamada de MIB(Management Information Base) ou Base de Informações de Gerenciamento. Cada agente de gerenciamento mantém uma base de gerenciamento local, que contém todos os objetos relacionados com o seu componente. Os componentes de uma rede podem ser hosts, roteadores, pontes, impressoras, hubs ou qualquer componente que possa comunicar status para o lado de fora. A comunicação entre as estações e os agentes é feita através de um protocolo que contém vários comandos. Comandos para receber valores, para atribuir valores e comandos de informação de acontecimentos. Um agente de um roteador que acabou de voltar de uma queda poderia enviar uma mensagem sem nenhuma solicitação informando seu estado. Os comandos se dividem em alguma classes:

 

Uma estação de gerenciamento que quer saber o valor de algum objeto, enviaria uma mensagem do tipo GET.REQUEST, e o agente ao receber esta mensagem retornaria uma resposta do tipo GET.RESPONSE. Cada mensagem enviada deve ter um formato e uma sintaxe para que possa ser entendida e executada.

 

Existem alguns componentes que não implementam o SNMP, ou por não terem o TCP/IP ou por serem antigos. A rede precisa de uma maneira de gerenciar esse tipo de componente, então levantou-se a idéia de agente de proxy. É um agente que roda fora do componente, mas tem a capacidade de gerenciá-lo. Esse agente fala tanto o SNMP quanto a língua desse componente. Então quando a estação de gerenciamento ou gerente quer saber alguma informação desse nó, ele se comunica com o agente de proxy que contém as informações requeridas.

 

Com a utilização do SNMP observou-se que alguns aspectos deixavam a desejar em termos de confiabilidade e eficiência. Do ponto de vista de segurança, muito pouco havia sido feito no SNMP. Ele não prevenia a rede que alguém escutasse alguma troca de mensagem, ou se passasse por um gerente para colher informações dos agentes. Então um comitê foi organizado, e em 1993 foi lançado o SNMP versão 2, que acrescentou alguns pontos de melhoria no SNMP:

 

 

 

Comando

Descrição

SNMPv1

SNMPv2

Get

Pede um valor para o agente

x

x

GetNext

Pede o próximo valor

x

x

GetBulk

Pede os N próximos valores

 

x

Set

Atribui valor a um objeto

x

x

Trap

O agente comunica que algum evento ocorreu

x

x

Inform

Um gerente comunica que algum evento ocorreu para outro gerente

 

x

Response

O agente responde a uma requisição

x

x

 

 

 

    1. Autenticação: Somente gerentes autorizados podem acessar informações dos MIBs locais dos agentes.
    2. Privacidade: Uma informação passada para um agente, só pode ser vista por este e por mais ninguém. Algorítmos de encriptação são utilizados para prover este serviço.
    3. Controle de acesso: Os agentes devem restringir o acesso dos gerentes apenas àquelas informações que lhes convém. Cada gerente vai ter uma visão do MIB do agente. Nem todos os objetos estarão acessíveis.

 

Existem alguns tipos de ameaças que o gerenciamento de redes tenta tratar. Aqui estão alguns deles:

 

MIB ( Management Information Base )

 

É uma estrutura de dados que fornece um conjunto formado por todos os objetos possíveis em uma rede. Objetos são as variáveis que cada dispositivo possui para descrever seu estado. Todo evento significativo é definido em módulo da MIB.

Todos os objetos da MIB SNMP serão identificados por um label em um determinado formato. Os objetos serão gerenciados pelo SNMP. Podem ser agrupados em categorias, as quais tem como objetivo oferecer uma base daquilo que uma estação de gerenciamento deva compreender.

 

Grupo NΊ Objetos Descrição

 

System 7 Nome, local e descrição do equipamento

Interfaces 23 Interfaces de rede e seu tráfego

AT 3 Conversão de endereço (obsoleto)

IP 42 Estatísticas de pacotes IP

ICMP 26 Estatísticas sobre as mensagens ICMP recebidas

TCP 19 Algoritmos TCP, parâmetros e estatísticas

UDP 6 Estatísticas de tráfego UDP

EGP 20 Estatísticas de tráfego de protocolo de gateway ext.

Transmission 0 Reservado para MIDs de meios físicos específicos

SNMP 29 Estatísticas de tráfego SNMP

 

 

A quantidade de objetos definidos serão de 175 objetos, onde para cada um deles terá o tipo de dados fornecido em um texto descritivo do uso da variável.

 

 

WWW MIB

 

Obtém informações de gerenciamento das entidades responsáveis pela troca de documentos sobre a WWW. Essa MIB é dividida em quatro grupos:

 

 

 Network Services Monitoring MIB

 

Serve para monitorar o funcionamento de qualquer aplicação que utiliza serviços da rede e são distribuídas. Dividida em dois grupos:

 

 

 

Relational Database Management System MIB

 

Consiste de um conjunto de objetos para gerenciamento de banco de dados relacionais. Dividida em três grupos:

 

  

Produtos para o Gerenciamento de Aplicações

 

Como a tecnologia de gerenciamento de aplicações ainda é bastante nova, porém já existe alguns produtos na área, onde a maioria se preocupa basicamente em monitorar a performance das aplicações não levando em conta outros aspectos como falhas e configuração. Vamos citar três exemplos:

 

  1. Unify VISION AppMan – Realiza o gerenciamento de aplicações através da monitoração diretamente no seu ambiente de desenvolvimento, o VISION. Inclui suporte para agentes SNMP, que permite gerar interrupções SNMP as quais podem ser aceitas e processadas pelos líderes nas plataformas de gerenciamento.
  2. Application Response Measure – Conjunto de APIs disponíveis para a monitoração da performance de transações. As APIs podem ser facilmente introduzidas em diversos tipos de aplicações, no entanto, necessitam da introdução de código adicional nos programas desenvolvidos, isto é incômodo.
  3. Solução PATROL – Um dos produtos mais completos no que diz respeito ao gerenciamento de aplicações já desenvolvidos. É compatível com o SNMP e também oferece um gerenciador de eventos que permite aos administradores a visualização e o controle de eventos específicos. Facilidades incluídas no gerenciador de eventos são: definição de eventos; informação na ocorrência de eventos; correlação de eventos de múltiplos agentes e módulos de conhecimento.