Gerência de Redes

Back Home Next

agent.gif (1233 bytes)                  

            Há uma forte tendência do crescimento das redes heterogêneas no ambiente de comunicações de hoje. Tal diversidade requer que operadores de redes tenham um maior conhecimento e um treinamento mais extenso. Administrar essas diversas redes requer uma coleção de grande quantidade de informações sobre a rede; dados que devem então ser analisados antes das atividade de gerenciamento poderem ser iniciadas. Simultaneamente, há uma expectativa de crescimento de confiabilidade e qualidade dos serviços disponibilizados aos usuários das redes. Esses desafios são as principais motivações para pesquisas em softwares agentes.

            A maioria das pesquisas nos aspectos de inteligência de agentes vem da Inteligência Artificial Distribuída (DAI) [O'Hare98]. DAI é uma extensão de idéias derivadas da IA aplicada a Sistemas Multi-Agente (MAS) [Lesser95]. Em vez de uma aplicação normalmente muito grande e centralizada que codifica toda a inteligência do sistema, vários programas relativamente pequenos, os agentes, são envolvidos num esforço cooperativo para resolver um problema. Isto não implica que um sistema grande simplesmente seja dividido em pequenos pedaços. Por exemplo, algumas aplicações centralizadas, cada uma capaz de tratar um certo aspecto do sistema, podem ser ligadas através de um sistema de comunicação. Permitindo a troca de pontos de vista entre elas, propondo estratégias para um progresso ou combinar resultados para uma solução. Esta classe de resolução de problema é conhecida como Resolução Distribuida de Problema (DPS) [Decker87], e cada um dos programas que cooperam, pode ser visto como um agente. Em IA, um agente é visto freqüentemente em termos de suas convicções, desejos e inteções (também denominada arquitetura BDI) [Georgeff87].

            Embora um sistema baseado em agentes possa ser implementado em uma tecnoligia cliente/servidor, ele difere de sistemas cliente/servidor clássicos porque não há uma distinção clara entre um cliente e um servidor. Todos os agentes participam na computação de acordo com o papel estáticamente nomeado pelo projetista ou nomeado dinamicamente por um humano ou supervisor de agente.

            Sistemas de gerência de redes têm que lidar com os mesmos assuntos que estão dirigindo pesquisa em  software agentes: proliferação de dados e ambientes heterogêneos. O problema com informação que inunda uma rede no caso de mau funcionamento é particularmente severo se for levado em conta uma solução tem que ser encontrada rapidamente. A falha tem que ser diagnosticada rapidamente e fixada automaticamente ou por um operador humano precisa ser informada e aconselhada sobre o curso formal da ação. Em grandes redes, operadores têm que interagir remotamente com muitos dispositivos a partir da workstation de gerência. Para acomodar a diversidade de componentes da rede, aplicações de gerência incorporam números grandes de interfaces e ferramentas. Sistemas de gerência de redes são monólitos normalmente enormes que são difíceis de manter. A seguir tem-se o resultado de uma revisão de várias áreas de aplicação que ilustram como podem ser usados os agentes móveis e como eles podem ajudar.

 

Gerência das Áreas Funcionais OSI

            São exigidas muitas ferramentas para endereçar  todos os aspectos de de gerência de uma rede de comunicação. O modelo de gerência OSI  reconhece tal fato categorizando estas exigências em várias áreas funcionais. São elas:

Gerência de falhas,
Gerência de contabilidade,
Gerência de configuração,
Gerência de desempenho, e
Gerência de segurança.

Serão analisadas várias aplicações potenciais em cada destas áreas. Começa-se pela modelage de redes, considerada necessária para muitas funções de gerência de rede.

 

Modelagem de Redes

            Em Gerência de Redes, descoberta automática é um das funções fundamentais do sistema de gerência. Este termo é costumeiramente usado de forma imprópria, porque descoberta poderia objetivar muitas metas. No caso mais simples, há um interesse na busca de dispositivos da rede. Uma versão estendida de descoberta se preocupa com a construção de visões mais detalhadas que podem incluir, por exemplo, serviços disponível em um dispositivo ou dispositivos que satisfazem certas restrições. Se as restrições são funções de estado de ação do dispositivo, então têm-se uma abordagem de descoberta de problema. Como uma complexidade de descoberta aumentada, é mais difícil de implementar usando uma abordagem clássica de cliente/servidor.

            Código móvel é um meio conveniente para executar a tarefa de descoberta [Schramm98]. Enquanto a descoberta básica em rede (descoberta de um único nodo) não é uma justificativa convincente para o uso de código móvel, suas variações mais sofisticadas certamente trazem o benefício de novas capacidades. Não obstante, a descoberta básica de dispositivos de rede é um meio excelente para ilustrar a abordagem. Um das técnicas de descoberta mais comumente usadas é o envio mensagens de ping a endereços de IP em um certo domínio. O processo de descoberta constrói sua visão da rede pelas respostas recebidas. Ao invés disso, um agente móvel (um deglet - depois de um agente de delegação [Bieszczad,98]) pode ser criado com uma tarefa exclusiva de enviar o identificador de um nodo visitado, ao seu criador (Figura 2). O deglet é então injetado na rede e viaja pelos meios dos padrões de migração implementados [Susilo98]. Há vários aspectos semelhantes a serem solucionado como no algoritmo de ping (por exemplo, o escopo da busca), mas o método é mais flexível. Por exemplo, ele não requer que o interlocutor tenha conhecimento sobre a rede. O término da tarefa pode ser determinada heuristicalmente dentro do deglet, por exemplo, contando os hops ou uma média de visitas de um nodo particular.

            Através da Incorporação de restrições no deglet de descoberta, pode-se criar modelos parciais da rede [White98b]. Por exemplo, restrições no tipo dos dispositivos no deglet de descoberta resultarão em um modelo da rede que consiste em dispositivos de um certo tipo. Se a restroção está na utilização de um nodo, então pode-se modelar problemas sobre-utilização. Estes modelos da rede podem ser criados dinamicamente. Eles podem ser costurados para satisfazer as expectativas de uma requisição de uma aplicação.

            Se a tarefa delegada tem uma natureza permanente, então chama-se o agente de netlet (depois de um agente da rede). Netlets são considerados uma parte da infra-estrutura da rede. O processo de descoberta fica contínuo com o uso de netlets de descoberta. O modelo de rede pode ser mantido dinamicamente, porque os netlets podem descobrir as mudanças na configuração da rede. Vários netlets poderiam ser nomeados para executar a tarefa. A velocidade com que são descobertas mudanças pode ser controlada pela densidade de netlets; quanto mais netlets na rede, menor será o processo de descoberta. Claro que, há certas restrições que definem um salto superior no número de netlets, por exemplo, throughput. Netlets podem usar as políticas de migração default  implementadas para facilidades de migração. Alternativamente, eles podem implementar os próprios padrões de migração. Por exemplo, um netlet pode definir o escopo de cobertura, assim nunca deixa uma sub-rede particular.  

 

Gerência de Falhas

Diagnóstico da rede. Os mesmos princípios vistos na modelagem da rede podem ser usado para diagnosticar falhas na rede. Descoberta de falhas é um processo de criação de um modelo especializado da rede. Por exemplo, um deglet simples que executa descoberta seletiva de nodos com utilização que excede um certo threshold constrói um modelo de nodos sobre-utilizados. Se as restrições da descoberta descrevem violações do que é considerado comportamento normal de elementos da rede, então os agentes que testam as restrições executam uma função de descoberta de falha. Podem ser usados ou deglets ou netlets. Deglets pode ser usado em reação para descobrir ou suspeitar de problemas. Eles poderiam tentar colecionar informação adicional, poderiam executar testes adicionais ou poderiam executar uma rotina de recuperação.

            As restrições não têm que ser limitadas a um único dispositivo da rede. Elas podem codificar descoberta de falha complexa e algoritmos de correlação [El-Darieby98]. A única limitação é o tamanho do netlet com um impacto direto na eficiência com que pode migrar e no throughput de rede. Este aspecto pode ser minimizado tirando proveito do expressividade de Java [Gosling96], técnicas de compressão de código, e métodos inteligentes. Os fundamentos teóricos que suportam a engenharia de agentes móveis sob a perspectiva de desempenho também são fontes de pesquisas [Baldi98].

            No outro lado do espectro, pode-se ter sociedades de agentes pequenos, biologicamente inspirados e relativamente simples que precisam de cooperação para prover a inteligência necessária para diagnosticar falhas da rede [White98c]. Vários tipos (ou espécie) de tais agentes minúsculos normalmente são injetados na rede. Cada tipo pode enviar um aspecto do problema, e aquele aspecto é solucionado reforçando uma determinada hipótese pelas observações de um número grande dos mesmos agentes. A solução para o problema emerge pela integração das hipóteses de cada espécie [White98a, White98c].

            Poderiam ser permitidos a deglets e netlets, que obedecessem certas providências de segurança, executar ações em dispositivos da rede (Figura 2). Podem ser usados tais netlets ativo para endereçar problemas autonomamente que conduza a uma recuperação imediata, se tal ação é possível. O gerente da rede ou será informado sobre o evento ou será alertado se uma recuperação automática não é possível ou requer envolvimento humano. Vários desses agentes de conserto de rede especializados poderiam prover um alto grau de imunidade da rede para uma gama de problemas. No contexto de deglets, são delegadas tarefas por necessidade por um agente de interface que interage com a entidade que delega. Em contraste, podem ser nomeados netlets automaticamente para suas tarefas a priori pelos seus projetistas e começa automaticamente como uma parte integrante da infra-estrutura da rede.  A textura e distribuição de densidade das sociedades de netlets podem ser controladas através de certos mecanismos de segurança. Por exemplo, a freqüência de visitas pode ser medida e e usada para gerar ou terminar os agentes [Bieszczad97].

 

Manutenção remota de elementos heterogêneos. Os agentes móveis precisam interagir com os nodos hosts por uma interface que provê acesso seguro, indireto para os recursos do host  e vários outros serviços (Figura 3). No projeto Perpetuum esta interface é chamada de Virtual Managed Component (VMC) [Susilo98]. Um VMC é projetado e implementado pelo vendedor do dispositivo da rede. Pode residir no dispositivo atual ou em um proxy, se o dispositivo não é capaz de aceitar os agentes móveis. Uma das facilidades que os vendedores podem incluir no VMCs dos seus dispositivos é um applet especial de apresentação de dado atualizável, que poderia gerenciar ambientes heterogêneos mais facilmente. Quando um dispositivo é conectado à rede, é disseminado conhecimento sobre as instalações disponíveis às partes interessadas residentes na rede. Por exemplo, um agente de descoberta pode pedir uma lista de serviços suportados. Um usuário que folheia uma lista de dispositivos pode precisar examinar um dispositivo particular (Figura 4). Se o dispositivo é registrado como um que provê suas próprias facilidades para exame de seu estado, então o applet é buscado do item selecionado e é executado localmente na workstation do gerente. Pode executar dentro de um browser da Web ou como uma aplicação standalone. O applet provê a apresentação de dados e funcionalidade interativa do modo que o vendedor do dispositivo considera como o mais satisfatório para este dispositivo em particular. Por exemplo, pode ser uma lista textual simples ou uma representação gráfica sofisticada dos serviços de e/ou hardware.

            Se um dispositivo não provê um applet de apresentação, então ou o gerente tem um manipulador próprio para o dispositivo ou um browser de dispositivo genérico será usado. Esta é uma solução extensamente usada nos agentes de dispositivo dos sistemas de gerência de rede de hoje. Um dispositivo não só tem que ter sua representação no gerente implementado, mas também tem que implementar um protocolo de comunicação como SNMP [Case90, Case93] com o gerente que permita a transferência de todos os parâmetros do dispositivo. Isto é o que se faz hoje para gerenciar sistemas grandes e inflexíveis. A solução com applets atualizáveis não tem tais restrições.

            Uma atração adicional para esta abordagem é provida mantendo um repositório de applets em um servidor, por exemplo, no servidor web do vendedor. O VMC transportado com um dispositivo de rede incluiria só um ponteiro de referência para o applet remoto que seria trazido do servidor quando precisasse. Uma vantagem óbvia é que o vendedor pode manter seu repositório atualizado e convenientemente estruturado, por exemplo,  com o uso de vários componentes de software. Esta abordagem poderia ser uma parte de um esquema mais genérico para componentes plug-and-play. De fato, estruturar o servidor do vendedor como um ambiente de código móvel com um VMC que implementa o armazenamento de comportamento de dispositivo parece atraente.

            Outro exemplo do uso de agentes móveis para manutenção remota endereça o problema de tomar cuidado de dispositivos locais que provêem certos serviços de premissas de cliente; por exemplo, em uma rede de vídeo demanda [Mennie98]. Nas futuras redes, será impossível enviar um técnico que teste todo dispositivo defeituoso, porque haverá centenas de milhares ou mais deles instalados. Ao invés disso, Um agente móvel será enviado. Pode executar um conjunto de testes e pode tentar consertar o dispositivo se possível. Somente nessas falhas um  operador humano será envolvido. Os agentes podem incorporar técnicas de máquina de aprendizado que podem melhorar seus comportamentos futuros. Uma biblioteca de agentes pode ser estabelecida com uma seleção automática de agentes para tarefas específicas.

Gerência de Configuração

Provisionando Serviços.A provisão de serviços em redes de telecomunicação é um processo complexo que normalmente envolve várias partes. Agentes móveis podem ajudar a agilizar este processo. Este fato foi reconhecido por atividades relacionadas a agente em organizações que trabalham para que gerar padrões, por exemplo, o Telecommunication Information Networking Architecture Consortium, TINA-C. Apesar da agressiva popularização de idéias [Magedanz96], o trabalho atual parece progredir menos vigorosamente. Neste momento, muito pouca informação sobre o progresso está disponível aos não-sócios, mas os resultados pderão se tornar públicos em 1999. A pesquisa em redes ativas e cumutadas também pode ser vista como uma tentativa para prover um serviço inclusivo e flexível que aprovisiona plataforma baseado em mobilidade de código, embora a um mais baixo nível [Mennie98].

            Para ilustrar algumas das oportunidades por usar os agentes móveis, será analisado um exemplo. Circuitos virtuais permanentes para aprovisionamento (PVCs) em uma rede ATM é um exemplo de provisão de serviço. Pode-se levar um longo para negociar todos os aspectos de um PVC que precisa de ser estabelecido entre dois switches ATM, especialmente se esses dois switches são de vendedores diferentes. Muito freqüentemente, um PVC inclui um caminho por uma "nuvem" de rede mantida por um operador da rede. O processo seria até mais longo se outra companhia operacional oferecesse serviços semelhantes mas com preços diferentes. Em uma rede heterogênea, poderia haver vários gerentes de rede envolvidos no processo. Não há nenhum protocolo padronizado para realizar esta tarefa.

            Um sistema baseado em agentes móveis (Figura 5) pode manipular tarefas semelhantes de um modo autônomo [Pagurek98]. Um pedido para montar um PVC pode ser assinalado a um deglet que coordena o processo global. Usa deglets adicional para executar tarefas parciais. Usando este deglets, todos os dados necessários são trocados por pontos de encerramento que usam as provisões incorporadas nos seus respectivos Virtual Managed Components (VMCs). Os deglets comunicam-se com VMCs usando uma ontologia especial que  generaliza o conhecimento de configuração de conexões cruzadas e PVCs por vendedor. Partes dos dados necessários podem ser trazidas como requeridas de localizações remotas; por exemplo, os web sites dos vendedores. Então, outro deglet negocia com o VMCs nas "nuvens" do operador. A melhor porção é selecionada e a troca subseqüente de informação necessária completa a ligação. Nesse ponto, a parte requisitante é informada que a tarefa foi realizada.
 

Componentes de Provisão. Configurar um dispositivo requer que vários atributos na rede e no dispositivo sejam fixados, como também certos componentes de software instalados. Por exemplo, uma impressora requer que seus drivers estejam presentes nas workstations que estarão usando seus serviços. Atualmente, o gerente da rede tem que executar todas as tarefas exigidas manualmente. Podem ser usados os agentes móveis para implementar componentes de rede plug-in-play. Como um exemplo, considere uma tarefa de instalar uma impressora de rede. Esta tarefa envolve uma rede de trabalho estabelecida com várias workstations com requisitos potencialmente diferentes. Por exemplo, os drivers que são exigidos para interagir corretamente com uma impressora diferem entre um Macintosh e computadores Unix, ou entre PCs com Windows NT ou OS/2. Assume-se ainda que que a rede é conectada à Internet. Para fazer uso apropriado da impressora, as workstations têm que ser provisionadas, através da instalação dos drivers apropriados. Se a impressora viesse com todos os drivers exigidos ou se o sistema operacional incluísse todos os drivers, então esta parte da tarefa poderia ser tediosa, mas manejável. Por outro lado, se não há nenhum driver apropriado, então o processo como um todo torna-se muito difícil. A dinâmica da topologia da rede tem que ser bastante manipulada quando impressoras e workstations novas são adicionadas, impressoras são tiradas de serviço, sistemas operacionais são atualizados, etc.

            O esquema ilustrado na Figura 6 está baseado no uso de vários agentes móveis e estacionários. Pode ser usado para prover capacidades de plug-and-play para componentes de rede [Raza98]. O VMC que vem com o dispositivo novo, uma impressora em nosso exemplo, inclui um bootstrapping que provê o agente. Na conexão com a rede, são enviados vários deglets ou netlets para descobrir os dispositivos da rede que precisarão de drivers de impressora. Então, a página web do fabricante da impressora é contactada, assim podem ser carregadas as mais recentes versões dos drivers exigidos. O VMC de uma impressora pode manter uma lista dos dispositivos que usam a impressora, assim pode coordenar instalações de drivers novos quando necessário. A impressora fica registrada com o vendedor, assim se uma versão nova de um driver está disponível no vendedor, então é enviado automaticamente ao agente de provisão da impressora.

            Como no caso de agentes para diagnóstico de falha, configuração pode ser um resultado de comportamento cooperativo de grandes números de agentes simples [White98b, Dorigo96].

Gerência de Desempenho

            Certos aspectos de medição do desempenho das redes são difíceis se um servidor centralizado é usado. Retardos da rede tornam a precisão das medidas questionável. Em vez de apurar informações dos elementos da rede remotamente, um agente móvel pode ser despachado para executar uma análise do componente localmente. A informação colecionada deste modo é mais precisa, porque não há  nenhum retardo envolvido. Uma melhoria semelhante pode ser alcançada com um processo de monitoramento sendo uma parte do elemento testado, mas isso requer que o processo seja uma parte estática do sistema local. A solução com um agente móvel é superior, porque não requer consumo permanente de recursos locais. É de  longe mais fácil de administrar da perspectiva de manutenção, uma vez que sempre se pode usar a mais recente versão de um deglet móvel. Em contraste, atualizar um agente estático de monitoramento local é um processo mais longo.

            Tecnologia de Hot-Swapping  também podem estar baseadas em código móvel. Hot-Swapping de esquemas podem ser aplicados para manter redes estacionária monitorando os agentes atualizados. Se o agente de monitoramento local é uma aplicação dinamicamente prolongável (por exemplo, uma aplicação de Java), então módulos incluindo código móvel (extlets) podem ser usados para melhorar a aplicação sempre que necessário sem distrair os serviços que a aplicação provê. O módulo móvel não tem que residir no elemento local todo o tempo, porque pode ser carregado sempre que for necessário, não diferente da forma como os applets são carregados em um web browser. Os esquemas com agentes móveis atuais ainda são melhores, porque eles requerem menos recursos, e adicionalmente provê processando distribuído e correlação inteligente de fatos de fontes diferentes no processo de medição. Por exemplo, uma aplicação de gerenciamento pode usar um deglet para localizar um nodo de ocioso  que poderia assumir certos serviços.

            Serviço de migração, onde um servidor é movido ou "clonado" para um ambiente de execução melhor, pode ser considerado um exemplo de um esquema Hot-Swapping. A decisão para mover ou "clonar" requer análise inteligente de vários fatores como demanda de serviço, carga da rede, taxa de falhas, etc. por exemplo, um gerente de nível de mídia pode ser migrado a outra localização, se a taxa de falha de acesso a seus serviços ou latência da rede é inaceitável. Em outro caso, um servidor que provê serviços de comunicação em um sistema distribuído (por exemplo, coordenador de quadro-negro) poderia ser movido ou "clonado" se as exigências para seus serviços estão na em ascendência em certas áreas. Em todos estes casos, o servidor é, em efeito, um agente móvel. Não há nenhuma restrição no tamanho da definição de um agente, embora normalmente pensa-se em um agente móvel como algo pequeno.

            No contexto de desempenho de rede, é preciso elevar o aspecto de problemas de desempenho potenciais do uso de agentes móveis. Levado aos agentes móveis extremos, descontrolados poderia inundar a rede e poderia consumir uma proporção grande de seus recursos. A infra-estrutura para agentes móveis obriga certas regras na densidade de agentes. Por exemplo, nem todo o mundo tem permissão de injetar os agentes móveis na rede. Os que são autorizados para fazer isso (operadores humanos ou aplicações de sistema) têm que prover informação sobre o que constitui um padrão normal de comportamento para os seus agentes. Se essas regras são violadas, então a infra-estrutura provê mecanismos de contra-ataque ou, se o problema é persistente, os agentes têm seus serviços recusados.

Redes Plug-and-Play

              Agentes móveis estão fortemente relacionados com essa última modalidade de redes: uma rede plug-and-play [Bieszczad97]. Uma rede plug-and-play pode automaticamente se auto-configurar para acomodar componente e exigências de usuário. Tem-se  exemplos de agentes móveis que executam tal funcionalidade, configurando componentes da rede e provendo serviços. Em outro exemplo, um applet é usado para adaptar a apresentação de dados de rede para o perfil do dispositivo e o perfil do usuário. Se os componentes ou as necessidades de uma rede plug-and-play evoluem, então a rede pode descobrir a mudança e pode modificar os dados de configuração. Os agentes nos exemplos dados possuem as capacidades de descoberta e provisão. Uma rede plug-and-play pode descobrir problemas que podem potencialmente afetar sua integridade resultando em deterioramento da qualidade de serviço ou podem comprometer a segurança. Uma vez  descoberto um problema,  pode ser enderessado automaticamente, então uma rede plug-and-play pode se consertar com autonomomia. Novamente, foi  visto exemplos de netlets que podem incorporar inteligência necessária para descobrir, correlatar e enviar problemas surgidos na rede. Uma rede plug-and-play incorpora uma camada de middleware que provê uma abrangência de serviços para as aplicações de cadeia se sobreporem. Nos exemplos dados, foram descritos netlets que provêem modelagem de redes e  serviços de medida de desempenho.