Pontifícia Universidade Católica do Paraná Centro de Ciências Exatas e Tecnológicas Especialização em Sistemas Distribuídos A UTILIZAÇÃO DE TECNOLOGIAS WEB EM SISTEMAS DE GERÊNCIA CORPORATIVA Curitiba, março de 2000 2 José Luís Vieira Carvilhe A Utilização de Tecnologias WEB em Sistemas de Gerência Corporativa Monografia apresentada à Coordenação do Curso de Distribuídos, Especialização da Pontifícia em Sistemas Universidade Católica do Paraná, sob a orientação do Professor Doutor Carlos Alberto Maziero. Curitiba, março de 2000 3 Agradecimentos À minha esposa Marcia pelo apoio e incentivo durante o período em que me dediquei a este projeto pessoal. Ao Professor Doutor Carlos Alberto Maziero pelo apoio durante o curso de especialização e pela orientação desta monografia. Aos amigos de trabalho da Companhia de Informática do Paraná - CELEPAR, que direta ou indiretamente contribuíram através de críticas e sugestões, para a melhoria da qualidade deste trabalho. À Companhia de Informática do Paraná - CELEPAR pelo programa de incentivo à educação na busca da qualidade dos serviços do estado para o cidadão. 4 Sumário 1 INTRODUÇÃO 11 2 GERÊNCIA CORPORATIVA 13 2.1 2.2 2.3 13 14 15 CONCEITO DE GERÊNCIA CORPORATIVA BENEFÍCIOS DA GERÊNCIA CORPORATIVA SISTEMAS CONVENCIONAIS DE GERÊNCIA CORPORATIVA 3 AS ÁREAS DE GERÊNCIA E SEUS PADRÕES 18 3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.3 3.3.1 3.4 18 20 30 33 34 34 37 37 37 GERÊNCIA DE REDES SNMP CMIP TMN GERÊNCIA DE SISTEMAS DMI GERÊNCIA DE APLICAÇÕES ARM GERÊNCIA DE SERVIÇOS 4 GERÊNCIA VIA WEB 39 4.1 CONCEITO DE GERÊNCIA VIA WEB 4.1.1 FRAMEWORKS DE GERÊNCIA VIA WEB 4.1.2 BENEFÍCIOS DA GERÊNCIA VIA WEB 4.2 A EVOLUÇÃO DA INTERNET E SERVIÇOS WEB 4.3 TECNOLOGIAS WEB 4.3.1 PROTOCOLOS DE COMUNICAÇÃO 4.3.1 BROWSER WEB 4.3.2 SERVIDOR WEB 4.3.3 MARKUP LANGUAGES 4.3.4 LINGUAGENS DE PROGRAMAÇÃO WEB 4.3.5 LINGUAGENS SCRIPT WEB 4.3.6 FORMATOS GRÁFICOS 4.3.7 MIME 4.3.8 CGI 4.3.9 ACTIVEX 4.3.10 SEARCH ENGINES 4.3.11 BANCOS DE DADOS 4.3.12 VRML 4.3.13 COOKIES 4.4 CONCLUSÃO 39 40 44 46 48 48 51 53 55 62 64 68 69 69 70 70 70 71 71 71 5 5 JAVA MANAGEMENT EXTENSION - JMX 73 5.1 5.2 5.3 5.3.1 5.3.3 5.3.2 5.3.3 5.3.4 5.4 73 73 74 74 76 77 77 78 78 JMX ARQUITETURA JMX COMPONENTES JMX RECURSO GERENCIÁVEL AGENTE JMX GERENTE JMX SERVIÇOS DE GERÊNCIA APIS PARA OUTROS PROTOCOLOS DE GERÊNCIA CONCLUSÃO 6 WEB MANAGEMENT ENTERPRISE - WEBEM 79 6.1 6.2 6.2 6.2.1 6.2.2 6.2.3 6.2.3 6.3 79 80 83 83 87 87 87 88 INICIATIVA WEBEM ARQUITETURA WEBEM COMPONENTES DA ARQUITETURA WEBEM CIM CIMOM HMMP XML CONCLUSÃO 7 ESTUDO UNICENTER TNG 89 7.1 INTRODUÇÃO 7.2 ARQUITETURA UNICENTER TNG 7.2.1 INTERFACE COM O MUNDO REAL 7.2.2 REPOSITÓRIO DE OBJETOS 7.2.3 VISÃO DE NEGÓCIOS 7.2.4 AUTO DISCOVERY 7.2.5 GERENTES E AGENTES 7.2.6 DISCIPLINAS DE GERÊNCIA CORPORATIVA 7.2.7 TECNOLOGIA DE REDES NEURAIS 7.2.8 UNICENTER TNG SDK 7.3 ANÁLISE DA SOLUÇÃO UNICENTER TNG 7.3.1 A SOLUÇÃO UNICENTER TNG E A GERÊNCIA CORPORATIVA 7.3.2 A SOLUÇÃO UNICENTER TNG E OS PADRÕES DE MERCADO 7.3.3 A SOLUÇÃO UNICENTER TNG E A GERÊNCIA VIA WEB 89 89 92 92 93 94 94 95 95 95 96 96 96 97 8 CONCLUSÕES 98 BIBLIOGRAFIA 101 6 Lista de Figuras Figura 2.1 – Áreas de Gerência Corporativa ______________________________ 13 Figura 2.2 – Políticas de Gerência Corporativa ____________________________ 15 Figura 2.3 – Domínios de Gerência Corporativa ___________________________ 16 Figura 2.4 - Relação entre as áreas de gerência ___________________________ 17 Figura 3.1 – Modelo de Gerência de Redes ______________________________ 19 Figura 3.2 – Evolução da Versões do protocolo SNMP ______________________ 21 Figura 3.3 – Modelo de Referência SNMP ________________________________ 23 Figura 3.4 – Objetos da MIB __________________________________________ 25 Figura 3.5 – Versões do Protocolo RMON ________________________________ 30 Figura 3.6 – Estrutura do protocolo CMIP ________________________________ 31 Figura 3.7 – Serviços CMIP ___________________________________________ 32 Figura 3.8 – Arquitetura da Interface DMTF _______________________________ 36 Figura 3.9 – Arquitetura ARM __________________________________________ 38 Figura 4.1- Modelo Genérico de Gerência via WEB ________________________ 41 Figura 4.2 – Modelo de Framework Nativo _______________________________ 42 Figura 4.3 – Modelo de Framework Proxy ________________________________ 43 Figura 4.4 – Modelo de Framework Gateway _____________________________ 44 Figura 4.5 – Modelo TCP/IP ___________________________________________ 49 Figura 4.6 – Browser WEB ____________________________________________ 52 Figura 4.7 – Servidor WEB ___________________________________________ 54 Figura 4.8 – Transação HTTP _________________________________________ 55 Figura 4.9 – TAGs HTML versão 2.0 ____________________________________ 58 Figura 4.10 – TAGs HTML versão 3.2 ___________________________________ 60 Figura 4.11 – Exemplo de codificação da linguagem Java ___________________ 63 Figura 4.12 – Exemplo de codificação da linguagem C++ ____________________ 63 Figura 4.13 – Exemplo de codificação da linguagem C ______________________ 64 Figura 4.14 – Exemplo de codificação da linguagem JavaScript _______________ 65 Figura 4.15 – Exemplo de codificação da linguagem ECMAScript _____________ 66 Figura 4.16 – Exemplo de codificação da linguagem PERL __________________ 66 Figura 4.17 – Exemplo de codificação da linguagem TCL ____________________ 67 Figura 4.18 – Exemplo de codificação da linguagem Python__________________ 67 7 Figura 5.1 – Arquitetura JMX __________________________________________ 75 Figura 6.1 – Modelo de fluxo de dados WEBEM ___________________________ 80 Figura 6.2 – Modelo de Referência WEBEM ______________________________ 81 Figura 7.1 Arquitetura Unicenter TNG ___________________________________ 91 8 Lista de Abreviaturas ACSE Association Controll Service Element API Application Program Interface ARM Application Response Measure ARP Addres Resolution Protocol ARPANET Advanced Projects Agency Network ASN.1 Abstract Syntax Notation One ATM Asynchronos Transfer Mode BER Basic Encolding Rules CERN European High-Energy Particle Physics Lab CCI Common Communication Interface CCITT International Consultive Committee on Telegraphy and Telephony CGI Common Gateway Interface CIM Common Information Model CIMOM CIM Object Manager CMIP Common Management Information Protocol CMIS Common Management Information Service CMISE Common Management Information Service Element CORBA Common Object Request Broker Architecture DMTF Distributed Management Task Force DMI Desktop Management Interface DOM Document Object Model DNS Domain Naming Service ENF Event Notification Faciliy FDDI Fiber Distributed Data Interface FTP File Transfer Protocol GDMO Defining Managed Objects GIF Graphic Interchange Format GUI Graphical User Interface HMMP HyperMedia Management Protocol HMMS HyperMedia Management Object 9 HTML Hypertext Markup Language HTTP Hypertest Transfer Protocol IAB International Architecture Board IANA Internet Assigned Number Authority ICMP Internet Control Message Protocol IETF Internet Engineering Task Force IIOP Internet Inter-ORB Protocol IP Internet Protocol IPX Internetwork Packet Exchange ISO International Standard Organization ITU-T International Telecomunications Union-Telecomunications Sector JDBC Java Database Connectivity JMX Java Management Extension JPEG Joint Photographic Experts Group MAC Medium Access control MIB Management Information Base MIF Management Information Format MIME Multipurpose Internet Mail Extension NMF Network Management Forum NCSA National Center Supercomputing Applications NSF National Science Foundation NSFNET National Science Foundation Network ODBC Open Database Conectivity ORB Object Request Brocker OSI Open System Interconnection PERL Pratical Extraction and Report Language PDU Protocol Data Unit PNG Portable Network Graphics RARP Reverse Addres Resolution Protocol RFC Request for Comments RMON Remote Network Monitoring ROSE Remote Operations Service Element SDK System Developer Kit 10 SGML Standard Generalized Markup Language SMI Structureof Management Information SNMP Simple Network Management Protocol SPX Sequence Packet Exchange SSI Server Side Includes TCL Tool Control Language TCP Transmission Control Protocol TMN Telecommunications Management Protocol UDP User Datagram Protocol UML Uniform Modeling Language URL Uniform Resource Location VBNS Very High Speed Backbone Network System VRML Virtual Reality Modeling Language WEBEM Web-based Enterprise Management WWW World Wide Web XML Extensible Markup Language 11 1 INTRODUÇÃO As tecnologias baseadas na arquitetura WEB estão contribuindo para o surgimento de um número crescente de aplicações. As principais características destas aplicações são o fácil acesso de qualquer lugar da Internet e das rede corporativas e a tendência de redução de custos com a utilização de interfaces baseadas em browsers WEB. A Internet e as tecnologias WEB estão influenciando o cotidiano das pessoas de uma forma nunca antes vista. Mesmo quando uma pessoa tem em mãos uma revista, um livro ou um jornal, acabará identificando uma referência a um site na Internet ou um endereço de E-mail. No site do seu banco por exemplo, esta pessoa pode realizar a maioria das suas transações bancárias, pagar as suas contas e impostos, sem necessidade de sair de casa. Sem contar ainda com a possibilidade de declarar o imposto de renda; acompanhar noticiários; participar de um leilão online; comprar um livro entre outras inúmeras atividades, que cada vez mais fazem parte da rotina dessas pessoas e das empresas. No universo corporativo diversas aplicações para administração e gerenciamento de redes e sistemas baseados na arquitetura WEB estão surgindo, caracterizando a tendência de utilização destas aplicações somada a necessidade de redução dos custos envolvidos na implementação de sistemas de gerência corporativa. A gerência corporativa baseada em tecnologias WEB é representada por um misto de tecnologias, protocolos e linguagens que podem ser implementadas de forma pontual nas soluções de administração e gerência, ou podem servir de base para novas plataformas de gerência que estão surgindo. Algumas iniciativas apontam para o surgimento de novos modelos de frameworks de gerência corporativa baseados nesta arquitetura. Este trabalho tem como objetivo analisar a utilização das tecnologias WEB em sistemas de gerência corporativa. 12 No capítulo 2 deste trabalho é apresentado o conceito de gerência corporativa [HER99][MUR98][STA96], seus benefícios e uma visão geral sobre os frameworks de gerência convencionais e áreas da gerência corporativa. No capítulo 3 são detalhadas as áreas [DMT99][HER99][LEI96][MUR98][STA96][THE99] de gerência utilizados e padrões para cada implementação. No capítulo 4 é apresentado o conceito de gerência via WEB [HER99] e os modelos de implementação de gerência via WEB [HER99]. Nesta capítulo são ainda analisadas a evolução da Internet e Serviços WEB e as tecnologias [HER99] utilizadas na implementação da gerência corporativa via WEB. No capítulo 5 é apresentada a iniciativa JMX da Sun Microsystems para a gerência corporativa via WEB. No capítulo 6 é apresentada a iniciativa WEBEM do Distributed Management Task Force (DMTF) como solução para a integração dos sistemas convencionais de gerência corporativa aos sistemas de gerência via WEB. E finalmente, no capítulo 7 é estudada a solução de gerência corporativa Unicenter TNG da empresa Computer Associates. Neste capítulo esta solução é estudada sobre a ótica da implementação de funcionalidades de gerência via WEB e validação dos conceitos apresentados nos capítulos anteriores deste trabalho. 13 2 GERÊNCIA CORPORATIVA 2.1 Conceito de Gerência Corporativa A gerência corporativa é conceituada em [HER99] como um conjunto de aplicações associadas a softwares e hardwares que tem como objetivo monitorar e controlar os recursos de informática de uma empresa. A principal função dos sistemas de gerência corporativos é garantir a comunicação das informações da empresa de forma eficiente e segura. Integrando aplicações de forma a se obter o gerenciamento distribuído dos recursos de informática. O maior desafio da gerência corporativa é o monitoramento e controle das diversas plataformas de hardware e software existentes e emergentes. Somado a complexidade de gerenciamento dos mais diversos sistemas, aplicações e serviços existentes em uma rede heterogênea. A gerência corporativa [HER99] abrange diversas áreas de gerência definidas em camadas a partir da gerência de redes, conforme descrito na figura 2.1, seguida da gerência de sistemas, aplicações, serviços e outras disciplinas de gerência que em conjunto definem todos os recursos corporativos que necessitam ser gerenciados. Redes Sistemas Aplicações Serviços Outras Figura 2.1 – Áreas de Gerência Corporativa 14 2.2 Benefícios da Gerência Corporativa Entre os vários benefícios decorrentes da correta implementação da Gerência corporativa destacam-se [HER99]: Alta disponibilidade dos recursos de informática, através da redução dos gargalos de redes, sistemas, aplicações e serviços determinando de forma pró-ativa os diversos tipos de gargalos antes de sua ocorrência; Melhoria do fluxo de informações na empresa, através do aumento da produtividade na criação, distribuição, utilização, impressão, guarda e backup; Aumento da Segurança, através da adição de níveis de segurança para a manutenção de dados de natureza crítica e confidencial. Incluindo a implementação de políticas de segurança de acesso. Redução do custo total de propriedade de todos os recursos de informática, através da melhoria da manutenção, diminuição dos custos de gerenciamento que seria feito de forma personalizada; Aumento da flexibilidade dos procedimentos operacionais, através da simplificação da execução de procedimentos operacionais e tarefas de manutenção usuais como a migração para uma nova plataforma de hardware ou software, realização de inventários, distribuição de softwares entre outras. Para que todos os benefícios da gerência corporativa possam ser efetivamente implementados, é necessário definir quais são as políticas da empresa. Isto irá facilitar a apresentação e definição dos objetivos da empresa. A figura 2.2 descreve a política de gerência corporativa como parte de um grupo de políticas que pode definir como toda a empresa funciona, Incluindo como a tecnologia de rede é utilizada. A política de gerência corporativa é constituída de dois importantes aspectos: a funcionalidade de gerenciamento e o uso de frameworks baseados em padrões abertos. A funcionalidade de gerenciamento trata dos detalhes 15 administrativos e operacionais de cada dispositivo ou recurso gerenciado, como cada recurso é gerenciado e a que nível é gerenciado. O framework é definido pelo tipo específico de padrão empregado. Os padrões predominantes em uso atualmente incluem SNMP, CMIP, TMN, DMI entre diversos outros, utilizados pelos fornecedores de soluções de gerência corporativa para a construção de seus produtos em uso comercial. Politicas da Empresa Politicas de Gerência Corporativa Funcionalidades Frameworks Baseados em padrões abertos Outras Políticas da empresa (Segurança, etc.) Figura 2.2 – Políticas de Gerência Corporativa 2.3 Sistemas Convencionais de Gerência Corporativa Existem hoje no mercado diversos sistemas convencionais de gerência corporativa, estes sistemas são conhecidos como frameworks. Estes frameworks são baseados em padrões abertos, com suporte a diversas plataformas de hardware e software, em ambientes de rede heterogênea. Nos últimos 10 anos houve um grande crescimento e amadurecimento dos sistemas de gerência corporativa. Neste período foram adicionados diversos tipos de gerenciamento e novas funcionalidades. 16 O Internet Engineering Task Force (IETF) tem recomendado o Padrão SNMP para a implementação da gerência de redes com TCP/IP por quase toda a última década. Da mesma forma os frameworks de gerência de redes e sistema da ISO com os protocolos CMIS/CMIP, tem sido utilizado nas redes OSI e nas grandes companhias de telecomunicações por toda a última década. O crescimento da WEB reativou a iniciativa e o interesse nos frameworks DMTF para gerência de sistemas utilizando o padrão DMI. Todos estes frameworks de gerência têm estendido sua atuação sobre a gerência de redes de dados e telecomunicações. E adicionalmente aos padrões utilizados vários outros consórcios e fóruns estão desenvolvendo novos frameworks e APIs, promovendo desta forma o aumento da abrangência da gerência corporativa de redes e sistemas. O Network Management Forum (NMF) desenvolveu [HER99] um modelo de referência para o TMN framework que representa muito bem a gerência corporativa. O padrão TMN utiliza uma pirâmide para representar os vários níveis dos domínios de gerência e sua inter-relação. Na figura 2.3, no nível mais baixo são representados os dispositivos gerenciados de redes. Gerência de Negócio Gerência de Serviços Gerência de Redes Gerência de Sistemas Gerência de Dispositivos de rede Figura 2.3 – Domínios de Gerência Corporativa 17 Na segunda camada são representadas as gerências de sistemas e redes. Na terceira e quarta camadas, são representadas a gerência de serviços e negócios da empresa. Este modelo foi usado primeiramente para a gerencia de redes de telecomunicações, contudo com a convergência dos dados com as telecomunicações, este modelo pode ser utilizado para cobrir todos os dispositivos de rede, sistemas, serviços e o negócio das empresas. A gerência de redes é responsável pela gerência dos dispositivos da rede estendendo a gerência a si mesma. A gerência de sistema trata dos recursos disponíveis numa determinada rede. Incluindo a gerência de aplicações que estão sendo executadas num determinado sistema da rede. O grau de complexidade aumenta com centralização da gerência de serviços específicos, como níveis de serviço, políticas e conhecimento, de forma a se ter uma visão de gerência global do negócio da empresa. A figura 2.4 representa a relação entre os tipos de Gerência para cada dispositivo gerenciado da rede. Outras áreas de Gerência Outras áreas de Gerência Gerência de Serviços Gerência de Serviços Gerência de Aplicações Gerência de Aplicações Gerência de Sistemas Gerência de Sistemas Gerência de Redes Figura 2.4 - Relação entre as áreas de gerência 18 3 AS ÁREAS DE GERÊNCIA E SEUS PADRÕES 3.1 Gerência de Redes Conforme detalhado em [MUR98][STA96], a gerência de redes é responsável pela monitoração, controle e configuração de dispositivos de redes. A ISO definiu cinco principais áreas funcionais de gerência que são utilizadas pelos frameworks padrões IETF e OSI para as aplicações de gerência de redes. Estas áreas funcionais estão definidas da seguinte forma [MUR98] [STA96]: Gerência de Configuração, responsável pelo reconhecimento dos dispositivos da rede, o seu mapeamento e como cada dispositivo é configurado para operar; Gerência de Falhas, responsável pela detecção, localização e correção dos problemas de hardware e software da rede; Gerência de Performance, responsável pela monitoração da performance e sintonia da rede quando necessário. Trata da eficiência do uso da rede e seus recursos; Gerência de contabilização, responsável pela contabilização do uso dos recursos de rede por usuário e aplicação; Gerência de Segurança, responsável pela manutenção da privacidade, definição de políticas e administração da segurança de acesso aos recursos de rede e informações confidenciais da empresa. Os frameworks IETF e OSI são representados respectivamente pelos sistemas baseados em protocolos SNMP e CMIP. Estes protocolos apesar de terem sido criados com propósitos e padrões diferentes, apresentam algumas características comuns destacadas abaixo: Possuem uma definição de como as informações de gerência são estruturadas; Possuem um conjunto de objetos gerenciados; Possuem um protocolo de gerência; 19 Cada framework de gerência de redes possui uma notação padrão para a definição da estrutura de informação de gerência. Esta notação é utilizada para a definição do escopo dos objetos de gerência relevantes para cada dispositivo gerenciado. O protocolo de gerência por sua vez define um conjunto de regras que permitem dispositivos de gerência, conhecidos como gerentes, se comunicarem com os dispositivos gerenciados ou agentes, com o propósito de realizar o intercâmbio das informações de gerência. O modelo genérico de arquitetura de gerência de redes descrito em [MUR98], utilizado pela maioria dos frameworks convencionais e proprietários de gerência de redes é apresentado na figura 3.1. Este modelo representa a estrutura de um sistemas de gerência de redes, com os componentes individuais de cada sistema e a inter-relação entre estes componentes. Dispositivo de rede Estação de gerência de rede Dispositivo de rede Protocolo de gerência de redes Agente de gerência Pilha de protocolos e drivers Pilha de protocolos e drivers Rede Figura 3.1 – Modelo de Gerência de Redes Neste modelo os dispositivos de rede são divididos em dispositivos de gerência e dispositivos gerenciados. Os protocolos de rede são representados pelos protocolos de gerência de redes, SNMP para os frameworks padrão IETF e CMIP para os framewoks padrão OSI. Os dispositivos de rede possuem softwares de gerência de redes, incluindo os softwares para os agentes e gerentes com suas 20 implementações necessárias para o controle dos objetos gerenciados. Neste modelo ainda são definidas as pilhas de protocolos e dispositivos específicos para cada implementação. Os dispositivos de redes SNMP utilizam normalmente, o conjunto de protocolos TCP/IP, mais especificamente o protocolo UDP, como protocolo de redes e comunicação das aplicações de gerência. Os dispositivos CMIP utilizam a pilha de protocolos OSI para o mesmo fim. 3.1.1 SNMP O Simple Managemente Network Protocol (SNMP) é o protocolo padrão para o gerenciamento de redes, permitindo o controle e monitoração de uma rede e seus dispositivos. Este protocolo compõem, conforme descrito anteriormente, os frameworks de gerência de redes padrão IETF. O SNMP foi inicialmente desenvolvido em 1988 [STA96] como uma pequena solução para gerenciamento de dispositivos conectados a Internet. O plano inicial era substituir o SNMP pelo padrão OSI depois que ele fosse desenvolvido e implementado. Este plano não teve sucesso pois a implementação do padrão OSI era muito lenta e a esta altura o protocolo SNMP já havia se proliferado detendo o apoio da industria. Como resultado esta substituição acabou não ocorrendo e o SNMP tornou-se padrão para as redes baseadas no conjunto de protocolos TCP/IP como a Internet, o CMIP tornou-se padrão inicialmente para as grandes redes de telecomunicações e outras grandes organizações. Originalmente o SNMP oferecia suporte somente para o gerenciamento de bridges, routers e gateways, mas rapidamente este suporte foi estendido para todo o tipo de dispositivo de rede. Os dispositivos de redes SNMP utilizaram originalmente o conjunto de protocolos TCP/IP sobre redes ethernet, como protocolo de redes e comunicação das aplicações de gerência, no entanto conforme descrito em [MUR98] existem implementações do SNMP para suporte a Novell IPX/SPX, ApleTalk DDP e outras tecnologias de enlace como ARCNET, ATM e FDDI. A primeira versão do SNMP conhecida como SNMPv1 continua sendo a versão completa padronizada para a Internet. Diversas tentativas de especificação 21 da segunda versão falharam, resultando apenas em especificações de nível histórico ou experimental. Segundo o IETF cada especificação pode apresentar os níveis proposta, rascunho, completa, experimental e histórica. O SNMPv3 é a terceira versão do SNMP em desenvolvimento com a proposta de adicionar características necessárias para o suporte dos ambientes de Internet atuais. Esta versão está passando para o nível rascunho e as principais propostas são a segurança e novas implementações para administração remota. Nome Nível Descrição SNMPv1 Completa A versão Original, definida pela RFC 1157 [maio de 1990]. SNMPsec Histórica A primeira tentativa de adição de Segurança ao SNMPv1, definida pelas RFCs 1351 [julho de 1992], 1352 [julho de 1992] e 1353 [julho de 1992]. SNMPv2p Histórica Outra tentativa de adição de Segurança ao SNMP, definida pelas RFCs 1441[abril de 1993], 1445 [abril de 1993], 1446 [abril de 1993], 1448 [abril de 1993] e 1449 [abril de 1993]. SNMP2c Experimental Foi uma tentativa de combinar o protocolo de operação do SNMPv2 com com a segurança do SNMPv1, definida pelas RFCs 1901 [janeiro de 1996] , 1905 [janeiro de 1996] e 1906 [janeiro de 1996]. SNMPv2u Experimental Foi uma tentativa de oferecer segurança baseada em nas operações de nomes de usuários e protocolos do SNMPv2, definida pelas RFCs 1905 [January 1996],1906 [janeiro de 1996],1909 [fevereiro de 1996] e 1910 [fevereiro de 1996]. SNMPv2* Experimental Foi uma tentativa de adicionar as melhores características do SNMPv2p e SNMPv2u, definida pelo documento encontrado no site SNMP Research. SNMPv3 Proposta Proposta atual para a adição de segurança e administração remota ao SNMP, definida pelas RFCs 2271 [janeiro de 1998] e 2275 [janeiro de 1998]. Figura 3.2 – Evolução da Versões do protocolo SNMP 22 Na figura 3.2 está descrita a evolução das versões do SNMP. 3.1.1.1 Arquitetura SNMP O modelo referencial apresentado na figura 3.3 descreve os componentes da arquitetura SNMP. Incluindo a estação de gerência, o agente de gerência, a base de informação e o protocolo de gerência. Conforme detalhado em [STA96] a estação de gerência é caracterizada como uma interface para a aplicação de gerência, com um conjunto de aplicações para análise de dados e identificação de falhas; interface para monitoração e controle da rede; um banco de dados com as informações extraídas das MIBs dos dispositivos gerenciados na rede. Os agentes quando instalados nos dispositivos de redes como hosts, bridges, routers e hubs, respondem por solicitações de informações e ações efetuadas a partir da estação de gerência e pode de forma assíncrona enviar informações importantes para esta mesma estação de gerência sem a necessidade de solicitação. Os recursos de uma rede são representados como objetos, cada objeto é uma variável de dados que representa um aspecto do agente gerenciado. A coleção destes objetos é referenciada como base de informação de gerência MIB. A estação de gerência executa as tarefas de monitoração buscando informações dos objetos da MIB. A estação de gerência pode fazer com que o agente realize uma ação no dispositivo gerenciado ou modificar uma configuração alterando o valor da variável específica no agente do dispositivo gerenciado. A estação de gerência e os agentes são ligados pelo protocolo SNMP. Este protocolo possui a capacidade de realizar as operações de get, habilitando a estação de gerência a requisitar os valores dos objetos no agente; set, habilitando a estação de gerência a alterar valores dos objetos no agente; trap, habilitando o agente a informar à estação de gerência sobre eventos importantes. 23 Gerente de rede Interface de usuário Dispositivo gerenciado Aplicação de gerência MIB Estação Protocolo SNMP Estação Gerência Agent Protocolos de Rede Agent MIB Protocolos de Rede Rede Figura 3.3 – Modelo de Referência SNMP 3.1.1.2 SMI A estrutura de informação de gerência (SMI) descreve como os objetos de gerência das MIBs são definidos e codificados para serem transferidos sobre o protocolo SNMP. Esta estrutura foi definida pela primeira vez em agosto de 1988 e obteve o nível completo na RFC 1155. Melhorias na definição de objetos e formato do mecanismo de trap, foram incluídas em 1991 nas RFCs 1212 e 1215. Conforme detalhado em [MUR98][STA96], a SMI identifica quais os tipos de dados que podem ser utilizados em uma MIB e especifica como os recursos da MIB são representados e nomeados. A SMI se caracteriza pela definição de tipos de dados simples do tipos escalar e tabelas bidimensionais. Os tipos de dados complexos são evitados para simplificar a implementação. A estrutura de informação de gerência possui três maneiras de representar as informações de gerência de forma padronizada: 24 Fornecendo técnicas padronizadas para definição da estrutura de uma determinada MIB; Fornecendo técnicas padronizadas para definição de objetos individuais, sua sintaxe e valores; Fornecendo técnicas padronizadas para a codificação dos valores dos objetos; 3.1.1.2.1 Estrutura da MIB Conforme detalhado em [STA96] todos os objetos gerenciados de uma MIB são representados na forma de uma árvore obedecendo uma disposição hierárquica. Os objetos gerenciados são descritos através de uma linguagem chamada ASN.1, esta linguagem define uma forma de representação padrão para as informações de gerência que são trafegadas na rede. Associado a cada tipo de objeto da MIB existe um identificador do tipo ASN.1 object identifier que serve para nomear cada objeto. Este nome serve para identificar também a estrutura dos grupos de objeto. Conforme descrito na figura 3.4, o conjunto de objetos possui uma estrutura em árvore, começando a partir da raiz existem três nós principais no primeiro nível, o nós iso,ccitt e joint-iso-ccitt, cada um desses nós é administrado pela organização específica. Dentro do nó iso, uma das ramificações corresponde a dod, Departamento de Defesa Americano, que criou o primeiro nó para uso do IAB (Internet). As outras são para uso de outras organizações. Neste caso o object identifier corresponde ao valor 1.3.6.1. Este valor irá servir como prefixo para os nós localizados nos níveis mais baixos da árvore. O nó Internet é subdividido nos nós diretory, management, experimental e private. O nó diretório está reservado para os serviços de diretório OSI a serem implementados futuramente na Internet. 25 root-node ccitt (0) iso (1) aut (1) joint-isso-ccitt (2) bod (2) org (3) dod (6) Internet (1) diretory (1) management (2) mib-2 (1) System (1) Interfac esAt (2)(3) experimental (3) private (4) enterprises (1) Figura 3.4 – Objetos da MIB Ip (4) Icmp (5) (6) Tcp Udp (7) Egp (8) Transm ission Snmp (10) (11) 26 O ramo management contém os objetos definidos pelo IAB. Sobre este ramo da árvore , no ramo 1 está definida a MIB SNMP padrão. Incluindo todos os objetos das MIBs padrões, incluindo a MIB-II que começam com o mesmo prefixo do object identifier: 1.3.6.1.2.1. O Internet Assigment Number Authority (IANA) é responsável pela administração deste ramo. Os objetos utilizados para testes e pesquisa podem ser definidos no ramo experimental, cujo prefixo object identifier corresponde a 1.3.6.1.3..1. Este ramo também é administrado pelo IANA. O ramo private possui atualmente apenas um nó definido, o nó enterprise. Este nó é utilizado pelos fornecedores para a melhoria do gerenciamento de seus dispositivos e compartilhamento de informações. Cada companhia interessada pode requerer um número ao IANA para a inclusão de seus objetos. 3.1.1.2.2 Descrição dos Objetos da MIB Todo objeto da MIB obedece uma definição formal utilizando a linguagem ASN.1. A sintaxe define uma estrutura abstrata que corresponde a cada tipo de objeto específico. Quatro atributos padrões devem ser definidos para cada objeto para que estes sejam declarados de forma apropriada em uma MIB SNMPv1: Syntax type; Acces mode; Status; Name value. O atributo syntax type é uma das opções do conjunto de objetos ASN.1 predefinidos. As opções podem ser subdivididas nas categorias simple, applicationwide e simple-constructed. A categoria simple consiste de INTEGER, OCTET STRING, OBJET IDENTIFIER E NULL. A categoria application-wide engloba IpAddress, Netwok Address, Counter, Gauge, TimeTicks e Opaque. A categoria simple-constructed contém listas e tabelas. 27 O atributo access mode é examinado pelo agente a cada request de informações de um objeto. Os valores permitidos são read-only, read-write, writeonly e not-accessible. O atributo status define o suporte requerido para a implementação do objeto. O suporte pode ser mandatory ou optional. Um objeto pode ser especificado como deprecated, neste caso indica que o objeto deve ser suportado, mas não será suportado na versão posterior. O objeto pode ser ainda especificado como obsolete, indicando que o sistema de gerência não implementa mais este objeto. O atributo name value é um nome textual, chamado object descriptor que eqüivale ao seu object identifier correspondente. 3.1.1.2.3 Codificação de Objetos Os valores dos objetos definidos e declarados são transmitidos do agente para o gerente e vice-versa, utilizando uma regra de codificação da linguagem ASN.1 para a sintaxe do object type. A notação da sintaxe de transferência utilizada no SNMP é a Basic Encoding Rules (BER). A BER especifica como a sintaxe é codificada em octetos e transferida pela rede. A BER é um algoritmo que interpreta os valores ASN.1 e codifica os bits em octetos apropriados para serem transmitidos pela rede. 3.1.1.3 Protocolo SNMP O protocolo SNMP é definido em [STA96] como um protocolo de aplicação para serviço de gerência de redes. O SNMP foi projetado para ser um protocolo de camada de aplicação, integrante do conjunto de protocolos TCP/IP. Operando desta forma sobre o protocolo UDP. O SNMP é um protocolo de requisição e resposta assíncrono que atende a estação de gerência e os agentes. O SNMPv1 suporta cinco tipos de mensagens que contém o comando e os dados associados. A estação de gerência tem a capacidade de transmitir mensagens com três diferentes PDUs: Get-Request- PDU, GetNextRequest-PDU e SetRequest-PDU. O agente 28 pode transmitir mensagens com dois diferentes PDUs: GetResponse-PDU processando requisições provenientes da estação de gerência e mensagens TrapPDU em situações onde o agente descobriu um evento predefinido que precisa ser notificado ao gerente. O SNMP faz o intercâmbio das informações de gerência através da troca de mensagens do seu protocolo. Cada mensagem é representada de forma independente em um único datagrama do serviço de transporte UDP. Cada mensagem contém a identificação da versão, a comunidade SNMP e o PDU. A comunidade SNMP identifica um grupo particular de gerentes e agentes. Os membros de uma comunidade forçam a autenticação utilizando um esquema de password não encriptada conhecida como trivial authentication scheme. A comunidade public é geralmente utilizada como padrão nas configurações. 3.1.1.4 RMON Conforme detalhado em [STA96], o RMON foi um dos mais importantes padrões incorporadas ao protocolo SNMP. O RMON permite a monitoração de várias redes e segmentos identificando possíveis gargalos ou problemas. O RMON permite o controle de operação da rede através da análise do tráfego, permitindo a distribuição da carga dos dispositivos existentes na rede. Os dados fornecidos pelas variáveis RMON podem ser utilizados para o planejamento de capacidade e simulações de rede. A gerência pró-ativa de performance é suportada através da utilização das estatísticas de performance na configuração de alarmes, coleta de dados e análise de resultados na busca de possíveis problemas. O RMON é implementado normalmente através de dispositivos que ficam “ouvindo” o tráfego da rede. Estes dispositivos reúnem e armazenam dados importantes sobre a atividade da rede que podem ser utilizados para o ajuste de performance da rede. Uma classe especial de dispositivos chamados probes ou 29 sondas tem sido dedicados para este propósito. Estes dispositivos são configurados normalmente em cada seguimento da rede, com o objetivo de coletar informações definidas em suas MIBs. Estas informações incluem banda disponível, contadores de erros, alarmes, histórico de eventos, entre outros. Conforme descrito em [STA96], a especificação RMON é antes de tudo uma definição de MIB. Desta forma são definidas funções de monitoração de redes e interfaces de comunicação entre a estação gerente e o monitor remoto. A RFC 1757 lista os objetivos projetados para um dispositivo RMON: Operação off-line, Um agente RMON continua coletando informações mesmo quando a conexão com estação gerente é perdida; Monitoração pró-ativa, caso ocorra uma falha , o monitor pode notificar a estação de gerência e fornecer informações úteis para o diagnóstico da falha; Detecção e informação de problemas, o agente pode ser configurado para informar condições de erros importantes; Dados adicionais, uma série de dados adicionais específicos podem ser coletados pelo agente RMON para a estação gerente. Muitos destes dados não estão disponíveis para a estação gerente quando esta não está conectada diretamente em uma determinada sub-rede; Múltiplos gerentes, o agente RMON deve suportar a comunicação com mais de uma estação gerente. O RMON nasceu oficialmente em 1991 com a capacidade de monitorar as camadas 1 e 2. A primeira versão é chamada RMON-1 e está definida na RFC 1757. A versão RMON-2 definida na RFC 2021 é uma extensão natural da versão RMON-1. A versão RMON-2 especifica a gerência das camadas OSI três a sete permitindo a monitoração do tráfego dos protocolos IP, TCP, UDP HTTP e outros protocolos de aplicação. A figura 3.5 descreve a atuação das versões do protocolo RMON. 30 Sonda RMON Gerente de rede Aplicação Apresentação Gerente RMON-2 Sessão SNMP Transporte Rede Enlace RMON-1 Fisica Rede Figura 3.5 – Versões do Protocolo RMON 3.1.2 CMIP A arquitetura de gerência de rede OSI, referenciada por CMIP e detalhada em [HER99][LEI96], foi projetada inicialmente para dispositivos que utilizassem o conjunto de protocolos OSI. E faz parte de um amplo conjunto de padrões que vem sendo desenvolvidos para uso no modelo referencial OSI. Estes padrões são definidos em mais de trinta documentos produzidos pela ISO. O padrões mais importantes são descritos nos seguintes documentos: OSI Management Framework (IS 7498-4); Common Management Information Service (IS 9595); Common Managemente Information Protocol (IS 9596); Structure of Management Information (DIS 10165); System Management Overview (DIS 10040); Sysatem management Funtional Areas (DIS 10164). 31 Diferente do padrão SNMP, a arquitetura de gerência de redes OSI é completamente orientada a objetos e fornece um conjunto de serviços através do modelo de informação, modelo de organização, modelo de comunicação e modelo funcional. Conforme descrito na figura 3.6, a estrutura do protocolo de gerência OSI segue o modelo referencial OSI. Processos de Aplicação de Gerência CMISE Camada 7 ACSE Camada 6 ROSE Apresentação ISO Camada 5 Camada 4 Sessão ISO Transporte ISO Camada 3 Rede ISO Camada 2 Enlace ISO Camada 1 Física Figura 3.6 – Estrutura do protocolo CMIP O modelo de informação inclui uma estrutura de gerência de informação, uma hierarquia de nomes, e uma definição de objetos. A linguagem ASN.1 é utilizada para a descrição das informações. O framework OSI é organizado da mesma maneira que o SNMP, com a estrutura de gerente e agente. Da mesma forma que o SNMP o protocolo CMIP é implementado na camada de aplicação do modelo OSI. O modelo de comunicação utiliza o conjunto de protocolos OSI com serviços orientados a conexão. 32 Serviço Descrição M-INITIALIZE Serviço de associação de gerenciamento utilizado para o estabelecimento da associação M-TERMINATE Serviço de associação de gerenciamento utilizado para finalizar a associação M-ABORT Serviço de associação de gerenciamento utilizado para uma parada não confirmada M-EVENT-REPORT Serviço de associação de gerenciamento utilizado para sinalizar um evento predefinido M-GET Serviço de associação de gerenciamento utilizado para a leitura de um atributo de um objeto M-CANCEL-GET Serviço de associação de gerenciamento utilizado para o cancelamento de uma leitura solicitada M-SET Serviço de associação de gerenciamento utilizado para modificar um atributo de um determinado objeto M-ACTION Serviço de associação de gerenciamento que permite que o gerente execute uma determinada operação num determinado recurso M-CREATE Serviço de associação de gerenciamento que permite a criação de uma determinada instância de objeto M-DELETE Serviço de associação de gerenciamento que permite a destruição de um determinada instância de objeto Figura 3.7 – Serviços CMIP O modelo funcional inclui as áreas funcionais de gerência vistas anteriormente, falha, configuração contabilização, performance e segurança. A definição dos serviços é chamada de Common Management Information Services (CMIS). Estes serviços são apresentados na figura 3.7. 33 O protocolo CMIP define como devem ser implementados os serviços CMIS especificando as PDUs e a sintaxe utilizada na codificação de informações do protocolo. Três camadas do protocolo OSI necessitam ser implementadas : Common Management Information Service Element (CMISE); Association Control Service Element (ACSE); Remote Operations Service Element (ROSE). O elemento CMISE permite o acesso ao serviço de gerência CMIS que por sua vez utiliza o CMIP para a comunicação com o agente e o gerente. O ACSE e ROSE são utilizados pelo CMISE, sendo necessários para o controle das associações de aplicação. O ACSE gerencia a abertura e fechamento da comunicação do agente e do gerente e o ROSE gerencia a solicitação e resposta quando uma associação é estabelecida. 3.1.3 TMN O framework TMN engloba um conjunto de especificações que tratam da gerência e controle de recursos e dispositivos de redes numa rede de comunicações. Conforme detalhado em [HER99] o TMN é orientado a objeto e inicialmente utilizava o padrão de construção OSI, com a especificação de MIBs e objetos de gerência, agentes e gerentes CMIP, e os protocolos OSI para a troca de informações de gerência. O framework TMN possui sua própria terminologia. As áreas funcionais de redes de telecomunicações são definidas por operação, administração, manutenção e provisioning. A ITU-T, antiga CCITT, começou o trabalho com o TMN em 1985. O TMN é definido atualmente pelos documentos série M.3000 ITU-T. A lista de alguns deste documentos é apresentada baixo. 34 3.2 Overview of TMN Recomendations (M.3000); Principles for a Telecomunications Management Network (M.3010); TMN Interface Specification Methodology (M.3020); Catalog of TMN Management Information (M.3180); TMN Management Services Overview (M.3200); TMN Management Capabilities Presented at the F Interface (M.3300); TMN Management Functions (M.3400) Gerência de Sistemas A área de gerência de sistemas trata especificamente dos componentes dos servidores e computadores pessoais. A gerência de rede trata da rede como um todo, por outro lado a gerência de sistemas trata do que está dentro de cada dispositivo de rede. A gerência de sistemas [HER99] é responsável pelas seguintes tarefas: Inventário de software e status dos sistemas operacionais e aplicações; Inventário de hardware e status de CPU, Memória, discos e periféricos entre outros; Controle de licenças de softwares; Distribuição e atualização automática de softwares; Controle remoto de Servidores e estações; Outras tarefas relativas a sistemas e dispositivos específicos. 3.2.1 DMI O Distributed Management Task Force (DMTF) é um dos grupos mais fortes na criação de padrões de gerência de sistemas. Conforme detalhado em [DMT99][HER99] o DMTF é um consórcio formado por diversos fornecedores que 35 definiram uma interface de programação padrão para a gerência de estações do tipo DOS-Windows, permitindo a gerência destas estações e sua integração com outros frameworks como SNMP. A especificação da interface independe do sistema operacional de rede e protocolo de gerência, isto irá permitir que o acesso das informações das estações gerenciadas seja feito através do protocolo SNMP ou através de técnicas via WEB. O consórcio DMTF foi formado em maio de 1992, e compreendia inicialmente os seguintes membros: Intel Corporation; Novell, Inc. SunConnect; Microsoft Corporation; SynOptcs Communications, Inc. Outras companhias entraram para o consórcio, a lista completa pode ser encontrada no site www.dmtf.com. Entre elas: International Business Machines Corporation; Digital Equipament Corporation; Hewlett-Packard. A interface de programação padrão define como o protocolo de gerência e outras aplicações podem acessar as informações das estações. A arquitetura da interface DMTF e apresentada na figura 3.8. Embora o foco principal seja o SNMP, futuramente serão incluídos outros protocolos de gerência e aplicações incluindo a gerência via WEB. 36 SNMP Outras Aplicações Management Interface (MI) DMI Service Layer Component Interface (CI) Componentes de Hardware Aplicações de Software Sistemas Operacionais Placas Adicionais ESTAÇÃO Figura 3.8 – Arquitetura da Interface DMTF A Desktop Management Interface DMI, consiste da DMI Service Layer e das interfaces MI e CI. A Management interface disponibiliza o acesso padronizado para as aplicações de gerência solicitarem e receberem informações da DMI Service Layer. A Component Interface caracteriza o acesso comum para os vários componentes de hardware e software que podem residir na estação, permitindo a gerência através de produtos de vários fornecedores. A Component Interface foi definida para implementar facilmente as versões dos produtos de hardware e softwares atuais e futuros. Na DMI Service layer vários serviços são implementados. Estes serviços são necessários para os comandos e respostas para a interface de gerência e para a configuração e obtenção de informações de hardware e software a partir da Component Interface. 37 3.3 Gerência de Aplicações A gerência de aplicação [HER99] corresponde ao controle, monitoração e configuração de aplicações que são executadas num determinado host conectado a rede. Esta área de gerência é muito mais complexa que a gerência de sistema, pois existem mais versões de aplicações sendo executadas do que sistemas. E diversas variáveis precisam ser consideradas para a implementação deste tipo de gerência, incluindo a lista de executáveis, arquivos de configurações associados, métodos de comunicação entre processos, versões, compatibilidade entre plataformas entre outras. 3.3.1 ARM A mais importante iniciativa na área de gerência de aplicação é a API Aplication Response Measurement (ARM) , definida em 1996 e mantida pela ARM Working Group. Diversos exemplos de agentes, bibliotecas e programas podem ser encontrados no site www.cmg.org. Conforme estudado em [HER99] a API ARM permite que diversas aplicações de cliente e servidor incluam chamadas de funções simples em seus códigos de forma a prover informações que podem ser utilizadas para monitoração, medição de utilização entre outras. A arquitetura ARM utiliza, também, o conceito de agente e gerente. A figura 3.9 descreve como os servidores e clientes utilizam a API para comunicar as informações de gerência de aplicação com as aplicação de gerência de aplicação. 3.4 Gerência de Serviços A gerência de serviços, incluindo a gerência de acordo de níveis de serviço, descreve como são definidos, monitorados e apresentados, os serviços contratados externamente pela empresa e os serviços utilizados internamente. Os serviços que 38 podem ser gerenciados incluem a utilização de canais de voz, tempo de resposta diversos, acesso a Internet, carga de utilização de LANS e WANS, utilização de Emails, e outros serviços que possam ser quantificados. Os acordos de nível de serviço são medidos em tempo de resposta, disponibilidade, utilização número de pacotes entre outros. A gerência de serviço é a maneira principal de avaliar a qualidade de serviços e os custos envolvidos na empresa. Aplication Response Measurement ARM Agent ARM Agent ARM API ARM API stop start stop Server start Client Aplicações de Negócio Aplicações de Negócio Rede Figura 3.9 – Arquitetura ARM 39 4 GERÊNCIA VIA WEB 4.1 Conceito de Gerência via WEB A Gerência via WEB é definida em [HER99] como a utilização de tecnologias WEB para a realização da gerência corporativa. A gerência via WEB é muito nova, existem várias frentes de trabalho definindo padrões, frameworks, modelos de objetos, protocolos e APIs, implementando códigos e testes de produtos. Para que a gerência via WEB se torne realidade muitas pessoas, organizações aliadas a tecnlogias precisam reunir esforços e contribuições para colocar a gerência corporativa sobre o controle desta nova aplicação de gerência via WEB. Conforme estudado no capitulo 2, a gerência corporativa utiliza uma série de protocolos de comunicação sobre a rede com o objetivo de controlar os dispositivos de rede e os seus softwares associados. A gerência corporativa monitora, controla e configura todos estes componentes. Com o avanço das tecnologias WEB, a gerência via WEB pode expandir este leque para incluir a gerência de recursos de sistemas, aplicações, acordo de níveis de serviço, políticas, propriedade intelectual, e outros recursos e funções de negócios. As tecnologias WEB permitem a gerência corporativa a partir de qualquer ponto da rede corporativa ou da Internet através de um browser (navegador). Conforme descrito em [HER99] o modelo genérico de framework de gerência via WEB é dividido em sete partes descritas abaixo. Este modelo é apresentado na figura 4.1. Cliente WEB, é o computador de gerência corporativa que contém o browser WEB. O browser é a interface padrão para visualização das informações de gerência. O browser permite que o usuário digite comandos, solicite informações de gerência e apresente os resultados. Servidor WEB, o servidor WEB corresponde ao programa servidor responsável por atender as requisições realizadas a partir do browser e 40 retornar as respostas. O servidor WEB possui uma interface para a função de mediação de dados; Função de Mediação de Dados, é a função responsável pela conversão dos dados de gerência do repositório de dados para um formato que seja reconhecido pelo Servidor WEB pelas aplicações de gerência; Repositório de Dados, corresponde ao banco de dados onde são armazenadas as informações de gerência; Função de Agrupamento e Mapeamento, corresponde a função responsável pela conversão dos dados coletados pelos gerentes em um formato padrão reconhecido pelo repositório de gerência; Gerentes de Protocolos, correspondem ao lado gerente responsável pela gerência convencional e a gerência via WEB. Cada gerente utiliza o seu protocolo para se comunicar com o agente correspondente. Os gerentes de protocolos tratam SNMP, CMIP, WEB entre outros frameworks de gerência; Agente, o agente de gerência corresponde à entidade processo localizada no dispositivo gerenciado. Muitos agentes são capazes de gerar alarmes indicando que alguma ação predefinida aconteceu no dispositivo gerenciado. 4.1.1 Frameworks de Gerência via WEB Os três principais modelos de frameworks de gerência via Web estudados em [JAV99], são definidos de acordo com a forma de agrupamento de seus componentes e relacionamentos. Os três modelos possíveis são o nativo, proxy e gateway. 41 Cliente de Gerência baseado em WEB Repositório de dados de gerência Dados da função de mediação de dados Servidor de gerência baseado em WEB Função de agrupamento e mapeamento de dados Gerência Convencional e Baseada em WEB Gerentes de Protocolos SNMP CMIP WEB Outros SNMP CMIP WEB Outros Figura 4.1- Modelo Genérico de Gerência via WEB 4.1.1.1 Nativo O modelo de framework do tipo nativo descrito na figura 4.2, corresponde ao cenário onde o browser se comunica diretamente com o servidor HTTP no dispositivo gerenciado. O dispositivo gerenciado contém o servidor HTTP e o suporte necessário para a leitura e gravação das variáveis de gerência. Para que este modelo seja implementado é necessário que a entidade gerenciada possua as camadas de protocolo TCP/IP necessárias e opcionalmente applets java para a gerência via WEB. Os dispositivos gerenciados podem conter adicionalmente páginas HTML e todas as funcionalidades de um WEB Server. As requisições via browser são executadas a partir do servidor WEB onde estão armazenadas as applets java. As applets são carregadas no cliente browser e executadas. 42 Entidade de Gerência Entidade Gerenciada Aplicação Browser Servidor de Aplicação HTTP HTTP Rede TCP/IP Rede TCP/IP Rede Figura 4.2 – Modelo de Framework Nativo As páginas WEB armazenadas no servidor WEB podem conter links para outras páginas e applets. As applets incluem suas interfaces, sockets, segurança, entre outras características. Esta solução é barata, pois não é necessário um dispositivo de gerência intermediário, como por exemplo uma estação de gerência de redes SNMP. 4.1.1.2 Proxy O modelo de framework do tipo proxy descrito na figura 4.3, envolve o uso de um servidor proxy para realizar a tradução da informação de gerência para informação baseada em WEB para os dispositivos gerenciados. Este modelo de framework representa a união e coexistência entre a gerência via WEB e os agentes e gerentes da gerência de rede SNMP. O Gerente pode conter applets e páginas WEB para as diversas entidades gerenciadas. Neste cenário o gerente é definido também como servidor HTTP. 43 Entidade de Gerência Entidade de gerência proxy Servidor de Aplicação Aplicação Browser HTTP Entidade gerenciada Mediação HTTP SNMP TCP UDP Rede TCP/IP SNMP Rede UDP IP Rede IP Rede Figura 4.3 – Modelo de Framework Proxy As requisições via browser podem ser realizadas a partir de CGI´s localizados onde as aplicações de gerência são armazenadas. As aplicações escritas em linguagens como PERL, conhecidas por interfaces Pearl2SNMP, executam chamadas aos métodos apropriados nas bibliotecas SNMP. Estes métodos por sua vez executam as operações SNMP nos agentes específicos. 4.1.1.2 Gateway O modelo de framework do tipo gateway descrito na figura 4.4, envolve o uso de um gateway para realizar a tradução de diferentes tipos de protocolos e formatos de dados vindos de diversas fontes. O modelo de framework do tipo gateway contém as funcionalidades necessárias e pode incluir a gerência de dados provenientes de diferentes fontes. Pode também incluir um servidor de applets que pode lançar applets de gerência permitindo a gerência de informação de diversos tipos de dispositivos gerenciados, incluindo de forma híbrida os dispositivos gerenciados via framework proxy. 44 Entidade de gerência gateway app 1 Entidade de Gerência Aplicação Browser … app n Banco de dados Servidor de Aplicação Mediação HTTP Gerente TCP Transporte HTTP Rede TCP/IP Rede IP Entidade gerenciada Agente de Gerência Pilha de Protocolos Rede Figura 4.4 – Modelo de Framework Gateway 4.1.2 Benefícios da Gerência via WEB Conforme descrito em [HER99], existem vários benefícios relacionados a implementação da gerência baseada em tecnologias WEB. Entre os principais benefícios, destacam-se o baixo custo de implementação e a facilidade de uso e acesso via browser Internet. Os principais benefícios estão descritos abaixo: Baixo custo de implementação, através da redução das despesas desta solução em relação às soluções convencionais. A utilização do modelo Internet e as ferramentas requeridas para o desenvolvimento de soluções baseadas em tecnologia WEB, correspondem a custos bem menores que os custos envolvidos no desenvolvimento de soluções convencionais. Existe ainda a possibilidade de redução de custos relacionados a treinamento, integração do Help Desk e suporte técnico entre outros; 45 Independência de localização do cliente de gerência, as informações de gerência estão disponíveis em qualquer lugar na rede através do uso de browsers Internet. Quando comparados as soluções convencionais, estas informações estão mais disponíveis pela facilidade e flexibilidade de visualização proporcionadas pela independência de localização do cliente de gerência; Facilidade de uso, as características básicas de uma ferramenta browser podem ser aprendidas rapidamente. E os conceitos sobre HTML, URLs e navegação sobre hiperlinks entre outros, estão cada vez mais difundidos; Independência de plataforma e alto grau de interoperabilidade, a utilização de tecnologias de gerência via WEB permite a gerência dos mais diversos recursos corporativos, sem a necessidade de instalações, manutenções e operações adicionais sobre a plataforma de gerência. A interoperabilidade e independência de plataforma é alcançada através do uso da linguagem Java e applets, linguagens script e das tecnologias WEB adaptadas a quase todas as plataformas de computadores existentes; Modelo de dados de gerência corporativa amplo e acessibilidade, conforme detalhado anteriormente no modelo geral de gerência via WEB, os dados dos sistemas de gerência baseada em padrões e sistemas proprietários serão coletados e armazenados em um formato padrão no repositório de gerência; Possibilidade de substituição das soluções atuais de gerência corporativa, a razão principal da pesquisa e uso da gerência via WEB é a possibilidade de substituição das soluções atuais. A gerência via WEB tem se posicionado como uma alternativa para as plataformas atuais de gerência, estas plataformas são caras, difíceis de aprender e de difícil manutenção e upgrade. A maioria das plataformas de gerência atuais para serem implementadas necessitam de muito treinamento e do trabalho de consultores. 46 Expansão das funcionalidades da gerência corporativa, através da definição de WEB Servers embutidos em dispositivos, aumento da acessibilidade a Help Desks, documentação online e links com mais informações sobre o fornecedor entre outros. 4.2 A Evolução da Internet e Serviços WEB A Internet teve seu início em 1969 como um projeto experimental de rede de dados chamado Advanced Research Agency Network ARPANET. Conforme descrito em [HER99] o departamento de defesa americano utilizava a rede como teste para fins militares. A rede conectava inicialmente quatro universidades. E após obter sucesso foi estendida com a adição de infra-estrutura de conexão e computadores dentro dos Estados Unidos. No início dos anos 70 alguns cientistas iniciaram o desenvolvimento de protocolos e aplicações de redes aumentando o uso da rede. Em 1972 os cientistas do NCSA desenvolveram o serviço Telnet, permitindo que usuários pudessem executar o login em servidores remotos. No ano seguinte o serviço FTP foi disponibilizado, padronizando desta forma a transferência de arquivos entre os computadores da rede. Em 1980 o conjunto de protocolos TCP/IP, tornou-se o único protocolo a ser utilizado pela rede ARPANET. A década de 80 presenciou um grande crescimento da difusão dos computadores pessoais e minicomputadores, com sistemas UNIX versão Berkeley que incluíam os softwares de redes baseados no conjunto de protocolos TCP/IP. Estes computadores utilizavam os serviços FTP e Telnet para compartilhar e distribuir e aplicações na Internet. O maior passo na expansão da Internet ocorreu em meados da década de 80 quando a NSF conectou inicialmente seis centros de supercomputadores. Esta rede de conexão foi chamada de backbone NSFNET. Este backbone foi expandido 47 pela NSF, com a criação de redes regionais permitindo a conexão de universidades e outras instituições a Internet. Em 1987 a NSF concedeu para a Merit Network o direito de operação e gerência do backbone NSFNET. A Merit Network em conjunto com a IBM e MCI trabalharam na pesquisa e desenvolvimento de uma tecnologia mais rápida de redes. Em 1989 o backbone NSFNET mudou os seus troncos para a tecnologia T1. Isto permitiu que o tráfego do backbone passasse para 1.544 Mbits/s. Quatro anos depois mudou para T3 com velocidade de 45 Mbits/s. Em meados dos anos 90 o backbone NSFNET foi substituído pela arquitetura vBNS. Este sistema possui uma organização hierárquica que utiliza provedores de serviços de redes, redes regionais, pontos de acesso de trabalho. Atualmente estão sendo discutidos os projetos relacionados a Internet2. Em 1991 o serviço chamado Gopher foi desenvolvido na Universidade de Minnesota. Permitindo o acesso de informações através listas de arquivos, estas listas são acessadas através de menus organizados de forma hierárquica. No modelo cliente servidor do serviço Gopher, o cliente utiliza um visualizador que permite a leitura de arquivos de forma individual. Em 1992, Tim Berners-Lee trabalhando no laboratório europeu de física de partículas (CERN) localizado na Suíça, criou juntamente com outras pessoas a Word Wide WEB. A WEB introduziu as tecnologias essenciais para a gerência via WEB. Incluindo o protocolo HTTP, a linguagem HTML, os links para hipertextos e hipermidias e o esquema de endereçamento URL. Uma das principais inovações da WEB foi o uso da linguagem HTML para a publicação de páginas. As páginas WEB são transferidas entre o servidor e o cliente através do protocolo HTTP, que é um protocolo de aplicação leve que roda sobre o TCP. Além das páginas conterem textos podem conter links para hipertextos e hipermídia. Desta forma, através do clique do mouse sobre o link é possível abrir uma outra página ou ainda imagens, gráficos, áudio e vídeo. Finalmente, a utilização da WEB de forma genérica teve seu grande incentivo com a criação da versão gratuita do browser Mosaic. O browser Mosaic foi projetado 48 e desenvolvido por Marc Andreessen e outros estudantes da Universidade de Illinois. As versões comerciais foram projetadas e entregues pela Netscape, Microsoft , entre outras empresas a partir de 1995. A evolução dos Serviços Internet e da WEB continua ocorrendo de forma muito rápida. Várias tecnologias baseadas em WEB estão sendo definidas, entre estas, várias estão servindo de base para a implementação da gerência corporativa via WEB. 4.3 Tecnologias WEB Conforme estudado em [HER99], existem diversas tecnologias que são utilizadas na gerência via WEB. Estas tecnologias incluem protocolos, interfaces, padrões, linguagens e técnicas que estão sendo utilizadas e desenvolvidas para a WEB. As principais tecnologias utilizadas atualmente na implementação da gerência corporativa via WEB são apresentadas a seguir. 4.3.1 Protocolos de Comunicação Os protocolos de comunicação correspondem a um conjunto de regras [MUR98][STA96] que definem como a comunicação será realizada na WEB. O conjunto de protocolos TCP/IP é o principal protocolo utilizado na Internet. Conforme descrito na figura 4.5, o modelo TCP/IP, embora represente todas as funcionalidades do modelo de sete camadas OSI, é representado de forma condensada em um modelo de quatro camadas. 4.3.3.1 Protocolos de Camada de Acesso à Rede A função principal dos protocolos de camada de acesso a rede [STA96] é garantir a troca de informações de forma confiável entre o dispositivo e a rede onde ele está conectado. O software específico a ser utilizado nesta camada irá 49 depender do tipo de infra-estrutura de rede que será utilizada. Os padrões utilizados incluem o protocolo X.25 e Ethernet, ATM, F.Relay, HDLC entre outros. OSI TCP/IP Aplicação Apresentação Aplicação Sessão Transporte Host-to-host Rede Internet Link de Dados Acesso à Rede Fisica Figura 4.5 – Modelo TCP/IP 4.3.3.2 Protocolos de Camada Internet A função da camada Internet é transmitir os dados entre os dispositivos de origem e destino. O principal componente da camada Internet é o protocolo IP. O protocolo IP é utilizado nesta camada para fornecer [STA96] as funções de roteamento entre múltiplas redes. Este protocolo é implementado não somente em dispositivos de sistemas, mas também em roteadores. O protocolo IP não é orientado a conexão. A RFC que define a versão 4 do protocolo IP é a RFC 791. A responsabilidade pela garantia das mensagens transmitidas e de responsabilidade da camada de transporte. No caso de protocolos de transporte não confiáveis como o UDP, esta responsabilidade passa a ser da camada de aplicação. As mensagens transmitidas entre a camada de transporte e IP são conhecidas como datagramas e possuem o seu tamanho limitado a 64 50 Kbytes. Estes datagramas são trocados entre as camadas da pilha de protocolos para serem transmitidos e recebidos na Internet. 4.3.3.3 Protocolos Host-To-Host A camada de transporte é responsável [STA96] pela transferência dos dados entre aplicações de forma confiável através do protocolo TCP ou de forma não confiável utilizando o protocolo UDP. O protocolo TCP é um protocolo de transporte orientado a conexão. A RFC que define o protocolo TCP é a RFC 793. Quando uma requisição é feita para um dispositivo e a conexão TCP é estabelecida, os dados são transferidos e a conexão é terminada. O protocolo TCP recebe um buffer de dados, divide-o em datagramas e envia cada datagrama separadamente. O protocolo TCP mantém a lista dos datagramas transmitidos, através de acknowledgment ou reconhecimento recebidos por outros hosts, números sequenciais e timeouts. Se o outro host não receber um pacote em particular, o protocolo TCP irá retransmitir o datagrama. O protocolo TCP no host destino recompõem o datagrama na ordem correta. A transmissão no protocolo TCP é feita de forma assíncrona. O protocolo TCP usa a seqüência no reconhecimento para determinar quais datagramas foram recebidos e quais não foram, dando maior eficiência ao protocolo. O protocolo de datagramas de usuário (UDP) corresponde a um serviço de transporte simples que permite que aplicações utilizem os serviços de rede IP. Conforme estudado no capítulo três, o protocolo UDP é o protocolo de transporte preferencialmente utilizado para a gerência SNMP. A RFC que define este protocolo é a RFC 768. Este protocolo é orientado a datagrama e fornece serviços não orientados a conexão. A confiabilidade deve ser fornecida pelas camadas de aplicação. O protocolo UDP não fornece a capacidade de detecção e retransmissão de datagramas perdidos. O protocolo UDP é incompleto pois não possui controle de fluxo, congestionamento e seqüência de datagramas. A aplicação deve utilizar mecanismo como retransmissão. timeouts para determinar quando é necessário uma 51 4.3.3.1 Protocolo de Camada de Aplicação A camada de aplicação [STA96] fornece os serviços de aplicações ou serviços para usuários finais. Um número grande de aplicações têm sido padronizadas para operarem sobre a camada de transporte, entre elas as aplicações de Telnet, FTP, SMTP e SNMP. O protocolo de camada de aplicação SNMP, estudado em detalhes no capítulo três, é utilizado para a gerência de dispositivos de redes TCP/IP. 4.3.1 Browser WEB O browser WEB [HER99] corresponde à aplicação executada no computador cliente para a apresentação da interface de gerência via WEB. Esta aplicação utiliza os protocolos padrões HTTP e FTP para a troca de informações na WEB. A principal função do browser é a apresentação de páginas WEB. Os primeiros browsers eram utilizados para a apresentação de páginas baseadas em textos. Atualmente todos os browsers possuem interface gráfica com a apresentação de gráficos, hipertextos, e outros formatos himpermídia. Os browsers possuem suporte ainda a plug-in, segurança, execução de applets java, animação, gráficos tridimensionais entre outros. Conforme descrito na figura 4.6 o browser é constituído da interface GUI, um interpretador HTML e uma interface HTTP. O esquema utilizado para o endereçamento de páginas WEB é chamado de Uniforme Resource Location (URL). Este esquema utilizado globalmente como convenção para endereçamento. A URL é constituída do nome do protocolo e endereço. O endereço destino pode ser acessado tanto pelo endereço IP como pelo nome de domínio Internet. O nome de domínio corresponde ao nome que é resolvido pelos servidores DNS na WEB. A URL é constituída de três campos: Protocolo://<nome de domínio>/<página ou objeto> 52 Cliente browser Servidor WEB Interface GUI Aplicação Browser Interpretador HTML Servidor de Aplicação Interface HTTP HTTP HTTP Pilha TCP/IP Pilha TCP/IP Rede Figura 4.6 – Browser WEB Além da URL servir para endereçar páginas utilizando protocolos FTP ou HTTP, pode ser utilizada também para a visualização de arquivos locais. Neste caso o campo “file:” é utilizado como campo de protocolo. Quando um browser é iniciado ele apresenta uma interface padrão, constituída por uma barra de título, barra de menu, barra de endereço, a área de apresentação da página WEB e a barra de mensagens. A barra de título corresponde ao título da página exibida no momento. A barra de menu contém os comandos que podem ser executados pelo browser. Cada nova versão de browser acrescenta novos itens de menu. Estes itens incluem o tratamento de arquivos opções de edição, preferências, ferramentas de procura, help, bookmarks, segurança entre outros. A barra de endereço corresponde ao campo onde é informada a URL para a carga da página desejada. A área de apresentação da página WEB corresponde a área onde a página é apresentada. O interpretador 53 HTML analisa a sintaxe e cria a página na área de apresentação. A área de mensagem indica a URL correspondente a um hiperlink quando o mouse é posicionado com a indicação de uma mão, ou ainda pode apresentar mensagens genéricas ou mensagens de erro. Os plug-ins correspondem a uma parte importante das tecnologias de clientes browsers. Os plug-ins correspondem a módulos de softwares ou hardwares que executam determinadas aplicações. A maioria dos plug-ins mais populares incluem os chamados áudio e vídeo players. Os plug-ins são na maioria das vezes proprietários ou baseados em tipos de arquivos MIME. Com o aumento da sofisticação dos browser e applets java a maioria dos plug-ins estão sendo incluídos de forma padronizada e transparente. 4.3.2 Servidor WEB O Servidor WEB [HER99] é responsável pela gerência dos recursos WEB que são requisitados pelos clientes via WEB. A figura 4.7 descreve o modelo de um Servidor WEB genérico. Um servidor WEB é composto de uma interface de código HTTP, um gerador de páginas HTML e uma interface de servidor. Um Servidor WEB pode incluir o tratamento de scripts CGI, acesso a banco de dados para requisições de sistemas de procura (search engines), interface para configuração e administração. Muitos Servidores WEB são disponibilizados como parte integrante de sistemas maiores que incluem compiladores de linguagens e editores, suporte para frameworks convencionais de gerência entre outros. Existem implementações de servidores WEB para a maioria das plataformas existentes. Para as plataformas UNIX o serviço é implementado normalmente com o nome “httpd” ou “http daemon” . Um daemon é um processo UNIX executado em background. Em plataformas Windows o servidor WEB corresponde normalmente a mais um serviço. A interface WEB possui uma interface HTTP que conversa com a 54 camada TCP. Como o serviço HTTP é orientado a conexão, o protocolo TCP é utilizado ao invés do UDP utilizado pelo SNMP. O Servidor aguarda requisições da camada de transporte realizadas pelos clientes normalmente na porta 80, que corresponde a porta bem conhecida para a WEB. Cliente browser Servidor WEB Interface Servidor Aplicação Browser Gerador de páginas HTML Servidor de Aplicação Interface HTTP HTTP HTTP Pilha TCP/IP Pilha TCP/IP Rede Figura 4.7 – Servidor WEB O protocolo HTTP é um protocolo [HER99] do tipo requisição/reposta utilizado na WEB. O cliente browser estabelece uma conexão com o servidor HTTP e faz requisições que são respondidas pelo servidor. Como o HTTP é um protocolo do tipo stateless (sem estado), a conexão é desfeita após a transmissão da resposta ao cliente. O HTTP define um conjunto de primitivas que descrevem o tipo de requisição enviada pelo cliente ao servidor. A primitiva mais comum é a GET, utilizada pelo cliente para solicitar uma arquivo HTML ou outro arquivo multimídia ao servidor. O formato das requisições do cliente incluem o método de requisição, URL, versão do protocolo, mensagem MIME com modificadores de requisição, informação do cliente e conteúdo do corpo. A resposta do servidor inclui linha de status, versão do protocolo de mensagem, código de retorno de erro ou sucesso, informações do 55 servidor em formato MIME e conteúdo do corpo da resposta. O protocolo HTTP é definido na RFC 1945. Um exemplo de transação HTTP é apresentado na figura 4.8. Conforme descrito nesta figura, o protocolo HTTP é um protocolo leve que utiliza conexões TCP de curta duração. Cliente Servidor O Cliente estabelece uma conexão TCP O cliente envia a requisição HTTP O servidor retorna a resposta O servidor fecha a conexão Rede Figura 4.8 – Transação HTTP 4.3.3 Markup languages Conforme estudado em [HER99] as Markup languages são linguagens para formatação de páginas WEB. Estas linguagens correspondem a uma das principais razões do grande sucesso da WEB. O consórcio W3 está desenvolvendo padrões para estas linguagens, especialmente para a HTML e XML. O consórcio W3 é presidido por Tim Berners-Lee, criador da WEB. O consórcio é responsável pela definição de padrões para a WEB. O site do consórcio pode ser acessado no endereço http:/www.w3.org. 56 4.3.3.1 HTML As páginas Web são escritas [HER99][THE99] na linguagem HTML (Hipertext Markup Language). A linguagem HTML é derivada da linguagem SGML (Standard Generalized Markup Language) utilizada para a gerência de grandes documentos. A linguagem HTML já possui cerca de dez anos, com várias versões definidas. Embora a versão atuais 4.0/4.1 [THE99] esteja ganhando popularidade, a versão mais utilizada é a versão 3.2, que uniu as extensões dos browsers Netscape e Microsoft e incluiu novas funcionalidades. A linguagem HTML é composta por marcadores ou TAG e atributos. O TAG define como a página é formatada, como um hiperlink é especificado, entre outros aspectos. Os TAGS são definidos no formato <TAG> ... </TAG>. Um exemplo simples de página WEB é apresentado a seguir. <HTML.> <HEAD><TITLE> Exemplo de página WEB </TITLE></HEAD> <BODY> TESTE </BODY> </HTML> Os TAGS <HTML> e </HTML> definem o início e fim da página WEB. A página é composta basicamente de um cabeçalho e um corpo. Dentro do cabeçalho é definido o título com o nome da página. O título é apresentado na barra de títulos do browser WEB. O corpo contém o conteúdo que é apresentado na área de apresentação do browser. A Linguagem HTML versão 2.0 foi desenvolvido em 1994. Esta versão foi a primeira versão utilizada e suportada pelos primeiros browsers comerciais. A linguagem HTML versão 2.0, definiu oito tipos básicos de comandos: tags de estrutura, cabeçalhos, tags de caracteres, tags de âncoras, gráficos, separadores de texto, listas, blocos de texto. A figura 4.9 descreve os TAGS HTML versão 2.0 segundo os tipos definidos com uma breve descrição. 57 TAG Tipo Descrição <HTML></HTML> Estrutura Especifica que a página é um documento WEB. <HEAD></ HEAD > Estrutura Define o cabeçalho da página. <BODY></BODY> Estrutura Define o corpo da página <TITLE></TITLE> Estrutura Especifica o título da página. <BASE> Estrutura Especifica o endereço base para resolução de endereços. <LINK> Estrutura Fornece informações que relacionam a página corrente a outros documentos. <META> Estrutura Especifica meta-informação associada a um documento. <H1></H1> …<H6></H6> Estrutura Especifica os níveis de cabeçalho de 1 a 6. <B></B> Caracteres Especifica o formato de fonte bold para o texto. <I></I> Caracteres Especifica o formato de fonte itálico para o texto. <TT></TT> Caracteres Especifica o formato de fonte monospaced para o texto. <CITE></CITE> Caracteres Especifica uma citação em formato itálico. <EM></EM> Caracteres Especifica uma frase enfatizada em formato itálico. <KBD></KBD> Caracteres Especifica um texto a ser digitado pelo usuário. <SAMP></SAMP> Caracteres Especifica uma seqüência de caracteres literais. <STRONG></STRONG> Caracteres Especifica a apresentação de caracteres fortemente enfatizados. <VAR></VAR> Caracteres Inclui um texto usado como uma variável em formato itálico. <A></A> Âncoras Inclui um texto utilizado como uma âncora hiperlink. 58 <IMG> Gráficos Especifica uma imagem a ser apresentada na página. <P> Separador de Define um salto de parágrafo. textos <BR> Separador de Define um salto de linha. textos <HR> Separador de Especifica a apresentação de uma régua horizontal textos <UL><LI></OL> Lista Especifica uma lista não ordenada, com cada elemento listado com o tag <LI>. <OL><LI></OL> Lista Especifica uma lista ordenada por números, com cada elemento listado com o tag <LI>. <DL><DT><DD></DL> Lista Especifica uma lista de definições onde cada termo especificado usa <DT> e sua definição correspondente <DD>. <DIR><LI></DIR> Lista Especifica uma lista de diretórios com cada elemento especificado utilizando o tag <LI>. <MENU><LI></MENU> Lista Especifica uma lista de menus com cada elemento especificado utilizando o tag <LI>. <ADRESS></ ADRESS> Bloco texto de Inclui um texto de endereço para endereços, assinaturas, entre outros apresentado em formato itálico. <BLOCKQUOTE> Bloco de Inclui textos entre aspas . texto </BLOCKQUOTE> <PRE></PRE> Bloco de Inclui textos pré formatados. texto Figura 4.9 – TAGs HTML versão 2.0 59 A linguagem HTML versão 3.2 [HER99][THE00] uniu as extensões dos browsers Netscape e Microsoft e incluiu novas funcionalidades. Entre estas funcionalidades novos padrões de cores, imagens e fontes; alinhamento de textos; tabelas; mapas; maior controle do tipo e tamanho de fontes. A figura 4.10 lista os TAGS incluídos nesta versão. TAG Nome <APPLET> Java Applet <AREA> Area <BIG> Big Text <CAPTION> Caption <DFN> Definition <DIV> Division <FONT> Font <INPUT> Form Input File <MAP> Mao <PARAM> Parameters <SMALL> Small text <SUB> Subscript <SUP> Superscript <TABLE> Table <TD> Table Data <TEXTFLOW> Java Applet Textflow <TH> Table Header 60 <TR> Table Row Figura 4.10 – TAGs HTML versão 3.2 A linguagem HTML versão 4.0 [HER99][THE00] introduziu novas funcionalidades entre elas: O suporte a múltiplos estilos de páginas; Capacidade de construção de teclas de atalho para controle de páginas; Suporte a acesso somente para leitura de documentos; Suporte a Frames; Suporte a objetos e scripts; Maior versatilidade aos botões; Suporte a usuários que não falam inglês e deficientes. 4.3.3.2 Service Side Includes As Server Side Includes (SSI) [HER99][THE00] ou simplesmente includes de Servidor, são um tipo de comentário HTML que direcionam o Servidor WEB a gerar de forma dinâmica os dados de uma página sempre que ela for chamada. O formato básico da include é: <!-#command tag=”value”…> Onde a diretiva #command pode ser qualquer um dos vários comandos suportados pela implementação do servidor. Um exemplo é a utilização da diretiva #include que insere o contexto de um arquivo especificado na página WEB. Um uso comum deste comando é a utilização de um mesmo template para cada página WEB definida no site. Desta forma as alterações de template serão sempre 61 realizadas somente em uma include. Existem ainda a possibilidade de executar programas apresentando o resultado através da diretiva #exec. 4.3.3.3 Dinamic HTML Dinamic HTML é o nome dado a um conjunto de proposta encaminhadas para o Consórcio W3 pela Microsoft e Netscape. O objetivo da Dinamic HTML é definir um comportamento mais dinâmico para os browsers, na forma como é feita interação entre o usuário e as páginas WEB no lado cliente. A Dinamic HTML irá reduzir de forma gigantesca o tráfego HTTP do servidor na criação de atualizações de páginas WEB no lado cliente. 4.3.3.4 Extensible Markup Language A Extensible Markup Language (XML) é uma linguagem [HER99][THE00] cujo desenvolvimento está sendo supervisionado, também, pelo Consórcio W3. A XML se diferencia da linguagem HTML, por ser uma linguagem de definição de dados. Assim como a linguagem HTML, a XML é derivada da linguagem SGML. È uma linguagem extensível pois permite a criação de novos TAGS. A maneira como a linguagem XML irá se desenvolver, no meio dos esforços voltados para a linguagem HTML é ainda uma incógnita. No site WEBEM um documento escrito por Roger Boot, propõem a utilização da linguagem XML para a apresentação de dados de gerência. Estes dados poderão ser apresentados e manipulados por aplicações de gerência corporativa WEBEM. 4.3.3.5 Cascading Style Sheets a definição de múltiplos estilos de páginas (Cascading Style Sheets) [HER99][THE00], tem por objetivo oferecer um maior controle da maneira como as 62 páginas WEB são apresentadas. Através da criação de estilos um layout de página pode ser definido de forma a sobrepor vários estilos na mesma página. A especificação do CSS está sendo definida pelo Consórcio W3 e poderá ser suportada pelas releases futuras dos browser. 4.3.3.6 Document Object Model Conforme descrito em [THE00] o Document Object Model (DOM) é uma proposta de padrão, que irá permitir que programas e scripts acessem e atualizem de forma dinâmica conteúdos, estrutura e estilos de documentos. Os documentos poderão ser processados e seus resultados incorporados na página apresentada. A especificação do DOM está sendo definida pelo Consórcio W3. 4.3.4 Linguagens de Programação WEB As linguagens de programação WEB [HER99] são utilizadas para a criação de conteúdos ativos e ainda para permitir a execução processos complexos e processos interativos entre o Servidor e os Clientes WEB. As linguagens mais populares da WEB incluem Java, C++ e C. Uma série de outras linguagens são também utilizadas, incluindo Visual Basic e as antigas linguagens de terceira geração Fortran, Pascal, Assembly e mesmo o Cobol. 4.3.4.1 Linguagem Java A linguagem de programação Java [HER99] é uma linguagem orientada a objetos, desenvolvida em 1990 pela Sun Microsystems. A linguagem Java é compilada em um formato “byte code” intermediário, que é interpretado pela máquina virtual Java ativa no computador onde o programa é executado. A utilização de applets java torna as páginas WEB mais dinâmicas. As applets são pequenos programas que são carregados do servidore WEB para o cliente sendo então executados. 63 A linguagem java fornece uma série de classes para criação de animação, atualização de páginas, entre outras funcionalidades que dificilmente seriam implementadas somente com a tecnologia HTML. A figura 4.11 apresenta um exemplo de codificação da linguagem Java. // Exemplo de programa Java class exemplo { public static void main (string args []) { String name; name = “Exemplo” System.out.println(name); } } Figura 4.11 – Exemplo de codificação da linguagem Java 4.3.4.2 Linguagem C++ A linguagem de programação C++ [HER99] foi desenvolvida nos laboratórios Bell por Bjarne Stroup no início de 1980. A linguagem C++ se diferencia da linguagem C pela inclusão de construções orientadas a objeto e outras pequenas melhorias. È uma linguagem muito utilizada para o desenvolvimento de aplicações e sistemas. A figura 4.12 apresenta um exemplo de codificação da linguagem C++. // Exemplo de programa C++ #include <iostream.h> main () { cout << “Exemplo\n”; } Figura 4.12 – Exemplo de codificação da linguagem C++ 64 4.3.4.3 Linguagem C A linguagem de programação C [HER99] foi desenvolvida no início de 1970 por Dennys Ritchie, como uma melhoria da linguagem de programação B que era utilizada pelos laboratórios Bell para a programação do sistema operacional UNIX. Quando Brian Kernighan e Dennys Ritchie liberaram a definição da linguagem C em 1978, a sua utilização foi ampliada. Em pouco tempo a linguagem C superou a linguagem assembly como uma nova opção de linguagem de programação de sistemas. A linguagem C passou também a ser amplamente utilizada para programação de aplicações. A figura 4.13 apresenta um exemplo de codificação da linguagem C. // Exemplo de programa C #include <stdio.h> main () { printf “Exemplo\n”; } Figura 4.13 – Exemplo de codificação da linguagem C 4.3.5 Linguagens Script WEB A linguagens script [HER99] são ferramentas importantes para a extensão das funcionalidades baseadas na WEB. São linguagens baratas e de fácil aprendizado e desenvolvimento. Estas linguagens são ainda fáceis de serem testadas por serem interpretadas. Os interpretadores de linguagem script estão disponíveis para a maioria das plataformas, o que torna a programação independente da plataforma utilizada. São linguagens que oferecem maior facilidade de manutenção e debug se comparadas as linguagens compiladas C e C++. Muitos programas sofisticados e implementações de referência, relacionados a estas linguagens, estão disponíveis gratuitamente na WEB. As principais linguagens utilizadas incluem as Linguagens JavaScript, ECMAScript, PERL, TCL, 65 Python . Uma série de outras linguagens são também utilizadas, incluindo a linguagem Rexx desenvolvida pela IBM, a VBScript desenvolvida pela Microsoft e AppleScript da Apple. 4.3.5.1 JavaScript A linguagem JavaScript [HER99] é uma linguagem script utilizada no lado cliente. Esta linguagem foi desenvolvida pela Netscape para os browsers Internet, tornando fácil a codificação de scripts no cliente através da adição de funcionalidades ao conteúdo WEB. A linguagem JavaScript necessita apenas de um suporte restrito do lado Servidor. Esta linguagem pode interagir com códigos fontes HTML criando conteúdos dinâmicos. <html> <body> <br> <script language=”JavaScript”> document.write(“Exemplo”) </script> <br> </body> </html> Figura 4.14 – Exemplo de codificação da linguagem JavaScript A linguagem JavaScript é considerada um padrão aberto, sendo suportada pelos browser da Netscape e Microsoft, com algumas diferenças de implementação. A figura 4.14 apresenta um exemplo de codificação da linguagem JavaScript. 4.3.5.2 ECMAScript A linguagem ECMAScript [HER99] é uma linguagem script similar a JavaScript, desenvolvida como padrão aberto para a Netscape, Microsoft e o European Computer Standard Group ECMA. A primeira versão corresponde a versão encontrada nos browsers Netscape Navigator 3. Tanto a Netscape como a 66 Microsoft implementam o padrão ECMAScript. A figura 4.15 apresenta um exemplo de codificação da linguagem ECMAScript. <html> <body> <br> <script language=”ECMAScript”> document.write(“Exemplo”) </script> <br> </body> </html> Figura 4.15 – Exemplo de codificação da linguagem ECMAScript 4.3.5.3 PERL A linguagem PERL (Pratical Extraction Report Language) [HER99] foi desenvolvida por Larry Wall em 1986. Foi desenvolvida inicialmente para codificação de relatórios, mas rapidamente ganhou popularidade como uma linguagem script para administração de sistemas UNIX. A linguagem PERL é utilizada para unir as funcionalidades das linguagens shell UNIX e utilitários como o SED e AWK numa linguagem de uso comum. A linguagem PERL é talvez a linguagem script mais popular. A linguagem PERL tornou-se muito popular a partir do momento que passou a ser utilizada com CGIs (Common Gateway Interface). Com certeza a maioria dos scripts CGI são escritos na linguagem PERL.. A figura 4.16 apresenta um exemplo de codificação da linguagem PERL. # Exemplo da linguagem PERL print “Exemplo” “\n”; Figura 4.16 – Exemplo de codificação da linguagem PERL 67 4.3.5.4 TCL A linguagem TCL (Tool Command Language) [HER99] foi desenvolvida por John Ousterhout. A linguagem TCL possui um modelo de dados simples e claro. Esta linguagem é utilizada para a gerência de redes. Muitos fabricantes usam a linguagem TCL como API para seus produtos, para criar funcionalidades adicionais. A linguagem TCL possui um conjunto de ferramentas gráficas conhecidas como TK para o desenvolvimento de interfaces de usuários. A figura 4.17 apresenta um exemplo de codificação da linguagem TCL. # Exemplo da linguagem TCL puts stdout {Exemplo} Figura 4.17 – Exemplo de codificação da linguagem TCL 4.3.5.5 Python A linguagem Python [HER99] foi desenvolvida por Guido Van Rossun. A linguagem Python possui uma série de funcionalidades orientadas a objeto. # Exemplo da linguagem Python exemplo=”Exemplo \n” print exemplo Figura 4.18 – Exemplo de codificação da linguagem Python 68 Esta linguagem inclui construções como módulos, exceções, tipos dinâmicos, tipos dinâmicos de dados de alto nível, e classes. Inclui também interfaces para chamadas e bibliotecas C e C++ e interfaces para diversos sistemas de janelas. A linguagem Python é utilizada como uma linguagem de extensão para aplicações para fornecer uma interface programável. Como a maioria das linguagens script , a linguagem Python é portável para várias plataformas. A figura 4.18 apresenta um exemplo de codificação da linguagem Python 4.3.6 Formatos Gráficos Os formatos gráficos são muito importantes para a WEB, pois um arquivo de formato GIF pode corresponder a um texto com centenas de palavras. Os dois formatos gráficos mais populares que são compatíveis com os browsers atuais são o Graphics Interchange Format (GIF), o Joint Photographic Experts Group (JPEG) e o Portable Network Graphics (PNG). O formato GIF [HER99] é o formato de arquivo mais utilizado na WEB. O formato GIF suporta cores e várias resoluções. Para diminuir o tempo de transferência de imagens do servidor para o cliente economizando a quantidade de espaço em disco necessária para gravar estas imagens, o formato GIF inclui algoritmos de compressão. Como o formato GIF é baseado em 8 bits, a maior limitação é que pode apenas suportar até 256 cores. A Compulserve, criadora do formato GIF, estava iniciando um trabalhando no desenvolvimento do padrão 24 bits, no entanto quando a Unisys passou a reclamar a patente das partes principais da tecnologia de compressão do formato GIF, cobrando pelo seu uso o desenvolvimento foi cancelado. O formato JPEG [HER99] é outro formato de arquivo muito popular. O formato JPEG utiliza a técnica de compressão conhecida como “lossy”. Para realizar a compressão de uma imagem o algoritmo descarta seletivamente partes da imagem. O formato JPEG oferece maior flexibilidade em relação ao formato GIF é possível configurar a taxa de compressão. Quanto maior a compressão menor será a qualidade em relação a imagem original. 69 Outro formato gráfico que está se tornando muito popular na Internet é o Portable Network Graphics (PNG) [PNG00]. Ao contrário do formato GIF o formato PNG é livre de copyright. A especificação do PNG está sendo definida pelo Consórcio W3. O formato PNG é um formato de compressão de imagens que foi especialmente concebido para ser utilizado na WEB. O PNG utiliza um esquema de compressão sem perdas e pretende ser uma alternativa à utilização do formato GIF na transmissão de imagens tipo bitmap através da Internet. Embora mantenha algumas das características originais do formato GIF, o PNG introduz simultaneamente novas facilidades com o objetivo de obter imagens com uma qualidade cada vez maior. O formato PNG suporta imagens true color com uma profundidade de cor até 48 bits/pixel e imagens grayscale com uma profundidade de cor até 16 bits/pixel. 4.3.7 MIME O Multipurpose Internet Mail Extensions (MIME) [HER99] é uma especificação para formatação de mensagens que não utilizam o padrão ASCII. Estas mensagens podem ser enviadas pela Internet por E-mail e browsers de cliente. Existem muitos tipos MIME pré definidos como arquivos de formato GIF e arquivos PostScript. Tipos customizados MIME podem ser definidos. A especificação MIME permite que os browsers apresentem páginas que não são escritas na linguagem HTML. 4.3.8 CGI O Common Gateway Interface (CGI) é um método de criação de programas que permite que aplicações externas se conectem a Servidores WEB de forma padrão. O CGI é um programa executável que pode adicionar informações de forma dinâmica ao conteúdo de uma página WEB. Uma das primeiras utilizações do CGI foi para o processamento de transações. Um usuário pode digitar informações em vários campos, enviar as informações para o servidor, executar o processamento das informações no servidor e apresentar os resultados na área de apresentação do browser. 70 4.3.9 ACTIVEX O ActiveX corresponde a um conjunto de tecnologias desenvolvida pela Microsoft que são utilizadas para desenvolvimento WEB. ActiveX é baseado na tecnologias Object Linking and Embedding (OLE) e Component Object Module (COM) que permitem que programas diferentes trabalhem juntos e compartilhem dados. O ActiveX é implementado como um controle embutido ou programa em páginas WEB. 4.3.10 Search Engines Os sistemas de busca ou Search Engines são utilizados para procurar, catalogar e apresentar informações. Servidores especiais possuem sistemas de busca que são utilizados para esta função. Os sites de busca mais populares são o Alta Vista, Yahoo, Excite, Lycos entre outros. 4.3.11 Bancos de Dados Os bancos de dados são os repositórios das informações da WEB que são procuradas ou que necessitam ser armazenadas. Estas informações podem ser utilizadas para aplicações importantes como as informações de gerência via WEB. A padronização da interface WEB tem aumentado a utilização de Data Warehouses e áreas de armazenamento de informações. O padrão Open Database Conectivity (ODBC) é amplamente utilizado. O ODBC é um método padrão de acesso a banco de dados que permite que qualquer aplicação acesse dados de qualquer sistema gerenciador de banco de dados. O acesso é realizado através de uma camada, conhecida como driver, entre a aplicação e o sistema gerenciador de banco de dados. A função do driver é realizar a tradução das solicitações de dados em formato conhecido pelo banco de dados que foi implementado. Tanto o banco de dados quanto a aplicação devem suportar a implementação ODBC. O ODBC é caracterizado como padrão de fato de mercado e foi originalmente desenvolvido pela Microsoft. 71 A Sun possui uma nova interface para a arquitetura Java, conhecida como o padrão Java Database Connectivity (JDBC). 4.3.12 VRML A Virtual Realit Modeling Language (VRML) [HER99] é uma nova linguagem de representação que permite a apresentação de objetos em duas ou três dimensões em páginas WEB. As páginas WEB podem ser visualizadas através de browsers especiais VRML ou com a utilização de plug-in especial VRML. 4.3.13 Cookies O cookie [HER99] é um marcador de mensagem que pode ser enviado ao browser a partir do servidor. O browser no lado cliente normalmente grava a informação da mensagem em um arquivo. Desta forma o cookie pode ser transmitido toda a vez que a página é solicitada no servidor. Os cookies são utilizados para a coleta de informações e segurança. O cookie pode ser utilizado pelo servidor para a criação de auditoria e definição do perfil de usuários. Este recurso pode ser utilizado para fazer as páginas visitadas mais amigáveis, inserindo informações como o nome do usuário, tradução da página para a linguagem nativa, entre outras. Os cookies podem ser utilizados para autenticação de usuários. 4.4 CONCLUSÃO Neste Capítulo foram descritos o conceito de gerência via WEB [HER99] e sua arquitetura e os modelos de framework nativo, proxy e gateway. A evolução da Internet e da WEB e as tecnologias empregadas para a implementação da gerência via WEB foram apresentadas. Entre as diversas tecnologias analisadas no capítulo 4, estão o conjunto de protocolos de comunicação TCP/IP [MUR98][STA96]; os browsers Internet [HER99], servidores WEB [HER99]; as Markup Languages, incluindo HTML, XML entre outras [HER99]; as linguagens de programação WEB Java, C, C++ [HER99]; as linguagens script WEB JavaScript, 72 ECMAScript, PERL, TCL e Phyton [HER99]; os formatos gráficos GIF e JPEG [HER99] e PNG [PNG00]; os padrões MIME, CGI, ActiveX, VRML entre outros [HER99]. No dois próximos capítulos serão apresentadas as duas principais iniciativas para a construção de frameworks de gerência corporativa via WEB. A iniciativa Java Management Extension (JMX) [JAV99] da Sun Microsystems e a Web-based Enterprise Management (WEBEM) [DMT99][HER99]. 73 5 JAVA MANAGEMENT EXTENSION - JMX 5.1 JMX Conforme detalhado em [JAV99] a JMX (Java Management Extension) conhecida anteriormente por JMAPI, define uma arquitetura de gerência, APIs, e serviços de gerência, todos sobre uma única especificação. A especificação para JMX foi desenvolvida pela SUN junto com os principais líderes da indústria de gerência, seguindo a Comunidade Java. A JMX [JAV99] fornece uma maneira simples para instrumentação de objetos Java. A instrumentação JMX tem muito poucas limitações porque é totalmente independente da infra-estrutura de gerência. Isto significa que um recurso pode ser gerenciado sem a preocupação de como seu gerente é implementado, se é implementado por exemplo sobre TMN ou SNMP. A JMX permite que os desenvolvedores de aplicações baseadas em tecnologia Java crie os agentes inteligentes e gerentes na linguagem Java. Estas aplicações podem ser integradas as soluções em sistemas de gerência existentes. A arquitetura JMX é dividida em três níveis, nível de Instrumentação, nível de agente e nível de gerente. A JMX fornece ainda vários APIs Java para os protocolos padrões existentes. São as APIs de protocolos de gerência adicionais. Estas APIs foram especificadas de forma independente do modelo da arquitetura de três níveis, contudo elas são essenciais porque elas permitem que as aplicações JMX escritas em Java se integrem com as tecnologias de gerência existentes. 5.2 Arquitetura JMX A arquitetura JMX [JAV99] é construída de acordo com uma modelo de três níveis. O nível de instrumentação, agente e gerente. Conforme detalhado na figura 5.1, esta divisão traz flexibilidade permitindo que subconjuntos da especificação 74 sejam utilizados individualmente por diferentes comunidades de desenvolvedores que utilizam a tecnologia Java. O nível de instrumentação fornece a gerência imediata de qualquer objeto baseado em tecnologia Java. Este nível é direcionado à toda a comunidade de desenvolvedores que utiliza tecnologia Java. O nível agente fornece os agentes de gerência. Os agentes JMX são recipientes que contém a base dos serviços de gerência. Esta base pode ser facilmente estendida adicionando-se recursos JMX. Este nível é direcionado para a comunidade de desenvolvedores de soluções de gerência e fornece o gerenciamento através da tecnologia Java. O nível gerente fornece os componentes de gerência que podem operar como gerente ou agente para distribuição e consolidação dos serviços de gerência. Este nível é direcionado para a comunidade de desenvolvedores de soluções de gerência e complementa a gerência através da tecnologia Java provida pelo nível agente. As APIs de protocolos de gerência adicionais são direcionadas para comunidade de desenvolvedores de soluções de gerência e proporcionam a integração com as soluções de gerência existentes. 5.3 Componentes JMX 5.3.1 Recurso Gerenciável Um recurso gerenciável [JAV99] é um recurso que foi instrumentado conforme o nível de especificação de instrumentação JMX e passou pelo conjunto de testes de compatibilidade de nível de instrumentação. Um recurso pode ser uma aplicação de negócio, um dispositivo, ou uma implementação de software de um serviço ou política. Para ser instrumentado, um recurso pode ser escrito na linguagem de programação Java ou somente oferecer uma capa de tecnologia baseada em Java. 75 Nível Aplicação Gerente Aplicação WEB Proprietária de Proprietária de Browser Gerência Gerência APIs para outros Protocolos de Gerência Gerente JMX API para a Gerência Adaptador de Protocolo SNMP Nível Agente Mbean API para a Server Gerência CIM/WEBEM Serviço Níivel Instrumentação Objeto 1 Objeto 2 Máquina Virtual Java Objeto 3 Máquina Virtual Java API para a Gerência MBean ( Objeto Bean gerenciado registrado no servidor ) JavaBeans simples ( não registrado no servidor ) Figura 5.1 – Arquitetura JMX TMN 76 Qualquer coisa que precisa ser gerenciada, de forma imediata ou no futuro pode ser instrumentada e pode ser considerado como um recurso potencial. Um Objeto Mbean é um objeto Java que representa um recurso JMX gerenciável. Os objetos MBeans seguem o modelo JavaBeans e permitem o mapeamento entre os componentes JavaBeans e o seu gerenciamento. Os objetos Mbeans podem ser adaptados a qualquer agente JMX, pois permitem a instrumentação de forma padrão dos recursos gerenciados. 5.3.3 Agente JMX Um agente JMX é uma entidade de gerência implementada conforme a especificação de agente JMX e que passou pelo conjunto de testes de compatibilidade de nível de agente. Um Agente JMX é composto de um servidor de MBean, um Kit MBeans que representa os recursos gerenciados e por pelo menos um adaptador de protocolo. Um Agente JMX pode conter serviços de gerência, que são representados como MBeans. O servidor de MBean corresponde a um registro para MBeans no agente. O servidor de MBean é o componente que fornece os serviços que permitem a manipulação de objetos MBeans. Todas as operações de gerência executadas no MBeans são realizadas por interfaces baseadas em tecnologia Java no servidor de MBean. Os adaptadores de protocolos e conectores permitem que as aplicações de gerência tenham acesso a um agente JMX e manipulem os seus objetos MBeans. Os adaptadores de protocolo permitem a representação dos objetos MBeans de forma direta sobre os protocolos HTML ou SNMP. Os conectores incluem um componente remoto que permitem a comunicações com o agente sobre uma variedade de protocolos, entre eles HTTP, HTTPS, IIOP. Como todos os conectores possuem a mesma interface baseada em tecnologia Java, as aplicações de 77 gerência utilizam o conector mais apropriado ao ambiente de rede e mudam de forma transparente os conectores quando necessário. 5.3.2 Gerente JMX Um gerente JMX é uma entidade de gerência implementada conforme a especificação de gerência JMX e que passou pelo conjunto de teste de compatibilidade de nível de gerência. Um gerente JMX fornece uma interface para que as aplicações de gerência possam interagir com o agente, distribuir ou consolidar informação de gerência, e prover segurança. Os gerentes JMX podem controlar qualquer número de agentes, simplificando a estrutura de gerência de sistemas complexos e sistemas distribuídos. 5.3.3 Serviços de Gerência Os Agentes e gerentes JMX integram serviços que lhes dão autonomia e inteligência. Estes serviços permitem que os agentes manipulem os seus recursos e transfiram informações entre os agentes e a aplicação de gerência. Os agentes são mais autônomos porque podem incorporar certas tarefas de gerência como polling. A inteligência é incorporada em lógicas simples que podem impedir que os gerentes manipulem alarmes sem importância. Isto permite a redução do tráfego na rede e melhoria da resistência das aplicações às paradas. Na arquitetura JMX os serviços são objetos MBeans que podem ser adicionados ou removidos conforme a necessidade. Isto dá escalabilidade aos agentes e gerentes, o que é crítico quando estes são implementados em clientes magros. A especificação JMX define atualmente a interface para tais serviços básicos como um registro para MBeans, queries destes registros, operações sobre os recursos e transmissão de eventos de volta aos gerentes, carga dinâmica de um novo MBean, criação de relações e dependências entre MBeans, funções de tempo e monitoração de atributos. Outros serviços de administração que serão integrados 78 na especificação incluem bootstrapping e persistência, gerência de políticas de redes, descoberta de agentes e gerentes na rede e segurança. 5.3.4 APIs para outros Protocolos de Gerência O objetivo das APIs para outros protocolos é fornecer uma forma padrão para que a gerência de aplicações Java possa interagir com tecnologias de gerência existentes. Desta forma a aplicação usará uma destas APIs para ter acesso a um sistema legado e expor seus atributos como um recurso gerenciável JMX. Este recurso permitirá qualquer aplicação de gerência padrão JMX administrar os sistemas legados através de um agente JMX. Estas APIs criam uma ponte entre as tecnologias existentes e as tecnologias futuras. A especificação JMX incluirá uma API para um gerente SNMP, APIs para gerentes e provedores WBEM, Gerente TMN, APIs para Alarmes e topologias. 5.4 CONCLUSÃO Neste Capítulo foi descrita a iniciativa Java Management Extension, sua arquitetura e componentes. A Java Management Extension (JMX) define uma arquitetura de gerência, APIs e serviços de gerência, todos sobre uma única especificação. Para isto a arquitetura de JMX é utiliza um modelo de três níveis, instrumentação, agente e gerente. No próximo capítulo será apresentada a iniciativa Web-based Enterprise Management (WEBEM) [DMT99][HER99], para a construção de frameworks de gerência corporativa via WEB. 79 6 WEB MANAGEMENT ENTERPRISE - WEBEM 6.1 Iniciativa WEBEM Conforme detalhado em [DMT99][HER99] em meados do ano de 1996 um grupo de grandes fornecedores interessados em gerência via WEB, entre eles a BMC, CISCO, Compaq, Intel e Microsoft, anunciaram a iniciativa de definição de um esquema de gerenciamento corporativo que trabalharia com a WEB e os frameworks convencionais de gerência de redes e sistemas. Este framework é conhecido como WEB-Based Enterprise Management WEBEM. Conforme descrito em [HER99] um dos principais objetivos da iniciativa WEBEM é a definição de uma modelo de dados padrão que possa ser utilizado como repositório de dados de gerência. Permitindo que os frameworks de gerência de redes e sistemas convencionais possam transformar os seus dados para este formato padrão. O esquema de dados WEBEM permite também que os objetos de sistemas legados ou proprietários sejam importados para o banco de dados de objetos de gerência WEBEM, criando uma extensão destes esquemas. Este modelo de dados é definido como Common Information Model (CIM). Com este modelo a arquitetura WEBEM torna-se um ponto de integração dos diversos tipos de frameworks existentes. Conforme apresentado na figura 6.1, todos os objetos de dados WEBEM presentes no repositório podem ser acessadas através de aplicações de gerência WEBEM. Estas aplicações podem ser executadas na Internet usando como cliente um browser padrão. O Segundo maior esforço da iniciativa WEBEM é a definição de um protocolo que irá permitir que os objetos gerenciados WEBEM sejam acessados via rede. O ideal é que este protocolo seja independente de plataforma e trabalhe sobre a Internet. O protocolo proposto é o HyperMedia Management Protocol (HMMP), contudo conforme descrito em [DMT99] existe um estudo que aponta para a utilização da linguagem XML sobre HTTP. 80 O framework WEBEM é completamente orientado a objetos e permite a herança de objetos gerenciados, abstração de dados, polimorfismo e encapsulamento. O gerente de objetos é chamado CIM Object Manager (CIMOM). Esta entidade de software é responsável pelo controle do objetos gerenciados, incluindo o armazenamento e o acesso aos objetos no repositório central de dados. WEBEM Server Aplicação de Gerência WEBEM Repositório de dados central Gerente de Objetos Dados SNMP Dados CMIP Dados DMI Dados Proprietários Figura 6.1 – Modelo de fluxo de dados WEBEM 6.2 Arquitetura WEBEM Conforme detalhado em [DMT99][HER99] o framework WEBEM é constituído do Cliente WEBEM, pelo conjunto de dispositivos gerenciados, Servidor WEBEM e pelo repositório central de dados do Servidor. Estes componentes são representadas no modelo de referência WEBEM, apresentado na figura 6.2, onde são apresentados os aspectos funcionais, dados, informações e adaptações necessárias para a implementação do framework WEBEM. 81 Browser Cliente WEBEM Server Aplicação de Gerência WEBEM (1) Aplicação de Gerência WEBEM (2) Repositório de dados CIMOM Provedor (1) Aplicação de Gerência WEBEM (n) ... Provedor (2) Provedor (n) ... Agente Agente Agente Objetos Gerenciados Objetos Gerenciados Objetos Gerenciados Objetos Gerenciados Objetos Gerenciados Objetos Gerenciados ... ... ... Dispositivo Gerenciado (1) Dispositivo Gerenciado (2) Figura 6.2 – Modelo de Referência WEBEM Dispositivo Gerenciado (n) 82 O Servidor WEBEM contém o gerenciador de objetos CIMOM, que pode aceitar todos os objetos dos frameworks de gerência de sistemas e redes existentes. Os dados de objetos são transformados em um formato padrão e armazenados no repositório de dados central. O servidor WEBEM contém também o servidor de aplicação WEBEM, que por sua vez pode ser acessado pelos clientes WEBEM. O browser cliente utiliza um conjunto de aplicações residentes no Servidor WEBEM ou em um sistema distinto, acessando as aplicações de gerência através do protocolo HMMP. Quando executadas as aplicações de gerência WEBEM acessam o CIMOM, este por sua vez interpreta a requisição feita pela aplicação para a informação solicitada sobre o objeto gerenciado. O CIMOM possui a sua própria linguagem para definição de objetos gerenciados. Esta linguagem e conhecida como Managed Object Format (MOF). A aplicação reconhece os objetos presentes no repositório porque ela entende que a lista de objetos do esquema foi instanciada. As informações dos objetos gerenciados são entregues ao CIMOM para serem colocadas no repositório de dados pelos diversos provedores conectados. Os provedores correspondem a um conjunto de processos que se comunicam com os agentes de gerência de sistemas convencionais nos dispositivos gerenciados, obtendo os valores dos objetos definidos. Os provedores são responsáveis pela obtenção e apresentação dos dados de gerência dos protocolos convencionais de gerência de sistemas e redes, que estão sendo trocados com o agente do dispositivo gerenciado. Existem provedores que utilizam arquiteturas padronizadas como SNMP, CMIP e DMI, estes provedores são denominados Standard Providers. O framework WEBEM define os seguintes provedores: Provedores de Propriedade, retornam os valores de propriedade de objetos solicitados através de uma chave de identificação. Retorna informações em uma única instância. Provedores de Instância, retornam valores de instâncias de objetos. Retorna informações da instância em uma única classe; 83 Provedores de Classe, retornam classes e instâncias. Controlam todas as classes; Provedores de Namespace, são capazes de gerenciar um espaço de nome CIMOM definido. Controlam todos os espaços de nomes e instancias de objetos. Os dispositivos gerenciados contém um agente composto por um conjunto lógico de objetos gerenciados. Conforme detalhado em [HER99] estes objetos são representados por classes, com seus atributos e métodos apropriados. Estas classes são agrupadas de acordo com os domínios de gerência específicos que elas pertencem. Incluindo representações de objetos para gerência de redes SNMP e CMIP, e representação de objetos para gerência de sistemas DMI. Cada domínio de gerência é enxergado como uma representação de objetos controlada pelo CIMOM correspondente. 6.2 Componentes da Arquitetura WEBEM 6.2.1 CIM O modelo geral de informação CIM (Common Information Management) contém o modelo de descrição de dados para representação do ambiente gerenciado. Conforme detalhado em [DMT99] o CIM foi projetado para receber informações de agentes SNMP, CMIP, DMI entre outros. Permitindo que aplicações corporativas de diferentes desenvolvedores que utilizam plataformas heterogêneas, descrevam, criem e compartilhem todos os objetos de gerência. A intenção é criar aplicações de gerência corporativa e ferramentas que possam monitorar e controlar todas as redes sistemas e aplicações existentes nas empresas. O CIM é composto pelo meta esquema (CIM Meta-Schema) e pelos esquemas padrões (CIM Schemas). Existe ainda um arquivo texto padrão ASCII chamado Managed Object File (MOF) que contém as definições dos esquemas padrões (CIM Schemas) implementados. 6.2.1.1 CIM Meta-Schema 84 O meta esquema corresponde a definição formal do modelo. Define os termos que serão utilizados para expressar o modelo. Incluindo a maneira apropriada de usar estes termos e sua semântica. Os quatro principais elementos de um modelo são esquemas, classes, propriedades e métodos. O modelo define também dois tipos importantes de classes, as indicações e as associações e um tipo de propriedade que é a referência. Esquema, é definido como um conjunto de classes com um único proprietário. São utilizados para a nomeação e administração de classes. Dentro de um esquema os nomes de classes devem ser únicos; Classe, é um conjunto de instâncias do mesmo tipo, com as mesmas propriedades e métodos. A classe é a unidade básica de definição da estrutura de gerenciamento. Uma classe pode ser vista como um formulário para definição de objetos; Propriedade, valor utilizado para caracterizar uma instância de uma classe. A propriedade pode ser vista como um casal de funções get e set que quando aplicadas no objeto retornam e definem estados deste objeto; Método, define o tipo de conteúdo que pode ser aplicado sobre uma classe ou instância. A definição de um método é uma assinatura, que contém o nome do método, tipo de retorno e parâmetros; Trigger, é o reconhecimento de algum evento, mudança de estado ou alteração de alguma propriedade de um objeto; Indicação, objetos criados como resultado de um trigger. As indicações são tipos de classes, possuem propriedades e métodos e podem ser organizadas em hierarquia de tipos; Referência, são propriedades que uma classe ou instância possui. O valor é um ponteiro para um objeto; Associação, é um tipo de classe que possui uma ou mais referências. São utilizadas para criar relacionamentos entre objetos sem necessidade de alterar as suas definições; Qualificador, são utilizados para caracterizar classes, instâncias ou métodos. Permite a extensão do esquema de forma limitada e controlada. 85 6.2.1.2 CIM Schemas O esquema padrão corresponde a um conjunto padrão de classes com suas propriedades e associações. Estas propriedades e associações fornecem a base necessária para a organização da informação sobre todos os dispositivos gerenciados numa organização que irá utilizar o padrão WEBEM. O esquema padrão foi definido com o objetivo de promover a uniformidade dos procedimentos de requisição sobre a rede de gerenciamento. O esquema padrão (CIM Schema) é composto pelo Core Squema, Common Squema e Extension Squemas. O Core Squema é constituído por um conjunto de objetos que são referenciados por todas as áreas de gerência. O Core Squema é constituído das sequintes classes: Managed System Element, classe base para os elementos dos sistemas gerenciados. Todos os componentes serão instanciados como uma subclasse desta classe; Physical Element, classe correspondente aos elementos físicos. Exemplos: drivers de discos e adaptadores; Logical Element, classe correspondente aos elementos que não são físicos. Exemplos: Sistemas Operacionais e drivers de dispositivos; System, classe correspondente a identificação do sistema, como PC, hub ou router; Network Component, corresponde a representação lógica do dispositivo de rede física, como um ícone num mapa representando um servidor; Service, classes que representam as capacidades e funcionalidades de um elemento de sistema; Physical Package, classes que representam o conteúdo físico de cada dispositivo. Exemplos: um switch possui uma placa esta placa por sua vez possui um processador e assim por diante. 86 Além das classes o Core Schema é constituído de várias associações importantes: Component, relaciona partes de objetos com grupos de objetos; System Component, relacionam um sistema a seus elementos de sistema gerenciados; Dependency, relaciona as dependências existentes e dependências funcionais; Contains, relaciona a posição e localização de componentes físicos para expressar relações de conteúdo; 6.2.1.3 CIM Extensions Schemas As extensões de esquema (Extension Squemas) permitem o gerenciamento de ambientes e plataformas específicas. Os exemplos incluem o desenvolvimento de extensões de esquema para Sistemas Operacionais UNIX, Microsoft Windows, Acordo de Níveis de Serviço, entre outros listados no site www.dmtf.org. 6.2.1.4 MOF O arquivo texto padrão ASCII chamado Managed Object File (MOF), contém as definições dos esquemas padrões (CIM Schemas) implementados. O MOF serve de entrada para o compilador MOF de aplicações de gerência, que tem o objetivo de criar as chamadas apropriadas para o CIMOM. O compilador MOF define as classes, propriedades e qualificadores para serem incluídos no banco de dados CIMOM, e também coloca as instâncias dessas classes neste mesmo banco de dados. A linguagem UML é utilizada nas especificações DMTF para descrever a estrutura do esquema. A especificação CIM descreve a linguagem, convenção de nomes e técnicas de mapeamento para outros modelos de dados de framework de gerência. Incluindo as MIBs do protocolo SNMP, o Guidelines for Defining Managed Objects (GDMO) do CMIP e a Management Information Format (MIF) do DMI. Como todas as informações dos modelos são baseadas nos suas próprias definições de 87 esquema, um mapeamento precisa ser realizado para converter os dados de gerência convencionais para o formato MOF. 6.2.2 CIMOM O CIMOM, conforme descrito anteriormente é um gerenciador de objetos que fornece vários mecanismos para que as aplicações de gerência possam trocar dados com os objetos que estão sendo gerenciados. O CIMOM contem um modelo de dados cuja tarefa é consolidar e traduzir os dados de gerência provenientes de diferentes fontes como descrito na figura 2.6. 6.2.3 HMMP O HiperMedia Management Protocol (HMMP) é o protocolo de comunicação que transmite os objetos gerenciados CIM entre o servidor e o cliente. O HMMP encapsula e transmite os objetos CIM sobre protocolos de transporte como o TCP que é utilizado normalmente para comunicação Internet. O protocolo HMMP especifica que cada operação é tratada separadamente. Como exemplo, o suporte do CIMOM para criação, remoção, atualização e requisição de classes e instâncias serão modelados cada um com sua própria operação. O protocolo HMMP é projetado para ser mapeado sobre diferentes protocolos de transportes. O protocolo pode trabalhar orientado ou não a conexão. O protocolo TCP é o protocolo de transporte recomendado, por ser o protocolo típico para gerência via WEB e para comunicação na Internet. 6.2.3 XML Conforme detalhado em [DMT99] um dos últimos estudos realizados pela iniciativa WEBEM é a utilização da linguagem XML Extensible Mark-up Language, como um método de representação das informações de gerência. No site WEBEM 88 um documento escrito por Roger Boot, propõem o mapeamento entre o modelo CIM e construções XML. Isto poderá permitir qualquer objeto de gerência CIM ser representado na forma de um ou mais documentos XML. O maior benefício disto é a padronização da linguagem XML para a apresentação dos dados de gerência. Estes dados poderiam desta forma ser apresentados e manipulados por aplicações de gerência corporativa WEBEM. 6.3 CONCLUSÃO Neste capítulo foi descrita a iniciativa Web-based Enterprise Management - WEBEM [DMT99][HER99], sua arquitetura e componentes. A iniciativa WEBEM define um esquema de gerenciamento corporativo com o objetivo de trabalhar com a WEB e os frameworks convencionais de gerência de redes e sistemas existentes. A iniciativa WEBEM define um modelo de dados padrão para ser utilizado como repositório de dados comum de gerência. Permitindo que frameworks de gerência de redes e sistemas convencionais possam transformar os seus dados para este formato padrão. No próximo capítulo será apresentado um estudo de caso da solução de gerência corporativa Unicenter TNG. Neste capítulo esta solução é estudada sobre a ótica de implementação de funcionalidades de gerência via WEB e validação dos conceitos apresentados nos outros capítulos deste trabalho. 89 7 ESTUDO UNICENTER TNG 7.1 Introdução A solução de gerência corporativa Unicenter TNG, da empresa Computer Associates, é estudada neste capítulo sobre a ótica de implementação de funcionalidades de gerência via WEB e validação dos conceitos apresentados nos outros capítulos deste trabalho. Existem vários fabricantes de soluções de gerência que já implementam a gerência via WEB em seus produtos. A solução da Computer Associates foi escolhida pela sua disponibilidade, facilidade de instalação e configuração de seu framework de gerência, distribuído gratuitamente para diversas plataformas. Incluindo as plataformas Windows NT, plataformas UNIX de diversos fabricantes, como HP-UX, SUN Solaris, IBM AIX e a plataforma Linux. 7.2 Arquitetura UNICENTER TNG O framework Unicenter TNG [UNI00] é definido de forma a ser o centro do gerenciamento corporativo. Nele são concentradas todas as disciplinas, permitindo uma visão centralizada das diversas plataformas a serem gerenciadas e uma integração entre as diversas disciplinas de gerência. O gerenciamento de recursos não se limita a tecnologias específicas. Tendo um amplo controle de todos os recursos corporativos, atuando em todos os tipos de recursos: sistemas, redes, bancos de dados e aplicações. A integração de todos estes recursos oferece uma visão unificada deste ambiente, através de um conjunto de funções para gerenciamento desenvolvido com uma infra-estrutura flexível. O maior desafio do gerenciamento corporativo é a integração de várias ferramentas de diversas fontes. A Computer Associates criou o Framework Unicenter TNG, permitindo a integração entre fabricantes de diversas plataformas e aplicativos de gerência de terceiros. Este framework contém todos os serviços distribuídos básicos necessários para o gerenciamento corporativo integrado. 90 O framework Unicenter TNG [UNI00] é disponibilizado com a infra-estrutura necessária para o gerenciamento da maioria das plataformas existentes no mercado. Entre elas a plataforma Windows NT, UNIX, Netware, AS/400, Tamdem NSK e ainda os ambientes de Mainframe. O framework Unicenter TNG inclui as seguintes funcionalidades básicas: Enterprise Discovery, para a realização da descoberta ou discovery de todos os objetos de rede e recursos existentes na rede corporativa. Incluindo sistemas, estações redes, aplicações e bancos de dados; Manager/Agent Event Management, para a monitoração completa de status e logs de eventos, habilitando a resposta automatizadas para a mudança do status de objetos; Calendar Management, para a definição de data e sincronização baseadas em tempo, para fornecer uma coordenação das mudanças que afetam os processos de negócio; Reporting, para a criação de relatórios padronizados e customizados; Virus Detection, para detecção de vírus registrados e não registrados; Common Object Repository; o repositório de objetos suporta todas as funções de gerenciamento e a interface de mundo real (Real Word Interface), Interface de Negócio (Business Process View) e os elementos de interface de usuários incluindo as representações 2-D e 3-D; Event Notification Faciliy (ENF) e a Common Communication Interface (CCI), que reforçam a confiabilidade e escalabilidade do framework fornecendo uma infra-estrutura de mensagens; WEBEM Support, para habilitar os usuários corporativos a relacionarem interfaces de gerência WEB a outros dados de gerência WEBEM de diversas fontes, criando uma visão centralizada dos recursos dos ambientes de tecnologia da empresa. Entreprise/CSI (Configuration Standarization Initiative), para a gerência de estações e servidores; WakePC Technology, este sistema permite que técnicos executem tarefas de manutenção remotamente; 91 DMI Support, permite que administradores possam identificar, visualizar e gerenciar systemas, incluindo componentes de hardware e software e dados estáticos e dinâmicos; Real Word Interface, este serviço permite visualizar a topologia da rede e todos os recursos de computação na rede corporativa, através de uma interface real 2-D, 3-D e visualização via WEB. Para suportar a escalabilidade e flexibilidade requerida pelo gerenciamento em todos os níveis, o Unicenter TNG é baseado em uma arquitetura para gerenciamento em múltiplos níveis gerente/agente. Os agentes do Unicenter TNG são ativos e inteligentes, capazes de implementar políticas e coordenar juntamente com outros agentes ativos as funções de monitoração de eventos e estados, gerenciamento da configuração de ambientes distribuídos, entre outras. Interface com o Mundo Real (2-D, 3-D, WEB) Repositório de Objetos Gerente Gerente Gerente Gerente Agente Agente Agente Agente Figura 7.1 Arquitetura Unicenter TNG ... ... 92 A figura 7.1 descreve a arquitetura Unicenter TNG. A Arquitetura da solução Unicenter TNG [UNI00] é definida pelas camadas de interface de mundo real, repositório de objetos, gerentes e agentes. 7.2.1 Interface com o Mundo Real A Interface de Mundo Real ou Real Word Interface [UNI00] utiliza visualização em 3-D e animação para mostrar todos os recursos da rede, permitindo, assim, uma forma intuitiva de navegação através dos sistemas e conexões da rede, iniciando pelas cidades e prédios do mundo real. Esta Interface permite visualizar a topologia da rede e todos os recursos de computação na rede corporativa, como equipamentos, sistemas operacionais, aplicações, bancos de dados, entre outras. Possui visualização em 2-D e 3-D de todos os recursos da rede Interface Windows da Microsoft. Com a disponibilidade de um browser Java baseado nas tecnologias 2D ou VRML 3-D é possível, também, realizar o gerenciamento via WEB a partir de qualquer ponto da rede. O produto é configurável, permitindo aos clientes especificar mapas, edifícios e controlar a configuração das redes e sistemas operacionais. Todos os recursos da rede são representados como são no mundo real, e o funcionamento de cada componente é sinalizado através de alertas coloridos verde, indicando uma situação normal, amarelo indicando uma anormalidade ou vermelho indicando um problema crítico. 7.2.2 Repositório de Objetos As informações exibidas na console ou Wordview, estão armazenadas no repositório de objetos (Common Object Repository) do Unicenter TNG [UNI00], onde todas as funções de gerenciamento armazenam informações sobre os objetos gerenciados, suas propriedades e relacionamentos. As aplicações, hardware, software, bancos de dados e entidades como contas a pagar, contas a receber, recursos humanos, entre outros, são exemplos de objetos gerenciados. 93 Os objetos gerenciados pelo Unicenter são formatados com base no modelo padrão de objetos (Common Object Model), o que facilita a integração das diversas aplicações e inclui recursos de pesquisa que permitem as funções de gerenciamento encontrar e gerenciar objetos facilmente. 7.2.3 Visão de Negócios A visão de negócios [UNI00] ou Business Process View , permite visualizar o conjunto de objetos necessários a execução de aplicações críticas como servidores, bancos de dados, terminais e impressoras. É uma visão totalmente configurável dos processos de negócios da companhia para suas aplicações críticas. A visão tradicional de administradores de sistemas, bancos de dados, redes, entre outras, não permite enxergar todos os recursos necessários a execução de uma aplicação. Cada administrador preocupa-se com uma instância específica: A visão horizontal tradicional, não permite identificar processos de negócios que se utilizam de diversos componentes existentes. Através de Business Process views, o Unicenter TNG oferece uma nova visão de negócios, através da visão vertical, ou seja, é possível visualizar somente as máquinas e ocorrências envolvidas no processo de manufatura, nos aplicativos financeiros, e assim por diante. É possível saber por exemplo quais aplicativos ou negócios da empresa serão afetados pela queda de um servidor, ou descobrir se um determinado servidor é o gargalo de algum processo ou negócio. Um administrador de rede local poderia visualizar somente o seu ambiente computacional e suas ocorrências, enquanto que o administrador principal teria uma visão global do ambiente corporativo. 94 7.2.4 Auto Discovery A criação e carga do repositório de objetos com os dados que descrevem a rede corporativa é executada automaticamente pela função discovery que executa a detecção automática da rede. As funções realizadas pelo discovery [UNI00] automático incluem encontrar as entidades ou recursos e popular um repositório com os objetos gerenciados; determinar os relacionamentos entres os recursos e popular o repositório com representações destes relacionamentos. A função de descobrimento e detecção não somente detecta a topologia e dispositivos da rede, mas também os computadores e suas configurações de hardware e software. Ela detecta também bancos de dados e aplicações. Uma vez criado o repositório, estes objetos podem ser exibidos pela console ou WorldView do Unicenter. As entidades que eles representam podem ser controladas pelas aplicações de gerenciamento bem como por aplicações de terceiros. As principais vantagens do serviço discovery do Unicenter são descritas abaixo. Executar múltiplas instâncias de discovery simultaneamente; É possível Iniciar o discovery automaticamente ou manualmente ; É possível fazer um discovery de todas as entidades da rede ou somente de uma sub-rede específica; É possível especificar quais os recursos a serem detectados; 7.2.5 Gerentes e Agentes O Unicenter TNG [UNI00] implementa o gerenciamento em múltiplos níveis gerente/agente. Os gerentes podem estar localizados em qualquer lugar da rede e os agentes residem próximo dos recursos gerenciados. Os agentes coletam, identificam, filtram e enviam dados para os gerentes. Os gerentes analisam, controlam e correlacionam os recursos gerenciados e as informações do ambiente, analisando os padrões e tendências de forma a determinar a melhor forma de controlar os recursos gerenciados. A estrutura gerente/agente é flexível e escalável. 95 Um gerente pode gerenciar múltiplos agentes e múltiplos gerentes podem gerenciar um agente. Um gerente pode ainda atuar como um agente de outros gerentes. Esta interação e cooperação entre gerente e agente permite a gerencia corporativa distribuída. 7.2.6 Disciplinas de Gerência Corporativa O framework Unicenter TNG [UNI00] serve de base para as diversas disciplinas de gerência implementadas nas áreas de segurança, operações, redes, Servidores e Estações, Groupware, Aplicações e Bancos de Dados, Help Desk, Serviços Internet e Storage. Para que estas as soluções de gerencia sejam implementadas nestas áreas, agentes específicos são disponibilizados para cada área e plataforma. Existem mais de 50 agentes desenvolvidos para cada área e diversas plataformas. A documentação detalhada da implementação de cada gerente específico pode ser acessada na página http://www.cai.com/unicenter/ prodinfo.htm. 7.2.7 Tecnologia de Redes Neurais A tecnologia Neugents [UNI00] é composta por aplicações que utilizam a tecnologia de redes neurais para prever falhas antes que elas ocorram. Os sistemas convencionais de gerência de sistemas respondem somente a eventos baseados em suposições anteriores. Os Neugents são capazes de se adaptarem, aprendendo e observando a carga dos sistemas ao longo do tempo. A tecnologia Neugent lida com performance e disponibilidade e foi introduzida na versão 2.2 do Unicenter TNG. 7.2.8 Unicenter TNG SDK O kit de desenvolvimento de software Unicenter TNG fornece conjuntos de APIs documentadas que mapeam cada camada da arquitetura TNG. Estas APIs 96 correspondem a maneira para desenvolver aplicações de gerência integrando soluções de clientes e terceiros. 7.3 Análise da Solução Unicenter TNG 7.3.1 A Solução Unicenter TNG e a Gerência Corporativa A solução Unicenter TNG é apresentada pelo seu fornecedor como uma solução de gerência corporativa, com o objetivo de integrar as diversas áreas de gerência descritas no capítulo 2 e 3 deste trabalho. Incluindo as áreas de redes, sistemas, aplicações e serviços. A tecnologia de agentes permite a implementação da gerência das diversas disciplinas nas áreas de segurança, operações, redes, Servidores e Estações, Groupware, Aplicações e Bancos de Dados, Help Desk, Serviços Internet e Storage. Incluindo agentes específicos disponibilizados para cada área e plataforma, incluindo servidores Windows, UNIX e Mainframe entre outras. 7.3.2 A Solução Unicenter TNG e os Padrões de Mercado A solução Unicenter TNG faz parte dos chamados sistemas convencionais de gerência corporativa, descritos no capítulo 2 deste trabalho. E tem como base, a aderência de seu framework aos padrões abertos, incluindo a o padrão SNMP para a área de gerência de redes; o padrão DMI para a gerência de sistemas e o padrão WEBEM para a gerência via WEB. A pesar da solução da Computer Associates ser baseada em padrões abertos, assim como outros fornecedores de sistemas convencionais, esta solução não integra em seu framework as soluções de seus concorrentes. A gerência de eventos transmitidos pelo produto Netview da IBM ou Open View por exemplo, não pode ser integrada diretamente na console de eventos da solução Unicenter TNG. 97 A integração de produtos de terceiros é feita através do kit de desenvolvimento de software SDK do Unicenter TNG. Este kit fornece conjuntos de APIs documentadas que mapeam cada camada da arquitetura TNG. Estas APIs correspondem a maneira encontrada para desenvolver aplicações de gerência integrando soluções de clientes e terceiros. 7.3.3 A Solução Unicenter TNG e a Gerência Via WEB A gerência via WEB foi implementada na versão 2.2 do Unicenter TNG como uma interface alternativa para a gerência . Nesta versão foi disponibilizada o acesso via WEB através das tecnologias de browsers Java 2-D ou VRML 3-D, estudas no capitulo 4 deste trabalho. A disponibilização desta interface permite a gerência de todos os recursos de qualquer ponto da rede corporativa via WEB. O Unicenter TNG permite a visualização de informações via browser de forma hierárquica ou em árvore. É possível visualizar a arvore das classes e instâncias; objetos definidos para cada classe e a topologia de redes em formato de folders. Através da ferramenta Class Wizard disponível nos administradores podem criar ou modificar recursos gerenciados. browsers, os As mudanças realizadas via Class Wizard afetam as classes herdadas e seus objetos. A ferramenta ObjectView fornece detalhes performance dos dispositivos de rede. Através desta ferramenta são realizadas consultas SNMP para acessar em tempo real as informações contidas nas MIBs dos dispositivos. As informações são apresentadas através de painéis no monitor. Conforme estudado anteriormente neste capítulo o framework Unicenter TNG oferece suporte ao padrão WEBEM. Esta tecnologia foi estudada no capítulo 6 deste trabalho. Este suporte permite que usuários corporativos a relacionem interfaces de gerência WEB a outros dados de gerência WEBEM de diversas fontes, criando uma visão centralizada dos recursos dos ambientes de tecnologia da empresa. 98 8 CONCLUSÕES Com base nas informações apresentadas nos capítulos anteriores, é possível concluir que a utilização de tecnologias WEB em sistemas de gerência corporativa já é uma realidade presente [DMT99][IBM99][JAV99][UNI00][WEB99] na maioria das soluções existentes no mercado. Existe uma tendência de utilização de Tecnologias WEB para a implementação da gerência corporativa com objetivo de complementar as áreas de gerência existentes. O que se pode constatar é que a utilização de tecnologias WEB não significa simplesmente uma nova maneira de se apresentar informações de gerência através de uma interface via browser [HERN99], e sim uma nova plataforma de integração robusta, onde a redução de custos [WOL00] e a facilidade de gerenciamento, seja via rede corporativa ou Internet, são fatores determinantes. Conforme estudado anteriormente no capítulo 2, os sistemas convencionais de gerência corporativa tiveram um grande amadurecimento ao longo dos últimos 10 anos, suportando diversos padrões existentes no mercado. Neste período foram acrescidos diversos tipos de gerenciamento e novas funcionalidades. Incluindo a integração com os diversos padrões abertos existentes e a adoção das tecnologias WEB. Entre os padrões estudados no capítulo 3, estão o padrão SNMP [MUR98][STA96], CMIP [LEI96] e TMN [HER99] para a área de gerência de redes; o padrão DMI [HER99] para a área de gerência de sistemas e o padrão ARM [HER99] para gerência de aplicações. Todos estes frameworks de gerência têm estendido sua atuação sobre a gerência de redes de dados e telecomunicações. E adicionalmente aos padrões utilizados vários outros consórcios e fóruns estão desenvolvendo novos frameworks e APIs [DMT99][HER99][JAV99], promovendo desta forma o aumento da abrangência da gerência corporativa de redes e sistemas. Entre estas iniciativas, estão as iniciativas de desenvolvimento e padronização de frameworks baseados e tecnologia WEB, que propõem a 99 integração dos padrões existentes, principalmente na área de gerência de redes, aos novos padrões que estão sendo definidos. No capítulo 4 foi estudado o conceito de gerência via WEB e sua arquitetura [HER99] composta pelos modelos de framework nativo, proxy e gateway. Foram analisadas a evolução da Internet e da WEB e as tecnologias empregadas para a implementação da gerência via WEB. Entre as tecnologias estudadas no capítulo 4, estão o conjunto de protocolos de comunicação TCP/IP [MUR98][STA96]; os browsers Internet [HER99], servidor WEB [HER99]; as Markup Languages, incluindo HTML, XML entre outras [HER99]; as linguagens de programação WEB Java, C, C++ [HER99]; as linguagens script WEB JavaScript, ECMAScript, PERL, TCL e Phyton [HER99]; os formatos gráficos GIF, JPEG [HER99] e NPG [PNG00]; os padrões MIME, CGI, ActiveX, VRML entre outros [HER99]. Nos capítulos 5 e 6 foram estudadas as duas principais iniciativas de projeto de frameworks de gerência via WEB, a iniciativa Java Management Extension (JMX) [JAV99] da Sun Microsystems e a Web-based Enterprise Management (WEBEM) [DMT99][HER99]. A Java Management Extension (JMX) define uma arquitetura de gerência, APIs, e serviços de gerência, todos sobre uma única especificação. A iniciativa WEBEM define um esquema de gerenciamento corporativo com o objetivo de trabalhar com a WEB e os frameworks convencionais de gerência de redes e sistemas. Finalmente, no capítulo 7 foi realizado um estudo de caso da solução Unicenter TNG [UNI00] da empresa Computer Associates. Neste capítulo esta solução foi estudada sobre a ótica da implementação de funcionalidades de gerência via WEB e a validação dos conceitos apresentados nos outros capítulos deste trabalho. A partir deste estudo é possível concluir que, assim como outros fabricantes de soluções de gerência, a empresa Computer Associates apresenta uma forte inclinação para a utilização de gerência via WEB. Incluindo o suporte para sistemas convencionais de gerência de redes e sistemas com base nos padrões SNMP e DMI. Possui ainda, uma arquitetura orientada a objeto, incluindo agentes inteligentes e repositório de objetos. E a grande inovação correspondente a 100 interface para mundo real (Real Word Interface) que permite a visualização em duas ou três dimensões através de browsers baseados na tecnologia VRML [HER99]. O acesso as informações de gerência pode ser realizado facilmente via ferramenta browser, de qualquer lugar da rede corporativa ou através da Internet. 101 BIBLIOGRAFIA [DMT99] Distributed Management Task Force: http://www.dmtf.org/wbem/index.html . dezembro/1999 [HAR99] Harnedy, S. WEB-Based Management for de Enterprise.NewJersey : Ed. Prentice Hall,1999 [IBM99] IBM Java Web-Based Network Management : http://www.networking.ibm.com/cma/cmajava.html . dezembro/1999 [JAV99] Java Management Extension : http://www.javasoft.com/products/JavaManagement/wp/ . dezembro/1999 [LEI96] Leiwand, A;Conroy, K.F. Network Management.New York : Ed. AddsonWeley,1996 [MUR98] Murray, J.d. Windows NT SNMP.California : Ed. O´Reilly,1998 [PNG00] Portable Network Graphics: http://www.w3.org/TR/REC-png.html . fevereiro/2000 [STA96] Stallings, W. SNMP, SNMPv2, and RMON - Practical Network Management,. Ed. Addison-Wesley, 1996 [THE99] The Simple Times: http://www.si’mple-times.org/pub/simple-times/issues/43.html . novembro/1999 [THE00] The Word Wilde Web Consortium: http://www.w3.org/ . janeiro/2000 [UNI00] Unicenter TNG Framework: http://www.cai.com/products/unicent/framework/tng_framework.htm . janeiro/2000 102 [WEB99] Web-Based Network Management: http://www.baynetworks.com/products/Papers/WEBbased.html . dezembro/1999 [WOL00] Wolcott k. Reducing Your Network Hardware Support Costs by Adding Web-based Management : http://www.summitonline.com/techtrends/papers/rapid1.html . janeiro/2000