Journals Homepage: www.sustenere.co/journals ABORDAGEM DIRIGIDA A MODELOS PARA O GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE RESUMO As Redes Definidas por Software (SDN) vêm obtendo grande atenção por parte da comunidade acadêmica e também da indústria, devido a diversos aspectos. Apesar disso, o gerenciamento e o desenvolvimento de aplicações voltadas para este novo campo em redes de computadores ainda são complexos, carentes de metodologias e ferramentas que permitam utilizar todo o nível de abstração possibilitado pelas SDNs. Com foco neste problema, o presente trabalho propõe uma Domain-Specific Modelling Language (DSML), aplicada à abordagem de SDN, aumentando o nível de abstração para o gerenciamento destas redes. Revista Brasileira de Administração Científica, Aquidabã, v.5, n.2, Out 2014. ISSN 2179‐684X SECTION: Articles TOPIC: Sistemas e Tecnologia da Informação Anais do Simpósio Brasileiro de Tecnologia da Informação (SBTI 2014) PALAVRAS-CHAVES: Redes Definidas por Software; DSML; Sistemas. DOI: 10.6008/SPC2179‐684X.2014.002.0014 MODEL-DRIVEN APPROACH TO SOFTWARE-DEFINED NETWORKING MANAGEMENT ABSTRACT Software-Defined Networking (SDN) has been getting great interest from the academic community and industry, due to several aspects. Nevertheless, the application development oriented for this new SDN field is still complex, lacking methodologies and tools that enable use all the level of abstraction afforded by these networks. Focusing on this problem, the current paper proposes a Domain-Specific Modeling Language (DSML) applied to SDN, which raises the level of abstraction in SDN management. KEYWORDS: Software-Defined Networking, Domain-Specific Modeling Language; Systems. Felipe Alencar Lopes Universidade Federal de Pernambuco, Brasil http://lattes.cnpq.br/6490167896355223 [email protected] Stênio Flávio de Lacerda Fernandes Universidade Federal de Pernambuco, Brasil http://lattes.cnpq.br/8598484164048317 [email protected] Received: 31/08/2014 Approved: 15/10/2014 Reviewed anonymously in the process of blind peer. Referencing this: LOPES, F. A.; FERNANDES, S. F. L.. Abordagem dirigida a modelos para o gerenciamento de redes definidas por software. Revista Brasileira de Administração Científica, Aquidabã, v.5, n.2, p.186‐201, 2014. DOI: http://dx.doi.org/10.6008/SPC2179‐ 684X.2014.002.0014 Revista Brasileira de Administração Científica (ISSN 2179‐684X) © 2014 Sustenere Publishing Corporation. All rights reserved. Rua Dr. José Rollemberg Leite, 120, CEP 49050‐050, Aquidabã, Sergipe, Brasil WEB: www.sustenere.co/journals – Contact: [email protected] Abordagem dirigida a modelos para o gerenciamento de redes definidas por software INTRODUÇÃO A arquitetura da Internet tem se tornado complexa e difícil de gerenciar. A necessidade de tornar a Internet e outras redes de computadores complexas mais dinâmicas, permitindo novas técnicas de gerenciamento, fez surgir um novo paradigma chamado Rede Definida por Software, do inglês Software-Defined Networks (SDN). As SDNs permitem separar a parte lógica da rede (control-plane) em um plano desacoplado dos dispositivos de encaminhamento (forwarding-plane). As políticas de uma SDN são definidas através de um controlador externo que compõe o controlplane (FEAMSTER et al., 2013). Neste cenário, o protocolo denominado OpenFlow tem o papel de determinar o comportamento da rede, além de permitir e definir a comunicação entre os dispositivos de encaminhamento e os controladores (MCKEOWN et al., 2008). Atualmente, diversas abordagens existem para tornar possível a gerência da rede através de políticas fazendo uso subjacente do protocolo OpenFlow (FOSTER et al., 2013; VOELLMY & HUDAK, 2011). Apesar de permitir várias formas de gerenciamento, o uso de diferentes tecnologias para definir o comportamento de uma SDN pode torná-la complexa e difícil de manter, (SHERWOOD et al., 2009). O contexto atual mostra a importância em se ter uma plataforma única que permita o gerenciamento destas redes, atendendo as diversas estruturas subjacentes. O principal conceito que torna a proposta deste trabalho única é o paradigma Model-Driven Development (MDD), que tem sido utilizada em diversos tipos de redes, aplicando-se à criação de aplicações e modelagem de componentes destas redes, resultando na redução da complexidade no gerenciamento, e permitindo que especialistas do domínio lidem apenas com problemas relativos ao desenho e comportamento destas redes (RODRIGUES et al., 2011). Além disso, a associação entre SDN e MDD ainda não foi investigada por trabalhos anteriores. Este trabalho propõe os fundamentos inicias para a utilização do paradigma MDD na gerência de SDNs, visando a interoperabilidade entre controladores, e a redução da complexidade envolvida no gerenciamento. Especificamente, a proposta deste trabalho apresenta a associação entre o paradigma MDD, através de uma Domain-Specific Modelling Language (DSML), e os conceitos relativos ao gerenciamento de SDNs. Esta associação contribui para o aumento no nível de abstração, formalizando as etapas do gerenciamento das SDNs, e reduzindo a possibilidade de ações errôneas por parte de especialistas do domínio e operadores de rede. O restante deste artigo está organizado da seguinte forma: primeiro é exibida a fundamentação teórica para os conceitos utilizados na proposta, posteriormente apresentamos uma solução baseada em MDD para o problema de gerenciamento em SDN apresentado nesta introdução. Os trabalhos relacionados, a discussão dos resultados e a conclusão completam em ordem a estrutura do trabalho. REVISÃO TEÓRICA Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 187 LOPES, F. A.; FERNANDES, S. F. L. O interesse pela utilização de SDN vem crescendo cada vez mais nos últimos anos. Estudos em destaque abordam a abstração do baixo nível de implementação e especificação existente na interação entre operadores de rede e o protocolo OpenFlow, utilizado subjacentemente nas SDNs (FERGUSON et al., 2013; FOSTER et al., 2013; VOELLMY et al., 2011). Basicamente, nestes estudos, camadas de abstração têm sido adicionadas para facilitar a criação de políticas e aplicações em uma SDN, além de resultar em tentativas de redução dos possíveis erros existentes na manipulação destas políticas e aplicações. Estas camadas se relacionam com o controlador da SDN, os pacotes e os dispositivos de encaminhamento. Considerando esta tendência em criar abstrações que diminuam o nível de complexidade existente na interação com as SDNs, motiva-se a investigação dos conceitos de MDD aplicados ao gerenciamento de SDNs, especificamente. A utilização do paradigma MDD já foi investigada em outros tipos de redes de computadores, tais como: Wireless Sensor Networks (WSN) (RODRIGUES et al., 2011), Software-Defined Radio (SDR) (CLAYPOOL et al., 2009), e redes Ethernet (IMTIAZ et al., 2008). Este capítulo mostra o contexto das SDNs, os principais conceitos, e os principais problemas que existem quando se observa o gerenciamento destas redes. Além disso, a fundamentação de MDD, através de uma associação com SDN, reforça a proposta para o gerenciamento de SDNs abordada por este artigo. Software-Defined Networking (SDN) A separação entre o plano de controle e o plano de encaminhamento é o pilar do paradigma e arquitetura SDN. Esta separação permite que a rede se desenvolva, reduzindo a complexidade para implantar novos protocolos ou atualizar qualquer aplicação de rede, incluindo protocolos experimentais (FEAMSTER et al., 2013). SDN surge da necessidade atual em que operadores e aplicações de rede precisam implementar novas estratégias na rede, de forma robusta e dinâmica em cenários realísticos, suportando o crescimento da complexidade existente nas aplicações e serviços da Internet. Arquitetura de rede tradicional Arquitetura de SDN Figura 1: Comparativo entre arquiteturas de rede. Por meio de uma nova arquitetura, SDN torna possível que redes de computadores sejam programáveis. Quando o controle lógico é separado dos dispositivos de encaminhamento, toda a Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 188 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software inteligência da rede (e.g. políticas, balanceamento de carga) é também movida para o controlador. O controlador SDN se torna o componente de rede responsável por gerenciar a rede, como mostra a Figura 1. Tal estratégia de gerenciamento é realizada através de uma tabela de fluxo (flow table) presente nos switches, que é utilizada conforme ela recebe políticas ou regras de rede, definidas pelo controlador. Em outras palavras, as entradas da tabela de fluxo adicionadas pelo controlador nos switches os instrui em como manipular pacotes ou fluxos. O controlador possui toda informação sobre a rede (e.g. onde os hosts estão conectados, a topologia da rede, a fonte e o destino de cada pacote), e envolve uma séria de detalhes para lidar com resolução de conflitos que envolvem políticas em geral. Além disso, é papel do controlador evitar comportamentos errôneos na rede. Vale ressaltar que diversos controladores têm sido propostos (GUDE et al., 2008; ERICKSON, 2013; PROJECT FLOODLIGHT, 2014), neste trabalho, devido à sua característica open source, utilizaremos o POX (NOX Repo, 2014) como controlador subjacente para geração de código. Figura 2: Arquitetura SDN e suas camadas. Visando fornecer uma visualização melhor do que é o plano de controle de uma SDN, é comum nomear e diferenciar duas interfaces: (1) o northbound é uma interface relacionada com elementos de alto nível, tais como aplicações e serviços de rede, que oferecem suporte para realização do gerenciamento das SDNs, instruindo controladores através de APIs e políticas de rede bem-definidas, e (2) o southbound que permite em sua interface a comunicação entre os controladores e os dispositivos de encaminhamento. A Figura 2 ilustra estas interfaces. No plano de controle, é possível obter uma perspectiva que engloba o relacionamento entre as interfaces northbound e southbound, identificando as características intrínsecas deste relacionamento. A interface northbound tem a responsabilidade de abstrair funções subjacentes da rede, de uma maneira que operadores de rede possam implementar políticas e gerenciar a rede para atingir seus objetivos, eliminando a necessidade de lidar com outros aspectos da rede que não estejam relacionados com suas ações. Por outro lado, a interface southbound convergiu para utilização do protocolo OpenFlow (McKeown et al., 2008), o qual tem sido limitado a questões de eficiência do plano de dados e integração ao plano de controle. A southbound habilita switches SDN a se comunicarem com os controladores SDN, de modo que os switches possam lidar com pacotes Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 189 LOPES, F. A.; FERNANDES, S. F. L. de entrada, identificar a topologia da rede, e aplicar regras no comportamento da rede, que são definidas através de aplicações, APIs, ou serviços no northbound. Resumidamente, pode-se observar que o gerenciamento de uma SDN ocorre através da interface northbound de um controlador SDN. Este controlador irá realizar as interações com os fluxos e dispositivos de encaminhamento na rede de forma que as políticas ou regras estabelecidas por um operador, serviço ou aplicação de rede através da interface northbound sejam aplicadas corretamente nos elementos ligados ao southbound do controlador. Gerenciamento SDN Operadores de rede são responsáveis por configurar e gerenciar a rede para seguir várias políticas de alto nível, e para responder a uma grande variedade de eventos de rede (e.g. aumento de tráfego, falhas) que podem ocorrer. O gerenciamento da rede continua incrivelmente difícil devido à complexidade em implementar estas políticas de alto nível por meio de interfaces de configuração de baixo nível. Atualmente as redes fornecem pouco ou nenhum mecanismo para diminuir esta complexidade (KIM & FEAMSTER, 2013). Apesar de não existir um conjunto completo de definições para o gerenciamento de SDN, neste trabalho utilizaremos o conjunto de domínio para controle de rede definido por Kim e Feamster (2013) para SDNs. Este conjunto, exibido no Quadro 1, envolve uma variedade de políticas que se encaixam em três tipos diferentes de estruturas de rede, que são complexos para implementar em linguagens de configuração convencionais. Quadro 1: Possíveis domínios para gerenciar num ambiente de rede. Domínio para Controle Tempo Uso de dados Status Fluxo Exemplos Horários de pico, período de férias Quantidade de dados utilizada, taxa de tráfego Autenticação, identidade de dispositivo ou usuário Porta de entrada, ou saída, destino Informações do quadro: (1) Tempo - operadores de rede geralmente precisam implementar políticas onde o comportamento da rede depende da data ou horário no dia; (2) Uso de dados algumas vezes, operadores especificam políticas onde o comportamento da rede depende da quantidade de dados utilizada por seus usuários; (3) Status - um operador deve especificar privilégios para diferentes grupos de usuários de acordo com seus status. O mesmo ocorre para dispositivos específicos na rede; (4) Fluxo - o comportamento da rede também deve ser gerenciado a partir de informações de fluxo, especificados em um pacote ou um conjunto de pacotes. Além dos conceitos relacionados ao domínio de controle, para realizar o gerenciamento de SDNs, as políticas são implantadas por meio de códigos executáveis (semelhante à programação de sistemas em geral). Estes códigos têm sido criados a partir do uso de Domain-Specific Languages (DSL), que abstraem parte da complexidade envolvida na interação direta com as funcionalidades do protocolo OpenFlow e outras linguagens de baixo-nível utilizadas na Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 190 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software implementação destas funcionalidades. O esquema exibido na Figura 3 traduz essa organização no gerenciamento de SDNs e o papel destas DSLs. Figura 3: Esquema para gerenciamento de SDNs. Model-Driven Development (MDD) Aumentar o nível de abstração no gerenciamento de sistemas sempre foi um objetivo das tecnologias em computação. O paradigma MDD foca na automação de várias tarefas complexas, tais como: suporte para persistência de sistemas, interoperabilidade, e distribuição, tendo como objetivo subjacente a melhora na produtividade, isto é, reduzir a complexidade do desenvolvimento de aplicações ou gerenciamento de ambientes computacionais (ATKINSON & KUHNE, 2003). Apesar de existirem definições diferentes para MDD, neste artigo, fundamentaremos MDD em dois principais aspectos: o conceito MDD e sua infraestrutura. Conceitualmente, MDD é uma visão arquitetural do paradigma Model-Driven Engineering (MDE) para desenvolvimento de aplicações a partir de modelos (STAHL et al., 2006). Ou seja, produção de código automatizada a partir de modelos visuais. Entretanto, este é apenas um dos três principais componentes do paradigma MDD: (1) a própria produção de código a partir de modelos, (2) a linguagem de modelagem (DSML), e (3) o metamodelo desta linguagem (ATKINSON & KUHNE, 2003). Então, para a construção de uma infraestrutura MDD e concretização destes três componentes, os seguintes requisitos devem ser atendidos: (1) Definição dos conceitos disponíveis para criação de modelos e as regras que os regem; (2) A notação utilizada para representação os modelos; (3) Definição de como elementos dos modelos representam elementos do mundo real, incluindo artefatos de software; (4) Elaboração de conceitos para facilitar extensões dinâmicas do usuário para conceitos do modelo, notação do modelo, e os modelos criados a partir deles; (5) Conceitos para facilitar o intercâmbio de conceitos de modelos e notação, e os modelos criados a partir deles; (6) Conceitos para facilitar mapeamentos definidos pelo usuário, de modelos aos artefatos, incluindo código. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 191 LOPES, F. A.; FERNANDES, S. F. L. Figura 4: Arquitetura de uma infraestrutura MDD. Esta infraestrutura possui uma arquitetura de quatro camadas que sustentam as primeiras tecnologias MDD – nomeadas Unified Modeling Language (UML) e a Meta-Object Facility (MOF). Consistindo em uma hierarquia de níveis de modelos, cada um (exceto o superior) sendo considerado uma instância do nível acima, esta arquitetura, ilustrada na Figura 4, possui a vantagem de acomodar novos padrões de modelagem (e.g. Common Warehouse Metamodel), assim como instâncias de MOF na camada M2 inferior. Em uma descrição que parte do nível mais baixo para o mais alto da arquitetura MDD, temos que o nível mais baixo, M0, lida com dados do domínio (ou usuário) – os dados de objetos que o software manipula. O próximo nível, M1, é tido como o manipulador do modelo dos dados de M0. Os modelos criados para o domínio se encontram neste nível. O nível M2 abriga um modelo de informação em M1. Devido a ele ser um modelo de outro modelo, ele é geralmente referenciado como metamodelo. Finalmente, o nível M3 abriga o modelo de informação presente em M2, sendo assim, chamado de meta-metamodelo (ATKINSON & KUHNE, 2003). A DSML (Domain-Specific Modeling Language), é um componente importante do paradigma MDD, ela pode ser construída utilizando padrões do Object Management Group (OMG) e sua visão de MDD, a Model-Driven Architecture (MDA), por razões de interoperabilidade. Porém, com a utilização de DSML para realizar MDD, não há a restrição de adotar as sintaxes abstrata e concreta da UML, especificada nos requisitos da MDA (NIKIFOROVA et al., 2009). Essa liberdade, possibilitada por uma DSML, é útil quando os elementos gráficos ou as regras de construção da UML não são adequadas para um domínio particular, como no caso das SDNs. Modelagem e Composição de DSMLs Na seção anterior, definiu-se inicialmente que uma DSML é uma forma de realizar a aplicação do paradigma MDD. Formalmente, uma DSML é uma 5-tupla composta por sintaxe concreta (C), sintaxe abstrata (A), semântica do domínio (S), semântica dos mapeamentos (MS), e sintática dos mapeamentos (MC) (CLARK et al., 2001): Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 192 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software L = < C, A, S, MS, MC > 1. A sintaxe concreta (C) define a notação específica utilizada para expressar modelos, os quais devem ser gráficos, textuais ou ambos; 2. A sintaxe abstrata (A) define os conceitos, relacionamentos, restrições de integridade disponíveis na linguagem; 3. A semântica do domínio (S) é geralmente definida pelo significado de algum formalismo matemático, em termos que descrevem o significado dos modelos; 4. O mapeamento semântico (MS) refere-se aos conceitos sintáticos do domínio semântico; 5. O mapeamento sintático (MC) atribui construções sintáticas (gráfica, textual ou ambas) para os elementos da sintaxe abstrata. Qualquer DSML que for utilizada na modelagem de soluções requer uma especificação precisa (ou modelagem) de todos os cinco componentes que definem a linguagem. Esta especificação de componentes permite que DSMLs atendam aos seis requisitos definidos para o paradigma MDD. As linguagens utilizadas para definição de componentes das DSMLs são chamadas de metalinguagens, e as especificações formais das DSMLs são chamadas metamodelos (EMERSON et al., 2004). A especificação da sintaxe abstrata de uma DSML requer uma metalinguagem que possa expressar conceitos, relacionamentos, e restrições de integridade. Neste trabalho, foi adotada uma combinação da especificação de MOF (Meta-Object Facility) com a Object Constraint Language (OCL) para servir de metalinguagem na DSML proposta. Esta seleção é consistente com a arquitetura de quatro camadas que compõe uma infraestrutura MDD (OMG, 2003). O modelo concreto da sintaxe em uma DSML fornece uma notação visual para os elementos da sintaxe abstrata, sendo necessário descrever o mapeamento sintático entre o modelo concreto da sintaxe e os elementos abstratos. O mapeamento semântico ocorre a partir da relação correta entre o modelo criado e o resultado da transformação em código e sua execução esperada pelo especialista de domínio, baseado na semântica do domínio (EMERSON et al., 2004). Geração de Código a partir de DSMLs De acordo com o paradigma MDD, um dos requisitos necessários para segui-lo é o mapeamento entre modelos e artefatos, incluindo código. Neste contexto, diversas ferramentas existem para auxiliar na transformação de modelos em códigos executáveis, neste trabalho analisamos três: Graphical Modeling Framework (GMF) (STEINBERG et al., 2009), MetaEdit+ (TOLVANEN & ROSSI, 2003), e AToM³ (DE LARA & VANGHELUWE, 2004). Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 193 LOPES, F. A.; FERNANDES, S. F. L. Nesta seção, devido ao espaço textual, não serão detalhadas as duas útlimas ferramentas (MetaEdit+ e AToM³). Detalharemos apenas o GMF, que é o framework utilizado na abordagem deste trabalho. O motivo para isso é decorrente de três fatores: (1) a licença (Licença Pública Eclipse), (2) a ampla aceitação no suporte para MDD, e (3) por ser a única ferramenta dentre as três analisadas que suporta restrições baseadas em OCL. O GMF é baseado em dois outros frameworks, o Eclipse Modeling Framework (EMF) e o Graphical Editing Framework (GEF) (BAETENS, 2011). Antes de definir como esta combinação de frameworks ocorre, é preciso expor o que é cada um deles: a. Eclipse Modeling Framework (EMF) O projeto EMF é um framework de modelagem e um facilitador em geração de código para construção de ferramentas e outras aplicações baseadas em um modelo de dados estruturado. A partir de uma especificação de modelo descrita em XMI, o EMF fornece ferramentas e suporte em execução para produzir um conjunto de classes Java para o modelo, aliado com um conjunto de classes adaptadoras que permitem a visualização e a edição baseada em comandos do modelo, e um editor de texto básico. Estas informações são baseadas na especificação presente no site do projeto EMF no Eclipse (2014). b. Graphical Editing Framework (GEF) A tecnologia para criar editores editores gráficos e visões do Eclipse Workbench UI é definida no GEF. Estes editores consistem de diversos componentes: o editor do diagrama de modelos, incluindo uma paleta de ferramentas; figuras que representam graficamente os elementos de dados dos modelos subjacentes; EditParts que combinam figuras e seus respectivos elementos do modelos; objetos de requisição para entradas do usuário; objetos EditPolicy que avaliam as requisições e criam objetos de comando apropriados; objetos de comando que editam o modelo e fornecem as funcionalidades de ‘desfazer’ ou ‘refazer’. Alguns destes componentes irão aparecer no fluxo do trabalho descrito na próxima seção. Este fluxo segue o objetivo dessa proposta, resultando em um editor gráfico para gerenciamento de SDNs, gerado a partir do GMF com a DSML proposta subjacente. c.Unindo EMF e GEF Conforme citado anteriormente, a implementação do editor gráfico é um dos requisitos para atingir o objetivo principal deste trabalho. Esta implementação requer o atendimento de diversos requisitos já vistos, de forma que o paradigma MDD seja satisfeito. Além disso, de maneira prática, para a geração deste editor é preciso criá-lo a partir de um modelo EMF. Sendo assim, o metamodelo será gerenciado pelo EMF, e a parte gráfica gerenciada pelo GEF. O GMF é o framework que facilita a união destes dois frameworks. A facilidade é possibilitada a partir de duas partes principais: um ambiente de execução (que estende algumas funcionalidades de ambos frameworks, Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 194 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software EMF e GEF) e um framework de geração (Generation Framework). Este último contém editores especiais para manipular modelos GMF e um gerador que produz código a partir destes modelos. Figura 5: Mapeamento GMF entre EMF e GEF. A partir da Figura 5, podemos visualizar à esquerda o meta-modelo (definido no EMF, um arquivo Ecore), na direita está a representação visual (GEF). No centro é que ocorre o mapeamento, realizado pelo GMF. Todo elemento do modelo de domínio (EMF) que deva ser exibido graficamente, precisa de um elemento representativo no modelo de definição gráfica da DSML. Apesar da explicação sequencial, existe uma ferramenta criada pelo projeto Eclipse, chamada EuGEN ia (ECLIPSE, 2014), que automatiza a união dos frameworks mencionados anteriormente, implementando modelos necessários para criação de editores baseados no GMF. A geração de código ocorre no mapeamento GMF-EMF, a partir da utilização de templates EGL (Epsilon Generation Language), com espaços reservados para a inserção dos dados presentes no modelo do domínio construído pelo usuário. RESULTADOS E DISCUSSÃO Mdd-Sdn: Abordagem Dirigida Por Modelos Para Gerenciamento De Redes Definidas Por Software Os conceitos expostos na seção de fundamentação teórica mostraram uma base para compreender o possível relacionamento entre MDD e SDN. Esta seção, apresenta a DSML proposta por este trabalho, mostrando, principalmente, (1) a extensão do meta-modelo MOF para modelar elementos SDN e seus relacionamentos em um domínio de controle específico, servindo como sintaxe abstrata da DSML, (2) os elementos gráficos que representam este modelo, e (3) a geração de código, de forma que esta DSML permita o gerenciamento das SDNs seguindo o paradigma MDD. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 195 LOPES, F. A.; FERNANDES, S. F. L. Devido à limitação no espaço do texto, esta seção irá apresentar a abordagem MDD-SDN com foco apenas na modelagem e gerenciamento de políticas de rede relacionadas ao controle de domínio baseado no tempo. Também não será detalhada a construção da sintaxe concreta da DSML proposta. Vale ressaltar que o fluxo de trabalho utilizado no desenvolvimento desta abordagem é consistente com os requisitos do paradigma MDD (BAETENS, 2011). Além disso, por utilizar alguns frameworks para modelagem, este fluxo também foi determinado por características intrínsecas aos frameworks utilizados. A Figura 6 demonstra, resumidamente o fluxo de trabalho realizado para atingir o objetivo desta proposta. Figura 6: Fluxo de desenvolvimento da DSML proposta. Para oferecer e construir a DSML, com base nos padrões que norteiam o paradigma MDD, além da definição do escopo de domínio, onde o fundamentamos utilizando os conceitos do gerenciamento de SDNs com controle de domínio baseado no tempo, uma das formas de implementar DSML é utilizar MOF como padrão para descrição de meta-modelos (WACHSMUTH, 2008). Além disso, o GMF incorpora meta-modelos MOF, habilitando a criação de ferramentas para modelagem de aplicações a partir destes meta-modelos (KOLOVOS et al., 2007). Sendo assim, (1) definiu-se o escopo do domínio e seus conceitos, atendo aos requisitos 5 e 6 do paradigma MDD, (2) sua sintaxe concreta, posteriormente, (3) criou-se a sintaxe abstrata da DSML proposta, e por último (4) foi especificado o template para geração de código. Embora seja apresentada para compor a demonstração do processo de desenvolvimento da DSML, a criação da sintaxe concreta não será profundamente discutida nesta seção, tendo em vista que sua validação ainda não foi realizada em critérios qualitativos, embora as regras de construção utilizadas na DSML garantam sua eficácia sintática. A Figura 7 exibe os elementos concretos representativos e os relacionamentos entre eles, constituindo a sintaxe concreta na DSML proposta. Um estudo qualitativo para este componente da DSML será tratado em um trabalho futuro, analisando a representação gráfica destes elementos, podendo compará-la com outras linguagens que definem graficamente comportamentos de rede. A criação da sintaxe abstrata realizou a extensão do meta-modelo MOF (Ecore), para adequar-se a um cenário de controle de domínio baseado no tempo para gerenciar SDNs. A criação da sintaxe abstrata, desta forma, atende tanto ao requisito 4 do paradigma MDD, como satisfaz ao requisito do GMF em utilizar um descritor de linguagem baseado em MOF. A Figura 8 ilustra a sintaxe abstrata da abordagem. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 196 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software Figura 7: Sintaxe concreta da DSML proposta. Figura 8: Meta-modelo da abordagem MDD-SDN. Para a geração de código, foi necessário o uso de uma DSL subjacente compatível com o controlador POX que definimos como primeiro controlador a ser suportado pela DSML proposta, devido à sua característica open source. A única DSL conhecida, voltada para este controlador, é denominada Pyretic (MONSANTO et al., 2013). Embora tenha sido definido o controlador POX e a linguagem relacionada Pyretic para implementar a geração de código da DSML, o modelo extensível da proposta permite que mais DSLs sejam adicionadas para geração de código, assim como mais controladores sejam suportados, isso pode ser necessário para aumentar a abrangência dos modelos criados, possibilitando ainda interoperabilidade entre modelos para gerenciamento de redes com infraestrutura subjacentes distintas. Quadro 2: Trecho do template utilizado na DSML para geração de código. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 197 LOPES, F. A.; FERNANDES, S. F. L. def ui_loop (self): [%for (policy in Policy) {%] [%if (policy.concession == 'Deny') {%] try: nb = [%=policy.condition%] (str1,str2) = nb.split(',') (mac1,mac2) = (MAC(str1),MAC(str2)) self.AddRule(mac1,mac2) except: print "Invalid Format" [%}%] [%if (policy.concession == 'Allow'%) {%] try: nb = [%=policy.condition%] (str1,str2) = nb.split(',') (mac1,mac2) = (MAC(str1),MAC(str2)) self.DeleteRule(mac1,mac2) except: print "Invalid Format" [%}%] [%}%] O GMF utiliza templates na etapa de geração de código (Kolovos et al., 2007). Para que não sejam gerados códigos inválidos e inconsistentes, a construção destes templates deve estar de acordo com os conceitos e relacionamentos definidos no modelo da DSML. No Quadro 2 está um trecho do template utilizado na geração de código da proposta. Não será detalhada a sintaxe da DSL utilizada no template. Estas informações podem ser encontradas na documentação da linguagem (FRENETIC, 2014), e o template completo pode ser acessado no repositório da proposta. Simulação e Validação A validação da DSML e seus componentes foi realizada no simulador Mininet (LANTZ et al., 2010). A simulação envolveu a análise de fluxo numa SDN, simplesmente utilizando o comando pingall do simulador, que tenta atingir todos os nós da topologia SDN. O cenário hipotético para validar a proposta é o mesmo exibido na Figura 7. Com a utilização subjacente do controlador POX, configurado com um módulo de aprendizado de rotas. Uma das execuções da simulação utilizou o horário fora do intervalo estabelecido pelas políticas (iguamente definido para ambas por fins de simplificação), o resultado foi a comunicação entre todos os hosts, já que essa é a regra geral . Por outro lado, a segunda execução do experimento foi realizada em um horário entre os período especificado pelas políticas. Satisfatoriamente, as políticas foram aplicadas da forma que foi construído o modelo, e a comunicação entre os hosts B e D não ocorreu. Esta afirmação é consistente com a saída produzida pelo Mininet, evidenciada pelo Quadro 3, que demonstra os resultados da simulação realizada. Quadro 3: Trecho do template utilizado na DSML para geração de código. Execução fora do período especificado nas políticas mininet> pingall Saída resultante *** Ping: testing ping reachability hA -> hB hC hD hB -> hA hC hD hC -> hA hB hD hD -> hA hB hC *** Results: 0% dropped (0/12 lost) Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 198 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software Execução no período especificado nas políticas mininet> pingall Saída resultante *** Ping: testing ping reachability hA -> hB hC hD hB -> hA hC hC -> hA hB hD hD -> hA hC *** Results: 16.6% dropped (2/12 lost) Trabalhos Relacionados A utilização de APIs e DSMLs para a modelagem de redes é encontrada como base, por exemplo, para trabalhos semelhantes ao de Rodrigues et al. (2011). Este trabalho apresenta uma infraestrutura baseada em MDA para redes de sensores sem fio (Wireless Sensor Network – WSN), promovendo a separação de responsabilidades entre os especialistas envolvidos na WSN e os componentes da WSN. Em Imtiaz et al. (2008) define-se uma abordagem que utiliza MDD para configurar de forma automática redes Ethernet de tempo real. Barrett et al. (2007) também utiliza MDD, tendo como objetivo modelar uma ferramenta para geração e análise de políticas de rede. Ambas as abordagens possuem DSLs subjacentes utilizadas como base para a transformação modelo-código. A proposta em discussão difere destas outras abordagens por permitir a gerência de redes SDN, proporcionando independência de controladores, possibilitando extensões para vários cenários, além de reduzir drasticamente o nível de complexidade envolvido neste gerenciamento. CONCLUSÕES O principal objetivo deste trabalho foi propor uma abordagem, baseada no paradigma MDD (DSML especificamente), para o gerenciamento de SDN, resultando em benefícios já obtidos pela utilização deste paradigma em outros tipos de rede. Além disso, evidenciou-se que o o modelo construído satisfaz aos requisitos levantados. Esta proposta teve como contribuição principal a DSML pioneira voltada para SDNs, que compõe um editor gráfico utilizado para aumentar o nível de abstração no gerenciamento destas redes. Além disso, dois artefatos subjacentes à DSML proposta singularizam as contribuições deste trabalho: (1) o meta-modelo extensível que mapeia os conceitos em SDNs e como estes conceitos estão relacionados, e (2) o fluxo de desenvolvimento MDD adequado à criação de uma ferramenta de gerência em SDNs, que possibilita uma interação intuitiva entre especialistas de domínio e os recursos das redes definidas por software. Para trabalhos posteriores, é preciso investigar de forma qualitativa os elementos que compõem a DSML proposta, identificando benefícios que podem ser alcançados ao utilizar uma linguagem de modelagem para gerenciamento de SDNs, no lugar de codificar scripts. Além disso, a extensão desta DSML para outros domínios de controle é uma tendência clara para buscar a completude da abordagem. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 199 LOPES, F. A.; FERNANDES, S. F. L. AGRADECIMENTOS Este trabalho foi apoiado pela FACEPE, com o identificador: IBPG-0738-1.03/12. REFERÊNCIAS ATKINSON, C.; KUHNE, T.. Model-driven development: a metamodeling foundation. IEEE Software, v.20, n.5, p.36-41, 2003. BAETENS, N.. Comparing graphical DSL editors: AToM³, GMF. MetaEdit+, University of Antwerp, 2011. BARRETT, K.; DAVY, S. STRASSNER, J.; JENNINGS, B.; VAN DER MEER, S.; DONNELLY, W.. A Model Based Approach for Policy Tool Generation and Policy Analysis. First International Global Information Infrastructure Symposium, 2007. CLARK, T.; EVANS, A.; KENT, S.; SAMMUT, P.. The MMF Approach to Engineering Object-Oriented Design Languages. Workshop on Language Descriptions, Tools and Applications, 2001. CLAYPOOL, D.; MCNEVIC, T.; MCNEIL, K.. Automated Software Defined Radio Deployment Using Domain Specific Modeling Languages. IEEE Mobile WiMAX Symposium, 2009. DE LARA, J.; VANGHELUWE, H.. Meta-modelling and graph grammars for multi-paradigm modelling in AToM³. Atom”, Software and Systems Modeling, v.3 n.3, p.194-209, 2004. EMERSON, M.; SZTIPANOVITS, J.; BAPTY, T.. A MOF-based meta-modeling environment. Journal of Universal Computer Science, p.1357-1382, 2004. ERICKSON, D.. The beacon openflow controller. Proceedings of the second ACM SIGCOMM workshop on Hot topics in software defined networking, p.13-18, 2013. FEAMSTER, N.; REXFORD, J.; ZEGURA, E.. The Road to SDN. Queue - Large-Scale Implementations, p.20, 2013. FERGUSON, A. D.; GUHA, A.; FONSECA, R.; KRISHNAMURTHI, S.. Participatory networking: an API for application control of SDNs. Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM, p.327338, 2013. FONTES, R.; SAMPAIO, P.. Visual Network Description: A Customizable GUI for the Creation of Software Defined Network Simulations. European Simulation and Modelling Conferece, 2013. FOSTER, N.; GUHA, A.; REITBLATT, M.; STORY, A.; FREEDMAN, M.; KATTA, N.; MONSANTO, C.. Languages for Software-Defined Networks. IEEE Communications Magazine, 2013. FOSTER, N., HARRISON, R., FREEDMAN, M. J., MONSANTO, C., REXFORD, J., STORY, A., & WALKER, D.. Frenetic: a network programming language. Proceedings of the 16th ACM SIGPLAN international conference on Functional programming, p.279-291, 2011. GUDE, N.; KOPONEN, T.; PETTIT, J.; PFAFF, B.; CASADO, M.; MCKEOWN, N.; SHENKER, S.. NOX: towards an operating system for networks. ACM SIGCOMM Computer Communication Review, p.105110, 2008. IMTIAZ, J.; JASPERNEITE, J.; WEBER, K.; GOETZ, F. J.; LESSMAN, G.. A novel method for auto configuration of Realtime Ethernet Networks. IEEE International Conference on Emerging Technologies and Factory Automation, p.861-868, 2008. KIM, H.; FEAMSTER, N.. Improving network management with software defined networking. IEEE Communications Magazine, p.114-119, 2013. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 200 Abordagem dirigida a modelos para o gerenciamento de redes definidas por software KOLOVOS, D. S.; PAIGE, R. F.; ROSE, L. M.; POLACK, F. A.. Bridging the Epsilon Wizard Language and the Eclipse Graphical Modeling Framework. Modeling Symposium, Eclipse Summit Europe, 2007. LANTZ, B.; HELLER, B.; MCKEOWN, N.. A network in a laptop: rapid prototyping for software-defined networks. Hotnets-IX Proceedings of the ACM SIGCOMM Workshop on Hot Topics in Networks, 2010. MCKEOWN, N.; ANDERSON, T.; BALAKRISHNAN, H.; PAULKAR, G.; PETERSON, L.; REXFORD, J.; TURNER, J.. OpenFlow: enabling innovation in campus networks. ACM SIGCOMM Computer Communication Review, p.69-74, 2008. MONSANTO, C.; REICH, J.; FOSTER, N.; REXFORD, J.; WALKER, D.. Composing Software-Defined Networks. Proceedings of the USENIX conference on Networked Systems Design and Implementation, p.114, 2013. NIKIFOROVA, O.; CERNICKINS, A.; PAVLOVA, N.. Discussing the Difference between Model Driven Architecture and Model Driven Development in the Context of Supporting Tools. Fourth International Conference on Software Engineering Advances, p.446-451, 2009. RODRIGUES, T.; DANTAS, P.; DELICATO, F.; PIRES, P.; PIRMEZ, L.; BATISTA, T.; ZOMAYA, A.. ModelDriven development of wireless sensor network applications. International Conference on Embedded and Ubiquitous Computing, p.11-18., 2011. SHERWOOD, R.; GIBB, G.; YAP, K. K.; APPENZELLER, G.; CASADO, M.; MCKEOWN, N.; PARULKAR, G.. FlowVisor: a network virtualization layer. OpenFlow Consortium, 2009. STAHL, T.; VÖLTER, M.; BETTIN, J.; HAASE, A.; HELSEN, S.. Model-Driven Software Development: technology, engineering, management. England: John Wiley & Sons, 2006. STEINBERG, D.; BUDINSKY, F.; PATERNOSTRO, M.; MERKS, E.. EMF: Eclipse modeling framework 2.0. Addison-Wesley Professional, 2009. TOLVANEN, J. P.; ROSSI, M.. MetaEdit+: defining and using domain-specific modeling languages and code generators. OOPSLA Companion of ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.92-93, 2003. VOELLMY, A.; AGARWAL, A.; HUDAK, P.. Nettle: Functional Reactive Programming for OpenFlow Networks. PADL, 2011. WACHSMUTH, G.. Modelling the operational semantics of domain-specific modelling languages. Berlin: Springer-Verlag, 2008. Revista Brasileira de Administração Científica v.5 ‐ n.2 Anais do SBTI 2014 ‐ Out 2014 P a g e | 201