Sie sind auf Seite 1von 2

Desenvolvimento de aplicaes de gesto NETCONF

Paulo Tavares
DETI/IT Universidade de Aveiro Aveiro, Portugal pcct@ua.pt

Pedro Gonalves
ESTGA/IT Universidade de Aveiro gueda, Portugal pasg@ua.pt

Jos Luis Oliveira


DETI/IEETA Universidade de Aveiro Aveiro, Portugal jlo@ua.pt

Resumo Este artigo descreve o processo de desenvolvimento de aplicaes de gesto NETCONF, usando como base no IDE Eclipse, bem como o papel desempenhado por componentes que foram especialmente construdos pelos autores para este ambiente. Keywords; Gesto de redes, NETCONF, YANG, SDK

de aplicaes de gesto. Fornece ainda outras funcionalidades como a importao de dados de MIBs j existentes, edio e validao de mdulos YANG, traduo destes mdulos para outros formatos e a gerao automtica de toda a aplicao distribuda. II. PROCESSO DE DESENVOLVIMENTO

I.

INTRODUO

O desenvolvimento de solues de gesto de redes e de sistemas uma tarefa rdua sendo por norma realizada por profissionais com um elevado grau de conhecimento das diferentes tecnologias de gesto e das diferentes caractersticas dos equipamentos. De de uma forma simplista, o processo consiste na definio do modelo de dados da aplicao, na codificao da lgica computacional numa linguagem de programao, na definio e implementao dos interfaces de comunicao das aplicaes e no teste das aplicaes. Obviamente que o desenvolvimento processa-se em ciclos, porque qualquer erro cometido em qualquer dos passos anteriormente descritos requer que sejam novamente todos percorridos. Adicionalmente, cada uma das fases enunciadas requer uma ferramenta especfica e que os resultados de cada fase sejam entregues ferramenta utilizada na fase seguinte. A tecnologia NETCONF [1] tem vindo a ser desenvolvida pelo IETF com o objectivo de substituir a tecnologia de gesto SNMP tentando resolver as deficincias que desde cedo lhe tm vindo a ser apontadas. O protocolo NETCONF foi normalizado em 2006 e utiliza tecnologias W3C tais como o XML, o XML-RPC e o SOAP que so suportadas por um elevado nmero de bibliotecas de manipulao de XML e em mltiplas ferramentas de desenvolvimento. Existe tambm um amplo suporte para o desenvolvimento de aplicaes distribudas. O protocolo no especifica nada em termos de definio de modelo de dados, tendo sido normalizada uma linguagem de especificao de dados designada de YANG [2]. A linguagem permite a modelao dos dados de configurao e de estado, dos Remote Procedure Calls (RPCs), e das notificaes. O processo de normalizao permitiu que fossem criados mecanismos para a traduo dos dados para outros formatos, a criao de ferramentas que permitem a gerao de documentao e ainda a possibilidade de gerao automtica de cdigo [3]. Este artigo documenta o processo de desenvolvimento de solues de gesto baseadas em NETCONF utilizando uma plataforma de desenvolvimento integrado adaptada para o efeito [4] a partir do IDE Eclipse. A plataforma inclui um parser para a linguagem YANG e permite a completa criao

No processo de desenvolvimento de aplicaes de gesto utilizando o IDE NETCONF, foi usada parte de uma MIB amplamente utilizada em aplicaes de gesto, que foi traduzida para o seu equivalente YANG atravs do IDE. O excerto utilizado foi uma parte da IP-MIB que especifica a estrutura ipAddressEntry. O mdulo IP-MIB depende direta ou indiretamente dos mdulos INET-TYPES, SNMPv2-TC, INETADDRESS-MIB, IF-MIB, IANAifType-MIB e YANG-SMI, sendo que estes foram retirados da base de dados de mdulos do site da Netconf Central e traduzidos para o formato XSD atravs do editor. O processo de importao da MIB para YANG cria um novo mdulo com o mesmo nome e namespace, sendo definida a estrutura equivalente contendo os elementos presentes na MIB, mas utilizando a sintaxe YANG. Este novo mdulo YANG foi posteriormente transposto para XSD e foi criada a aplicao de gesto NETCONF. Uma vez traduzido o mdulo para o formato XSD foram gerados atravs do editor os componentes do servidor e cliente que implementam a aplicao de gesto. O sistema gerado cria automaticamente uma variedade de classes java. A classe NetconfStub implementa a comunicao do cliente com o servio, designando as operaes que este pode realizar. Estas operaes, quando enviadas, so processadas no servidor pela classe NetconfSkeleton. As classes NetconfStub e NetconfSkeleton empregam os tipos de dados definidos relativos ao NETCONF onde as classes ConfigInlineType e DataInlineType derivam tipos de dados definidos nos restantes ficheiros XSD usados na criao do sistema, que permite por exemplo a instanciao do tipo de dados IPAddressEntryType definido pela estrutura ipAddressEntry includa no mdulo IPMIB. Para o cliente interagir com o servio ser necessrio a criao de um programa principal em Java, que pode ser executado a partir do Eclipse, onde dever ser instanciada uma varivel NetconfStub a partir da qual podem ser enviadas as mensagens hello ou rpc. O servidor responde respectivamente com mensagens hello e rpc-reply, possibilitando ao cliente a gesto do equipamento. A gesto do equipamento realizada com o auxlio das operaes NETCONF que so transportadas nas mensagens rpc, podendo estas operaes por sua vez

incluir tipos de dados derivados de um modelo de dados previamente definido em YANG. O servidor tambm compreende essas operaes e tipos de dados uma vez que implementa exatamente as mesmas classes definidas no cliente, processando as mensagens recebidas e agindo de acordo com a lgica implementada na sua classe skeleton. O programa desenvolvido consiste num programa simples que apenas estabelece a sesso, altera um dos parmetros de configurao definidos pelo modelo de dados e por fim encerra a sesso NETCONF. As aplicaes de gesto em NETCONF so geradas atravs dos documentos WSDL retirados da RFC 4743. Quando criado um novo projeto YANG no editor so includos automaticamente pelo assistente os ficheiros myNetconfService.wsdl, netconf-soap_1.0.wsdl, netconf.xsd e notification.xsd, essenciais para a criao do servio bsico em NETCONF. Os ficheiros netconf.xsd e notification.xsd foram retirados diretamente da RFC 4741 [1] e da RFC 5277 [5] respectivamente. Os ficheiros WSDL descrevem a localizao, as mensagens e os contedos passveis de serem trocadas na execuo do servio, enquanto os ficheiros XSD contm a definio dos tipos de dados e operaes base do protocolo NETCONF. A criao de uma nova aplicao de gesto NETCONF requer que o utilizador crie um novo Web Service Project, atravs do WTP onde deve ser definido o Tomcat Server como runtime server e o Apache Axis2 como o Web service runtime. O cliente pode ser gerado de forma similar, mas escolhendo um Web Service Client Project. O WTP permite duas alternativas para a implementao de data binding no processo de gerao: o XMLBeans data binding e Axis2 data binding (ADB). Ambos permitem a gerao de cdigo derivado de ficheiros XSD embora o ADB apresente algumas limitaes no suporte de schemas complexos em relao ao XMLBeans que consequentemente podem originar erros no cdigo gerado. O modelo de comunicao entre o cliente e o servidor de monitorizao NETCONF consiste num pedido de subscrio que implementada atravs de um pedido sncrono, e por um conjunto de mensagens que se designam de notification que so enviadas assincronamente do agente para o gestor. Ao contrrio do que acontece com a tecnologia SNMP onde so utilizados dois sockets diferentes utilizando dois portos diferentes, um para as aes de configurao e outro para aes de monitorizao, no caso do NETCONF toda a comunicao efectuada utilizando o mesmo web service. O processo de criao do esqueleto da aplicao distribuda efetua j a preparao das classes necessrias pode ser classificado como um web service assncrono. A comunicao entre o cliente e o servidor (Figura 1) requer que seja instanciado um CallbackHandler que passado ao agente, quando o gestor efetua a criao da subscrio. O agente ao receber o pedido cria uma thread autnoma para monitorizar as variveis e enviar as notificaes para o gestor, assim que isso se

justifique. Essa thread dever ser eliminada quando houver um pedido de cancelamento da subscrio ou se o perodo de vaidade da subscrio existente for excedido.
Cliente C a ll B a c k rpc(create-subscription) rpc-replay(ok) notication notication notication rpc(close-subscription) rpc-replay(ok) T h r e a d Servidor

O processo de gerao da componente de monitorizao da rede foi em tudo semelhante ao processo de gerao da componente de configurao: foi utilizado a componente da IPMIB que define as estruturas de monitorizao e foi traduzida essa componente para YANG; foi criado o XSD com base no mdulo YANG; e foi criado o esqueleto de uma aplicao distribuda. A gerao automtica de cdigo foi efectuada com base na informao obtida do ficheiro XSD e da descrio do Web service existente no excerto WSDL na RFC 5277. III. CONCLUSES A integrao de ferramentas que permitem a especificao do modelo de dados, com ferramentas para o desenvolvimento e gerao automtica de cdigo, permite que todo o ciclo de desenvolvimento possa ser unicamente realizado por uma mesma aplicao. A integrao de funcionalidades num IDE torna o processo de criao de aplicaes mais rpido e de fcil adaptao por parte dos utilizadores, reduzindo o tempo de aprendizagem e evita os processos de exportao de dados de diferentes formatos entre as diferentes aplicaes, integrando todo o workflow de desenvolvimento numa nica aplicao, e reduz os erros associados aos processos de transferncia de dados entre diferentes aplicaes desse mesmo workflow. REFERNCIAS
[1] [2] [3] [4] R. Enns, NETCONF Configuration Protocol, RFC 4741, Dezembro de M. Bjorklund, YANG - A Data Modeling Language for the Network Yuma - YANG-based Unified Modular Automation Tools, P. Tavares, P. Gonalves, and J. L. Oliveira, "An IDE for NETCONF 2006. Configuration Protocol (NETCONF), RFC 6020, 2008. http://sourceforge.net/projects/yuma/, 2011-02-21. management applications," in 7th Latin American Network Operations and Management Symposium, Quito, Equador, 2011. [5] H. T. Sharon Chisholm, NETCONF Event Notifications, RFC 5277, Julho de 2008.

Figura 1 - Modelo de funcionamento da componente de monitorizao

Das könnte Ihnen auch gefallen