MARÍA ELENA VILLARREAL

Tamanho: px
Começar a partir da página:

Download "MARÍA ELENA VILLARREAL"

Transcrição

1 MARÍA ELENA VILLARREAL NETPOWERCLOUDSIM: EXTENSÃO DO CLOUDSIM PARA VALIDAÇÃO DE UM MODELO DE GERENCIAMENTO DE EQUIPAMENTOS DE REDE LEGADOS EM NUVEM VERDE Rio do Sul 2013

2 MARÍA ELENA VILLARREAL NETPOWERCLOUDSIM: EXTENSÃO DO CLOUDSIM PARA VALIDAÇÃO DE UM MODELO DE GERENCIAMENTO DE EQUIPAMENTOS DE REDE LEGADOS EM NUVEM VERDE Trabalho de Curso apresentado ao curso de graduação em Ciência da Computação do Instituto Federal de Educação, Ciência e Tecnologia Catarinense Campus Rio do Sul para a obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. Rodrigo Curvêllo, Msc Rio do Sul 2013

3 MARÍA ELENA VILLARREAL NETPOWERCLOUDSIM: EXTENSÃO DO CLOUDSIM PARA VALIDAÇÃO DE UM MODELO DE GERENCIAMENTO DE EQUIPAMENTOS DE REDE LEGADOS EM NUVEM VERDE Este Trabalho de Curso foi julgado adequado para a obtenção do título de Bacharel em Ciência da Computação e aprovado em sua forma final pelo curso de Ciência da Computação do Instituto Federal de Educação, Ciência e Tecnologia Catarinense Campus Rio do Sul., de de 20. Prof. Rodrigo Curvêllo, Msc (Orientador) Instituto Federal Catarinense Campus Rio do Sul Prof. Tiago Boechel, Msc Instituto Federal Catarinense Campus Rio do Sul Prof. Paulo César Rodacki Gomes, Dr Instituto Federal Catarinense Campus Blumenau

4 AGRADECIMENTOS trabalho. A Deus. À minha família pelo apoio e incentivo. Ao meu orientador, Rodrigo Curvêllo, pelo auxílio no desenvolvimento deste

5 RESUMO A Computação em Nuvem é um paradigma que fornece infraestrutura, plataforma de desenvolvimento e aplicativos como serviço, sob demanda e cobrados conforme a medição de uso. Na prática, a Nuvem é implementada em datacenters, onde se concentram servidores físicos que executam máquinas virtuais através das quais são prestados os serviços de computação. A abordagem de Nuvem Verde incrementa o modelo com a proposta de reduzir o consumo elétrico sem prejudicar a qualidade de serviço, mediante a concentração da carga de trabalho na menor quantidade possível de equipamentos e desligando ou colocando em estado de baixo consumo de energia os equipamentos ociosos. Simuladores são utilizados para validar os algoritmos e estratégias de gerenciamento de nuvem verde. Este trabalho teve como principal objetivo estender o CloudSim, um simulador de código aberto de ambientes computacionais em nuvem, para que suporte a realização dos testes necessários para a validação de um modelo de gerenciamento de equipamentos de rede legados em nuvem verde. A metodologia utilizada consistiu em pesquisa bibliográfica, levantamento dos requisitos funcionais e não funcionais, projeto e implementação das extensões em linguagem Java e validação mediante testes e experimentos. Foram desenvolvidas classes que incorporam ao CloudSim a capacidade de representar os equipamentos da rede e a sua topologia e uma classe para gerenciá-los conforme as mudanças de estado dos servidores físicos. As extensões foram validadas através de testes e da comparação dos resultados de simulações em diferentes cenários, que demonstraram seu correto funcionamento. Palavras-chave: Computação em Nuvem. Nuvem Verde. Simulação. CloudSim. Datacenter. Gerenciamento de rede.

6 LISTA DE FIGURAS Figura 1 Camadas da implementação de uma nuvem Figura 2 Arquitetura de nuvem verde e seus componentes Figura 3 Políticas de alocação: (a) Espaço compartilhado para MVs e tarefas, (b) Espaço compartilhado para MVs e tempo compartilhado para tarefas, (c) Tempo compartilhado para MVs e espaço compartilhado para tarefas, (d) Tempo compartilhado para MVs e tarefas Figura 4 Diagrama de sequência do processamento de aplicações Figura 5 Diagrama de sequência da comunicação entre entidades Figura 6 Arquitetura de camadas do CloudSim Figura 7 Diagrama de classes UML do CloudSim Figura 8 Diagrama de classes UML do núcleo do CloudSim Figura 9 Topologia de rede padrão de um datacenter Figura 10 Diagrama de casos de uso da interação do usuário com o simulador Figura 11 Diagrama de casos de uso da interação da interação do CloudSim com as extensões Figura 12 Diagrama de classes do NetPowerCloudSim Figura 13 Diagrama de sequência da aplicação principal Figura 14 Diagrama de atividades do processo de reconfiguração da rede Figura 15 Tela principal do NetPowerCloudSim Figura 16 Resultados dos testes de unidade da classe TopologiaRede Figura 17 Gráfico da evolução do consumo da rede no Experimento Figura 18 Gráfico da evolução do consumo da rede no Experimento

7 LISTA DE QUADROS Quadro 1 Requisitos funcionais Quadro 2 Requisitos não funcionais Quadro 3 Código do método que calcula a energia consumida por um switch durante um frame da simulação Quadro 4 Trecho de código para atualizar o consumo atual do switch Quadro 5 Trecho de código do método verificamudancaestadohost Quadro 6 Trecho do método que calcula as quantidades de racks, de switches de acesso, de switches de agregação, de switches de núcleo e de módulos por switch de núcleo Quadro 7 Código do método que calcula os ids dos switches de acesso e o número das portas aos quais uma máquina física está conectada Quadro 8 Trecho de código do método desligaportassemuso que desliga as portas sem uso dos dois últimos switches de acesso Quadro 9 Código gerado pelo JUnit para teste do método calculaswitchacessoeporta e adaptado com id de máquina física e resultados esperados Quadro 10 Resultados do Experimento Quadro 11 Resultados do Experimento Quadro 12 Resultados do Experimento Quadro 13 Detalhamento do caso de uso UC Quadro 14 Detalhamento do caso de uso UC Quadro 15 Detalhamento do caso de uso UC Quadro 16 Detalhamento do caso de uso UC Quadro 17 Detalhamento do caso de uso UC Quadro 18 Detalhamento do caso de uso UC Quadro 19 Detalhamento do caso de uso UC Quadro 20 Detalhamento do caso de uso UC Quadro 21 Detalhamento do caso de uso UC Quadro 22 Detalhamento do caso de uso UC Quadro 23 Detalhamento do caso de uso UC Quadro 24 Detalhamento do caso de uso UC Quadro 25 Detalhamento do caso de uso UC Quadro 26 Detalhamento do caso de uso UC

8 LISTA DE SIGLAS BRITE Boston university Representative Internet Topology generator CIS Cloud Information Service CM Cloud Manager CPU Central Processing Unit EC2 Elastic Compute Cloud IaaS Infrastructure as a Service LAN Local Access Network MF Máquina Física MV Máquina Virtual NIST National Institute of Standards and Technology OTM Organization Theory Model PaaS Platform as a Service PE Processing Element QoS Quality of Service RAM Random Access Memory SaaS Software as a Service SLA Service Level Agreement UML Unified Modeling Language VIM Virtual Infrastructure Manager VMM Virtual Machine Manager

9 SUMÁRIO 1 INTRODUÇÃO PROBLEMA OBJETIVOS Objetivo Geral Objetivos Específicos JUSTIFICATIVA METODOLOGIA FUNDAMENTAÇÃO TEÓRICA COMPUTAÇÃO EM NUVEM Características da abordagem de nuvem Modelos de serviços Modelos de implantação Implementação de uma nuvem Computação em Nuvem Verde SIMULAÇÃO Conceitos relacionados Vantagens e desvantagens CLOUDSIM Funcionamento do CloudSim Modelagem da nuvem Modelagem da alocação de máquinas virtuais Modelagem do comportamento da rede Modelagem de cargas de trabalho dinâmicas Modelagem do consumo de energia do datacenter Processamento interno do datacenter Comunicação entre entidades Arquitetura do CloudSim Estrutura do CloudSim TRABALHOS CORRELATOS Modelos de Gerenciamento de Nuvem Verde TeachCloud CloudReports... 38

10 2.4.4 NetworkCloudSim DESENVOLVIMENTO DESCRIÇÃO REQUISITOS ESPECIFICAÇÃO Casos de Uso Diagrama de Classes Diagrama de Sequência Diagrama de Atividades IMPLEMENTAÇÃO Técnicas e ferramentas Codificação das extensões PowerSwitch NetPowerDatacenter TopologiaRede GerenciadorRede Classe principal e interface gráfica TESTES Testes de Unidade Testes de Integração Validação de requisitos SIMULAÇÕES E RESULTADOS Experimento Experimento Experimento CONCLUSÕES REFERÊNCIAS APÊNDICE A Detalhamento dos Casos de Uso... 68

11 10 1 INTRODUÇÃO Com a crescente preocupação por sustentabilidade e, consequentemente, pelo consumo consciente de energia, o conceito de Green Cloud, ou Nuvem Verde, tem ganhado destaque na comunidade científica. Esta abordagem une os conceitos de Computação em Nuvem (Cloud Computing) e TI Verde (Green IT) com o intuito de oferecer um ambiente computacional flexível e eficiente (WESTPHALL, VILLARREAL, 2013, p. 1). De acordo com Geronimo (2012), o modelo de computação em nuvem verde visa, além da economia de consumo energético, a redução de custos operacionais e o prolongamento da vida útil de equipamentos em ambientes computacionais em nuvem. Refere-se, portanto, à utilização consciente e sustentável da tecnologia de Cloud Computing (GERONIMO, 2012, p. 39). Esta, por sua vez, pode ser definida como uma categoria de serviços computacionais sofisticados oferecidos sob demanda através da Internet em que a infraestrutura computacional é vista como uma nuvem e cujo princípio central é prover computação, armazenamento e software as a service 1 (VOORSLUYS; BROBERG; BUYYA, 2011, p. 3). Na prática, segundo Westphall e Villarreal (2013), a nuvem é implementada em datacenters, que concentram grande quantidade de máquinas físicas sobre as quais são executadas as máquinas virtuais que são fornecidas aos clientes. Na computação em nuvem verde, utiliza-se o conceito de consolidação de carga, que consiste em alocar a carga de trabalho na menor quantidade possível de máquinas físicas para permitir desligar os recursos ociosos ou colocá-los em estado de baixo consumo de energia elétrica (WESTPHALL; VILLARREAL, 2013). No entanto, segundo Villarreal e Westphall (2013), as estratégias de gerenciamento de Nuvem Verde não têm dado suficiente atenção ao consumo dos equipamentos de rede e à consolidação do tráfego e propuseram um modelo para o gerenciamento dos recursos de rede dos datacenters, tanto os legados quanto os de tecnologia verde. Segundo Calheiros et al. (2011), diversos tipos de serviços podem ser oferecidos em ambientes computacionais em nuvem e cada um possui diferentes exigências de composição, configuração e implantação. Assim, a realização de testes em ambientes reais para avaliar o desempenho destes serviços sob condições variáveis, frequentemente, não é uma tarefa viável, visto que demanda muito tempo e é limitada pela rigidez física da estrutura. 1 Tradução: como um serviço.

12 11 As ferramentas de simulação, por outro lado, facilitam a reprodução de resultados ao permitirem testar distintos cenários em ambientes repetíveis e controláveis antes da implantação dos serviços em infraestruturas reais (CALHEIROS et al., 2011). O CloudSim é um framework 2 que permite modelar e simular ambientes computacionais em nuvem. De acordo com Calheiros et al. (2011), este conjunto de ferramentas foi desenvolvido na linguagem de programação Java e suporta a simulação de componentes de ambientes em nuvem como datacenters, máquinas virtuais e políticas de provisionamento de recursos. O simulador permite ainda que seus recursos sejam estendidos, o que possibilita a modelagem de ambientes de computação em nuvem personalizados e a realização de testes baseados em cenários e configurações específicos para atender a uma determinada pesquisa (CALHEIROS et al., 2011). Neste trabalho, são realizadas extensões ao simulador CloudSim para permitir a validação do modelo de gerenciamento de equipamentos de redes citado anteriormente. Nas seções seguintes são descritos o problema, os objetivos, a justificativa e a metodologia. No capítulo 2, é apresentada a fundamentação teórica, que aborda os conceitos de Computação em Nuvem e Nuvem Verde, o processo de simulação, a estrutura e o funcionamento do CloudSim e os trabalhos correlatos. No capítulo 3, é relatado o desenvolvimento das extensões, incluindo os requisitos funcionais e não funcionais; a especificação da implementação; os testes realizados; as simulações executadas e os resultados obtidos. Por fim, no capítulo 4, são feitas as considerações finais e propostas de trabalhos futuros. 1.1 PROBLEMA Villarreal e Westphall (2013) propuseram uma ampliação a uma abordagem de alocação e distribuição de máquinas virtuais em ambiente de nuvem computacional verde. Esta abordagem, baseada no modelo de Teoria da Organização, foi desenvolvida pelo Laboratório de Redes e Gerência (LRG) da Universidade Federal de Santa Catarina e apresentada e validada por Werner (2011). A extensão proposta incorpora estratégias de eficiência energética ao modelo mediante o acréscimo de mecanismos para o gerenciamento de recursos de rede de datacenters, tanto os legados quanto os de tecnologia verde (VILLARREAL; WESTPHALL, 2013). 2 Aplicação parcialmente completa e reutilizável que pode ser adaptada para o desenvolvimento de aplicações personalizadas (FAYAD; SCHMIDT, 1997).

13 12 No entanto, para medir os ganhos de eficiência obtidos com a otimização do consumo dos equipamentos de rede e validar o modelo ampliado, é necessário estender o simulador CloudSim, que não possui capacidade para representar os equipamentos e a topologia da rede e realizar seu gerenciamento, recursos necessários para os testes que devem ser realizados a fim de verificar os efeitos do modelo proposto. 1.2 OBJETIVOS Objetivo Geral Este trabalho tem como objetivo estender o simulador CloudSim de forma que permita a realização dos testes necessários para a validação de um modelo de gerenciamento de equipamentos de rede legados em um ambiente computacional de nuvem verde Objetivos Específicos Os objetivos específicos do trabalho são: a) implementar classes para a representação de entidades de rede conforme as necessidades do modelo e para a geração da topologia da rede a partir de regras previamente definidas; b) incluir as funcionalidades de ativação e desativação de equipamentos de rede e portas em função da consolidação de carga dos servidores; c) permitir a configuração da velocidade das portas dos equipamentos de rede de acordo com as regras e crenças do modelo; d) calcular o consumo de energia dos equipamentos de rede e da rede em geral; e) interagir com as classes já existentes no simulador; f) integrar os resultados aos das classes do CloudSim. 1.3 JUSTIFICATIVA Através do gerenciamento dos recursos de rede em ambientes de nuvem computacional verde proposta por Villarreal e Westphall (2013), é possível diminuir o consumo energético de equipamentos de rede e servidores e, por conseguinte, obter significativos ganhos de eficiência em datacenters e reduzir o impacto ambiental. Para

14 13 mensurar e validar estes ganhos a fim de possibilitar a implantação do modelo em ambientes reais, é necessário realizar simulações que permitam testar os efeitos da aplicação desta abordagem em diferentes cenários com diferentes exigências de desempenho e com diferentes regras e crenças (VILLARREAL; WESTPHALL, 2013, p. 11). Estender o simulador CloudSim permitirá, além da validação do modelo mencionado, a realização de simulações para oferecer suporte a pesquisas da área de computação em nuvem verde realizadas pelo Laboratório de Redes e Gerência do departamento de Ciência da Computação da Universidade Federal de Santa Catarina. Além das contribuições ambientais e acadêmicas já citadas, as extensões realizadas ao CloudSim em conjunto com sua devida documentação podem servir como base para novas extensões, bem como para a criação de ferramentas completas de simulação específicas para ambientes computacionais em nuvem verde. 1.4 METODOLOGIA Para a elaboração deste trabalho, será realizada uma pesquisa bibliográfica em livros, artigos científicos publicados e monografias acadêmicas acerca dos temas de Computação em Nuvem e Computação em Nuvem Verde, bem como sobre os conceitos básicos de simulação. Também serão estudados e descritos a estrutura e o funcionamento do simulador CloudSim e trabalhos correlatos. Serão definidos os requisitos funcionais e não funcionais que devem ser atendidos pelas extensões e as classes a serem implementadas ou estendidas serão modeladas através de Diagramas UML de Classes, de Casos de Uso, de Atividades e de Sequência. Visto que o simulador CloudSim foi desenvolvido em Java, as extensões serão implementadas nesta linguagem e o paradigma de programação a ser utilizado é a orientação a objetos. Com o intuito de validar as extensões realizadas ao CloudSim, serão efetuados testes e experimentos de acordo com as regras e crenças definidas no modelo de simulação da abordagem proposta por Villarreal e Westphall (2013). Uma vez verificado e comprovado o correto funcionamento das extensões realizadas, estas serão documentadas com o auxílio do gerador de documentação Javadoc, desenvolvido pela Sun Microsystems.

15 14 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo, é abordado o tema de Computação em Nuvem, através da definição do paradigma e da descrição de suas características fundamentais, dos tipos de serviços oferecidos e das formas de implantação. São descritas ainda a arquitetura e a implementação de uma nuvem. Em relação ao processo de simulação, são definidos conceitos básicos e relacionados, bem como seus aspectos positivos e negativos. Para o entendimento do funcionamento e da estrutura do simulador CloudSim, são apresentadas suas características e arquitetura, as principais classes de sua implementação e a forma como se relacionam. 2.1 COMPUTAÇÃO EM NUVEM A Computação em Nuvem, do inglês Cloud Computing, apresenta diversas definições na literatura. Com o intuito de conceituar o paradigma, duas delas são apresentadas a seguir: Computação em nuvem é um modelo que permite acesso ubíquo, conveniente e sob demanda através de uma rede a um conjunto compartilhado de recursos computacionais configuráveis (como redes, servidores, armazenamento, aplicações e serviços) que podem ser rapidamente provisionados e liberados com um esforço mínimo de gestão ou de interação com o provedor de serviço (MELL; GRANCE, 2011, p.2) 3. Uma nuvem é um tipo de sistema de computação paralelo e distribuído que consiste em uma coleção de computadores virtualizados e interconectados que são provisionados dinamicamente e apresentados como um ou mais recursos computacionais unificados baseado em acordos de nível de serviço estabelecidos através de negociação entre o provedor de serviços e o consumidor (BUYYA; YEO; VENUGOPAL, 2008, p. 2) 4. Com base nestas definições, observa-se que a Computação em Nuvem abrange tanto as aplicações que são fornecidas como serviço através da Internet quanto o hardware e o software dos datacenters responsáveis pelo fornecimento de tais serviços (ARMBRUST et al., 2010). 3 Texto original traduzido por esta autora: Cloud computing is a model for enabling ubiquitous, convenient, ondemand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. 4 Texto original traduzido por esta autora: "A Cloud is a type of parallel and distributed system consisting of a collection of inter-connected and virtualised computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements established through negotiation between the service provider and consumers.

16 15 Em relação à origem do conceito, a Computação em nuvem é resultado da evolução e integração de diferentes tecnologias, como computação em grade, processamento paralelo, computação autônoma, virtualização e browsers. Já o termo surgiu em 2006 em uma palestra sobre como era realizado o gerenciamento dos datacenters da Google, ministrada pelo funcionário da empresa, Eric Schmidt, e ganhou maior destaque com o lançamento do serviço EC2 (Elastic Cloud Computing) da Amazon no mesmo ano (TAURION, 2009) Características da abordagem de nuvem O NIST (National Institute of Standards and Technology) define cinco características essenciais que devem ser contempladas por uma nuvem (MELL; GRANCE, 2011). São elas: autoatendimento sob demanda: uma nuvem permite que seus usuários utilizem seus serviços de forma automática e sob demanda, sem a necessidade de interação com operadores humanos; amplo acesso à rede: os recursos são fornecidos através da rede e acessados por mecanismos padronizados, que permitem o uso por plataformas heterogêneas; agrupamento de recursos: os recursos computacionais (físicos e virtuais) do provedor de serviços são agrupados de forma a atender dinamicamente as demandas dos consumidores, que, na maior parte das vezes, não têm conhecimento da localização exata de tais recursos, mas podem ser capazes de determiná-la em um nível de abstração mais alto (como país, estado ou datacenter); rápida elasticidade: os recursos fornecidos através de uma nuvem podem ser provisionados e liberados rapidamente para ajustarem-se à variação da demanda. Como resultado, frequentemente, o usuário tem a impressão de que os recursos oferecidos são ilimitados; serviço medido: sistemas em nuvem controlam e otimizam o uso dos recursos automaticamente através de medições e podem monitorar e reportar a utilização de recursos de forma transparente aos consumidores e provedores. Para que uma nuvem atenda às expectativas dos consumidores, Voorsluys, Broberg e Buyya (2011) definem ainda como atributos indispensáveis:

17 16 medição e cobrança por uso: os recursos oferecidos por uma nuvem devem ser medidos de acordo com o tipo de serviço e cobrados conforme o uso; customização: como há grandes disparidades entre as necessidades dos usuários, os serviços da nuvem devem ser altamente personalizáveis Modelos de serviços Os serviços oferecidos em um ambiente computacional em nuvem são divididos em três modelos ou níveis de abstração, que podem ser vistos como uma arquitetura de camadas na qual os serviços de uma camada mais baixa compõem serviços de uma camada mais alta (VOORSLUYS; BROBERG; BUYYA, 2011). Os modelos de serviços são descritos a seguir: Infraestrutura como Serviço (IaaS Infrastructure as a Service): de acordo com Voorsluys, Broberg e Buyya (2011), é considerada a camada inferior dos sistemas computacionais em nuvem e oferece recursos virtualizados de servidores de computação, armazenamento e comunicação sob demanda. Como exemplo deste modelo de serviço, pode-se citar o EC2 da Amazon Web Services, que permite aos usuários utilizar servidores virtuais e configurar e escalonar a capacidade do ambiente computacional (AMAZON, 2013); Plataforma como Serviço (PaaS Platform as a Service): esta camada, com nível de abstração intermediário, oferece um ambiente de desenvolvimento e hospedagem que permite aos usuários criar aplicações sem preocupar-se com requisitos de infraestrutura, como quantidade de processadores ou memória necessários (VOORSLUYS; BROBERG; BUYYA, 2011). É exemplo deste tipo de serviço o Windows Azure, da Microsoft, que possibilita criar, implantar e gerenciar aplicativos através de uma rede global de datacenters (MICROSOFT, 2013); Software como Serviço (SaaS Software as a Service): é a camada superior da arquitetura, na qual os serviços oferecidos consistem em aplicações que podem ser acessadas pelos usuários finais através da Web, sem a necessidade de instalá-las localmente e com as mesmas funcionalidades de programas tradicionais para desktop (VOORSLUYS; BROBERG; BUYYA, 2011). Assim, de acordo com Mell e Grance (2011,

18 17 p. 2), o serviço fornecido ao consumidor é o uso de aplicações do provedor que executam em uma infraestrutura de nuvem. O Google Apps constitui um exemplo deste modelo, uma vez que oferece como serviço aplicativos de , agenda, criação e compartilhamento de documentos, entre outros (GOOGLE, 2013) Modelos de implantação Com base nas formas de implantação e acesso, e a despeito do modelo de serviço oferecido, uma nuvem pode ser classificada como: pública: modelo de nuvem disponibilizado por organizações empresariais, acadêmicas ou governamentais para o público em geral (MELL; GRANCE, 2011). De acordo com Sun Microsystems (2009), este tipo de nuvem permite que empresas utilizem infraestruturas muito maiores do que as que poderiam possuir e transfere os riscos destas para o provedor de serviços; privada: neste modelo, a infraestrutura da nuvem pode ser utilizada apenas por membros de uma determinada organização. No entanto, pode ser gerenciada pela própria organização ou por terceiros (MELL; GRANCE, 2011); comunitária: é compartilhada por um grupo de consumidores de organizações distintas, mas com objetivos ou políticas em comum e pode ser gerenciada e operada por uma ou mais organizações pertencentes à comunidade ou por terceiros (MELL; GRANCE, 2011); híbrida: uma nuvem híbrida, segundo Mell e Grance (2011), é composta por dois ou mais tipos diferentes de nuvens (pública, privada ou comunitária), que, apesar de unidas por tecnologias proprietárias ou padronizadas, permanecem como entidades únicas Implementação de uma nuvem De acordo com Taurion (2009, p.44), o fundamento básico da Computação em Nuvem é a virtualização dos recursos computacionais e, para que esta virtualização seja

19 18 possível, são empregadas distintas tecnologias, que formam uma estrutura de camadas. Esta estrutura e seus componentes são mostrados na Figura 1. A camada mais baixa compreende as Máquinas Físicas (MFs), que compõem o datacenter e consistem em servidores de computação e armazenamento que fornecem a infraestrutura de hardware para criar recursos virtualizados (BUYYA; BELOGLAZOV; ABAWAJY, 2010). A segunda camada contém o software de virtualização, denominado VMM (Virtual Machine Manager), que executa em cada servidor físico e tem como função instanciar as Máquinas Virtuais (MVs) que são fornecidas aos consumidores (CELESTI et al., 2013). Segundo Chaves, Uriarte e Westphall (2011) o VMM, também chamado de monitor, permite executar o sistema operacional hóspede em cada máquina virtual e fornece a interface entre os recursos virtuais e reais do sistema hospedeiro. Na terceira camada, encontra-se o VIM (Virtual Infrastructure Manager), cuja finalidade é o gerenciamento de recursos físicos e virtuais. Este middleware define quais MVs serão instanciadas e em qual servidor físico e é responsável por configurá-las (CELESTI et al., 2013). Voorsluys, Broberg e Buyya (2011) comparam o VIM a um sistema operacional tradicional, com a diferença de que este agrega recursos de diferentes computadores e os apresenta como um sistema uniforme a usuários e aplicações. A última camada é constituída pelo CM (Cloud Manager), que age como a interface entre os usuários e a infraestrutura, implementa a lógica de negócio do provedor e aborda questões de segurança e QoS (Quality of Service) (CELESTI et al., 2013). Esta camada é, portanto, responsável pelo Acordo de Nível de Serviço (SLA Service Level Agreement), que é o acordo legal firmado entre o provedor de serviços e o cliente a fim de garantir a qualidade de serviço requerida. O SLA define uma lista de serviços e seus respectivos atributos de qualidade, como tempo de resposta, disponibilidade, confiabilidade e custo (MENASCE; ALMEIDA; DOWDY, 2004).

20 19 Figura 1 Camadas da implementação de uma nuvem. Fonte: Acervo do autor Computação em Nuvem Verde A Computação em Nuvem Verde, do inglês Green Cloud Computing, visa o uso eficiente da infraestrutura de computação em nuvem. Assim, difere da abordagem de nuvem convencional, uma vez que leva em consideração a eficiência energética em datacenters, cujos recursos devem ser alocados de forma que não apenas se cumpram os requisitos de QoS definidos no SLA, mas também que seja possível reduzir o uso de energia elétrica (BUYYA; BELOGLAZOV; ABAWAJY, 2010). De acordo com Beloglazov et al. (2011, p. 11), a principal causa de ineficiência energética em datacenters é a baixa média de utilização dos recursos 5 ocasionada devido à variabilidade da carga de trabalho, que obriga os datacenters a serem equipados para suprir picos de carga que raramente acontecem na prática. Como consequência, os recursos computacionais encontram-se subutilizados a maior parte do tempo e, nesta condição, a eficiência energética das máquinas físicas é mínima. Estas afirmações estão baseadas na constatação de que o consumo de energia do hardware não é proporcional à carga de trabalho. Como descrito por Bose et al. (2011), ambientes de nuvem convencional utilizam técnicas de balanceamento de carga, que distribuem igualmente as solicitações recebidas entre um grupo de MFs. Dessa forma, os servidores operam com o mínimo possível de carga para garantir alta performance e, consequentemente, atender às exigências de qualidade de serviço. O modelo de nuvem verde, por outro lado, baseia-se na consolidação de carga, que consiste 5 Texto original traduzido por esta autora: The main reason of the power inefficiency in data centers is low average utilization of the resources.

21 20 em agrupar a carga de trabalho no menor número possível de recursos físicos e desligar ou colocar em modo de baixo consumo energético os recursos ociosos a fim de reduzir o consumo de energia elétrica sem violar o SLA (BUYYA; BELOGLAZOV; ABAWAJY, 2010). Portanto, segundo Werner et al. (2012, p. 1), o desafio em nuvem verde é a operação com o montante mínimo de recursos ativos, sem deixar de atender às exigências de qualidade de serviço e de robustez. Em relação à arquitetura de uma nuvem verde, Buyya, Beloglazov e Abawajy (2010) propõem um modelo composto por quatro entidades: os Consumidores ou os Brokers que os representam, que solicitam o serviço da Nuvem; o Alocador de Serviço Verde, que funciona como uma interface entre a infraestrutura da nuvem e os consumidores; as Máquinas Virtuais, que podem ser dinamicamente ativadas ou desativadas em uma máquina física ou migradas entre diferentes MFs a fim de consolidar a carga de trabalho; e as Máquinas Físicas. Para que o Alocador de Serviço Verde possa gerenciar os recursos de forma eficiente energeticamente, é necessária a interação entre alguns componentes, como o Monitor de Energia, que observa e determina quais máquinas físicas devem ser ligadas ou desligadas; e o Escalonador de Serviço, que atribui solicitações a MVs, determina direitos de recursos alocados para MVs e decide quando adicionar ou remover MVs para atender à demanda. Este modelo é demonstrado na Figura 2. Figura 2 Arquitetura de nuvem verde e seus componentes. Fonte: Adaptado de BUYYA; BELOGLAZOV; ABAWAJY, Como o desafio da Computação em Nuvem Verde é consolidar a carga de trabalho sem violar o SLA, diferentes algoritmos e políticas de consolidação são propostos

22 21 por pesquisadores. Para validá-los, contudo, é essencial que sejam avaliados em infraestruturas virtualizadas de grande escala. Logo, por ser extremamente complicado conduzir experimentos em infraestruturas reais, simulações têm sido utilizadas como forma de avaliar o desempenho de tais propostas, visto que possibilitam a realização de testes em ambientes de larga escala e garantem que experimentos possam ser reproduzidos e repetidos (BELOGLAZOV, 2013). 2.2 SIMULAÇÃO A simulação, como definido por Shannon (1998, p. 1), é o processo de projetar um modelo de um sistema real e conduzir experimentos com este modelo a fim de entender o comportamento do sistema e/ou avaliar diversas estratégias para o seu funcionamento 6. A simulação pode ser vista como uma metodologia experimental e aplicada que imita o funcionamento de um processo ou sistema real ao longo do tempo (BANKS, 1999). Simulações são utilizadas para, além de descrever e analisar o funcionamento de um sistema, prever comportamentos futuros deste e responder questões do tipo O que aconteceria se?, a fim de resolver problemas reais (Banks, 1999). De acordo com Carson (2004), a avaliação, a comparação e a análise são os principais motivos para a realização de simulações, enquanto que a predição do desempenho e a identificação de problemas do sistema, bem como suas causas, constituem os principais resultados Conceitos relacionados Há diversos termos e conceitos fundamentais envolvidos na modelagem e na simulação de sistemas (BANKS, 1999). Os mais relevantes para este trabalho são descritos a seguir: sistema: consiste em um grupo ou coleção de elementos inter-relacionados que cooperam entre si para atingir um determinado objetivo (SHANNON, 1998). Freitas Filho (2008, p. 25) define um sistema como um grupo de componentes que recebem estímulos ou entradas (inputs) e produzem respostas ou saídas (outputs) ; 6 Texto original traduzido por esta autora: the process of designing a model of a real system and conducting experiments with this model for the purpose of understanding the behavior of the system and/or evaluating various strategies for the operation of the system.

23 22 modelo: é uma representação descritiva de um processo ou sistema real, que geralmente apresenta parâmetros que o tornam configurável (CARSON, 2004). O modelo deve ser projetado de forma que o seu comportamento imite o comportamento de resposta do sistema real a eventos que ocorrem ao longo do tempo (SHANNON, 1998) e deve ser simples, porém o suficientemente complexo para responder as questões levantadas (BANKS, 1999). Segundo Carson (2004), o excesso de detalhes em um modelo pode conduzir o projeto ao fracasso; estado do sistema: é uma lista de valores capazes de definir o sistema em qualquer instante. Na prática, é definido implicitamente pelos status internos de todas as entidades pertencentes à simulação (CARSON, 2004); eventos: são acontecimentos que, de acordo com Carson (2004), mudam o estado do sistema e podem ser classificados como primários (programados para ocorrer em um momento futuro através de dados e suposições estatísticas) e secundários (programados para ocorrer imediatamente segundo a lógica interna do modelo); entidade: representa um objeto real no modelo e pode ser dinâmica, quando se move através do sistema; ou estática, quando serve a outras entidades (BANKS, 1999). Tarefas que chegam e deixam a CPU (Central Processing Unit) depois de processadas são exemplos de entidades dinâmicas e a própria CPU, de entidade estática (FREITAS FILHO, 2008); atributos: constituem características associadas a uma entidade específica, como nome, prioridade ou tempo de processamento necessário (SHANNON, 1998). Os atributos devem, portanto, ser considerados como valores locais (BANKS, 1999); variável de estado: é toda informação necessária para determinar o que está acontecendo no sistema em um determinado momento (BANKS, 1999). Para que a execução de uma simulação interrompida possa ser retomada do ponto em que foi parada, todas as variáveis de estado devem ter seus valores conhecidos no momento da interrupção, uma vez que estes representam o estado do sistema (FREITAS FILHO, 2008); recurso: constitui uma entidade estática que fornece serviços a uma ou mais entidades dinâmicas simultaneamente e pode apresentar diversos

24 23 estados. Os mais comuns são ocupado e ocioso, mas há outras possibilidades, como falhado, bloqueado ou indisponível (BANKS, 1999); tempo de atividade: período que corresponde a uma ação cuja duração é predeterminada, ou seja, é conhecida antes do início da atividade. Esta duração pode ser uma constante ou resultado de uma expressão matemática (FREITAS FILHO, 2008); tempo de espera ou delay: período que corresponde a uma ação cuja duração é indefinida, pois depende de outros eventos. Logo, constitui o oposto de uma atividade (BANKS, 1999); processo: é uma sequência de eventos, atividades e tempos de espera associados a uma entidade à medida que esta se move pelo sistema (CARSON, 2004); processamento de listas: corresponde à forma como uma fila de entidades que estão aguardando os recursos solicitados é gerenciada. As filas são representadas por listas ordenadas e a política de processamento mais utilizada é a FIFO (First In, First Out), na qual o primeiro a chegar é o primeiro a ser atendido (FREITAS FILHO, 2008); modelo de simulação de eventos discretos: modelo no qual as variáveis de estado são modificadas apenas em momentos definidos, ou seja, permanecem inalteradas durante intervalos de tempo e mudam quando um evento ocorre (BANKS, 1999); modelo de simulação contínuo: modelo no qual as variáveis de estado são modificadas continuamente ao longo do tempo (FREITAS FILHO, 2008); simuladores: são softwares que realizam simulações e, muitas vezes, contêm pacotes com modelos que necessitam apenas de dados de entrada para funcionar (BANKS, 1999) Vantagens e desvantagens A simulação para a análise de sistemas apresenta diversas vantagens em comparação com os modelos analíticos ou matemáticos e com a realização de testes em ambientes reais (SHANNON, 1998). Os principais benefícios citados na literatura são descritos a seguir:

25 24 a simulação permite avaliar, uma vez criado o modelo de simulação, políticas e métodos de funcionamento sem as despesas e o transtorno de realizar experimentos com o sistema real (BANKS, 1999); simulações possibilitam a identificação de gargalos e, por conseguinte, a descoberta das causas de demoras em diversos processos (BANKS, 1999); através de simulações, é possível testar hipóteses sobre como ou por que um determinado fenômeno ocorre no sistema (SHANNON, 1998); o processo de simular permite controlar o tempo, comprimindo-o ou expandindo-o de forma a acelerar ou retardar um fenômeno para que este possa ser meticulosamente investigado (BANKS, 1999). Conforme Shannon (1998), é possível simular meses ou anos de operação de um sistema em questão de segundos, bem como desacelerar um fenômeno momentâneo para estudá-lo; estudos de simulação mostram como um sistema realmente opera, em vez de indicar previsões sobre seu funcionamento realizadas por um indivíduo (BANKS, 1999) e auxiliam na identificação das variáveis mais relevantes para o seu desempenho (SHANNON, 1998); simulações permitem estudar como um sistema se modifica ao longo do tempo e como seus subsistemas e componentes interagem (CARSON, 2004); o ato de simular possibilita entender por que um determinado fenômeno ocorre, uma vez que permite ver e controlar o sistema em sua totalidade (BANKS, 1999); a simulação permite diagnosticar problemas através de modelos complexos e, portanto, de alta fidelidade; bem como compreender seus efeitos no sistema (BANKS, 1999); normalmente, o custo de um estudo de simulação corresponde a menos de 1% do total gasto para a implementação de um sistema e é, portanto, um investimento inteligente (BANKS, 1999); um estudo de simulação permite testar todos os aspectos de um sistema sem que seja necessário adquirir e implantar os recursos físicos (BANKS, 1999);

26 25 um modelo de simulação fornece o único método para estudar sistemas dinâmicos complexos que ainda não foram implementados e para os quais os modelos analíticos ou estáticos apresentam baixas fidelidade e acurácia (CARSON, 2004); Embora o processo de simulação seja uma excelente ferramenta de análise, apresenta algumas desvantagens (FREITAS FILHO, 2008). Entre elas: a criação de modelos exige treinamento especializado (BANKS, 1999); como as saídas das simulações são, geralmente, variáveis aleatórias, seus resultados podem ser difíceis de interpretar (BANKS, 1999). Em muitos casos, é trabalhoso determinar se uma saída está associada a alguma relação significante no sistema ou a processos aleatórios construídos e embutidos no modelo (FREITAS FILHO, 2008, p. 27); a modelagem e a análise de simulações podem consumir muitos recursos, como tempo e capital (CARSON, 2004); modelos de simulação não fornecem uma solução otimizada, mas uma ferramenta de análise do comportamento de um sistema sob condições específicas (SHANNON, 1998); simulações podem ser usadas de forma inapropriada. Há situações em que uma solução analítica, por exemplo, seria adequada ou até melhor (BANKS, 1999). 2.3 CLOUDSIM O CloudSim é uma ferramenta extensível de código aberto para simulação de sistemas computacionais em nuvem desenvolvida na Universidade de Melbourne, na Austrália. Este framework foi projetado especificamente para modelagem e simulação de infraestruturas de computação em nuvem, visto que os simuladores então disponíveis eram voltados à Computação em Grade (Grid Computing) e, portanto, não ofereciam suporte ao isolamento das abstrações das camadas de serviços (SaaS, PaaS e IaaS) e à simulação de ambientes virtualizados, nem ferramentas para a modelagem de datacenters com grandes quantidades de servidores (CALHEIROS et al., 2011). O simulador CloudSim, segundo Calheiros et al. (2011), oferece como principais recursos: suporte à modelagem e simulação de ambientes computacionais em nuvem de grande escala em um único computador e com baixo consumo de recursos computacionais;

27 26 plataforma autônoma para modelagem de nuvens, agentes de serviços e políticas de alocação; mecanismo de virtualização, que auxilia na criação e no gerenciamento de múltiplos serviços em um nó do datacenter; flexibilidade de troca entre diferentes políticas de alocação de núcleos de processamento; e criação dinâmica de entidades. A partir da versão 2.0, através de extensões, o CloudSim permite realizar simulações que levam em consideração o consumo de energia elétrica (capacidade que não era contemplada pelo núcleo do framework). Foi incorporada também a possibilidade de simular aplicações com cargas de trabalho dinâmicas (BELOGLAZOV, 2013) Funcionamento do CloudSim Para dar sustento à realização das extensões e simulações propostas, nesta seção, são explicados os métodos de modelagem de componentes, o processamento interno de aplicações e o fluxo de comunicação entre entidades do CloudSim conforme descrito por Calheiros et al. (2011) Modelagem da nuvem No CloudSim, uma entidade é uma instância de um componente. Este, por sua vez, pode ser uma classe ou um conjunto de classes que representam um modelo. Assim, na modelagem de uma nuvem, Datacenter é uma entidade que gerencia máquinas físicas, às quais são atribuídas máquinas virtuais por meio de uma política de alocação definida pelo provedor de Nuvem. As máquinas físicas, por sua vez, são representadas pelo componente Host, que possui atributos como capacidade de processamento, memória, armazenamento e política de alocação de núcleos de processamento a máquinas virtuais. A alocação de máquinas virtuais em uma nuvem refere-se ao processo de criar instâncias destas em máquinas físicas que atendem aos requisitos de hardware, como número de núcleos de processamento e quantidade de memória. Assim, cada componente Host instancia um componente VmScheduler, que representa uma política de alocação de núcleos a MVs (por espaço ou tempo compartilhado).

28 Modelagem da alocação de máquinas virtuais A alocação de máquinas virtuais leva em consideração a capacidade de processamento e a largura de banda disponíveis na máquina física, uma vez que as MVs, apesar de executarem em contextos isolados, compartilham os núcleos de processamento e o barramento de sistema. No CloudSim, a alocação é realizada em dois níveis: na máquina física e na máquina virtual. No primeiro, é especificada a quantidade de poder de processamento de cada núcleo que será atribuído a cada MV. No segundo, cada tarefa recebe um valor fixo do poder de processamento disponível na máquina virtual. Em ambos os níveis, são implementadas duas políticas básicas de provisionamento: tempo compartilhado e espaço compartilhado. Na Figura 3, são mostrados os quatro cenários possíveis para o uso de tais políticas. O simulador permite também que políticas personalizadas sejam criadas por desenvolvedores por meio de extensões às classes existentes. Figura 3 Políticas de alocação: (a) Espaço compartilhado para MVs e tarefas, (b) Espaço compartilhado para MVs e tempo compartilhado para tarefas, (c) Tempo compartilhado para MVs e espaço compartilhado para tarefas, (d) Tempo compartilhado para MVs e tarefas. Fonte: Adaptado de CALHEIROS et al., Modelagem do comportamento da rede A inclusão da topologia de rede e seu comportamento no modelo é uma consideração importante, uma vez que a latência das mensagens trocadas entre entidades da nuvem afeta o desempenho geral das aplicações e pode ocasionar violações ao SLA.

29 28 No CloudSim, a latência do tráfego da rede é simulada através de informação armazenada em uma matriz de latência m x n, em que cada posição e ij representa o tempo de transferência de uma mensagem da entidade i para a entidade j. Assim, um evento é transmitido entre i e j pelo mecanismo de gerenciamento de eventos quando o tempo total da simulação é igual ao tempo em que a mensagem foi enviada mais a latência de rede entre as duas entidades. A topologia da rede é armazenada em um arquivo BRITE (Boston university Representative Internet Topology generator). Este arquivo contém os nós da rede, que representam entidades do CloudSim, como máquinas físicas e datacenters, e é lido pelo simulador e utilizado para gerar a matriz de latência. Mensagens enviadas entre entidades do CloudSim constituem eventos e são processadas por um objeto NetworkTopology, que possui a informação sobre a topologia da rede. Este objeto acrescenta o valor de latência ao evento e o transfere para o motor de gerenciamento de eventos para processamento adicional Modelagem de cargas de trabalho dinâmicas O CloudSim suporta a simulação de aplicações que apresentam comportamentos dinâmicos em relação à carga de trabalho, à disponibilidade e à escalabilidade. Para tanto, é necessário implementar um modelo de utilização, que define a demanda de processamento de uma aplicação, ou utilizar um dos modelos já disponíveis no simulador. O simulador permite também a modelagem e a simulação de violações ao SLA, através de políticas que definem quando estas violações podem ocorrer; e da contagem do número de violações e de recursos que foram requisitados, mas não alocados Modelagem do consumo de energia do datacenter Ambientes de computação em nuvem, com sua infraestrutura e sistemas de refrigeração, podem consumir grande quantidade de energia elétrica. No CloudSim, é possível gerenciar tal consumo através do objeto PowerModel, que pode ser estendido para suportar a definição e a simulação de diferentes modelos de consumo e técnicas de gerenciamento de energia. O simulador permite ainda a criação de políticas de provisionamento e o cálculo da energia total consumida por um sistema durante o período de simulação.

30 Processamento interno do datacenter O processamento das aplicações é feito pelas máquinas virtuais, que monitoram e atualizam seu progresso continuamente. Um evento interno é gerado para informar à entidade Datacenter que uma aplicação será finalizada em breve. Assim, a cada passo da simulação, esta entidade chama um método que faz com que todas as máquinas físicas atualizem os status de suas máquinas virtuais e aciona outro método. Este, por sua vez, faz com que as máquinas virtuais atualizem os status de suas aplicações ativas e retornem o tempo do próximo evento. As máquinas físicas, então, enviam os menores tempos de finalização para o Datacenter. Estes tempos são armazenados em uma fila, que é consultada pela entidade Datacenter após cada processamento de evento. A Figura 4 exibe esta sequência de atualização do processamento de aplicações. Figura 4 Diagrama de sequência do processamento de aplicações. Fonte: Adaptado de CALHEIROS et al., Comunicação entre entidades O CloudSim é um simulador baseado em eventos e, portanto, as diferentes entidades de um sistema simulado comunicam-se por meio do envio de eventos. O fluxo

31 30 básico desta comunicação, demonstrado na Figura 5, inicia-se com o registro da entidade Datacenter no CIS (Cloud Information Service). Em seguida, quando uma aplicação é enviada pelo usuário, o DatacenterBroker consulta o CIS para identificar os provedores de nuvem cujas infraestruturas atendam aos requisitos de software, hardware e QoS desta. Quando identificados, o DatacenterBroker negocia e realiza a implantação de máquinas virtuais, que executarão a aplicação, em uma ou mais máquinas físicas de um Datacenter sugerido pelo CIS. Depois de finalizada a execução das tarefas, as MVs são destruídas. Figura 5 Diagrama de sequência da comunicação entre entidades. Fonte: Adaptado de CALHEIROS et al., Arquitetura do CloudSim O framework CloudSim possui uma arquitetura constituída por três camadas: camada do núcleo do simulador: é a camada inferior, onde a simulação é processada. Nesta camada, é realizado o controle da execução e das filas de eventos; camada de simulação do CloudSim: é a camada intermediária, que contém as classes de entidades que compõem o ambiente de computação em nuvem, como máquinas físicas, máquinas virtuais, datacenter e PE (Processing Element), e estão distribuídas entre as subcamadas Estruturas de Interface do Usuário, Serviços da Máquina Virtual, Serviços da Nuvem, Recursos da Nuvem e Rede. Esta camada é ainda responsável pela

32 31 alocação de MVs a máquinas físicas, pelo gerenciamento da execução de aplicativos e pelo monitoramento do estado do sistema dinâmico; camada de usuário: é a camada superior da arquitetura, na qual é definido o cenário da simulação através da configuração de entidades básicas, como máquinas físicas (quantidade e suas especificações); aplicações (números de tarefas e suas requisições); máquinas virtuais; número de usuários; tipos de aplicações; e políticas de escalonamento. A Figura 6 ilustra as três camadas do CloudSim e seus componentes. Figura 6 Arquitetura de camadas do CloudSim. Fonte: CALHEIROS et al., Estrutura do CloudSim As principais classes que compõem o simulador, de acordo com Calheiros et al. (2011), são descritas a seguir: BwProvisioner: classe abstrata que representa a política de provisionamento de largura de banda a máquinas virtuais. Por padrão, é estendida pela classe BwProvisionerSimple (que permite a uma máquina virtual reservar a largura de banda necessária desde que esta quantidade esteja disponível na máquina física), mas pode ser estendida por outras

33 32 classes criadas por pesquisadores e desenvolvedores para modelar novas políticas que atendam às necessidades de determinadas aplicações; Cloudlet: classe que modela as aplicações que executam na nuvem. Cada aplicação possui um tamanho de instrução predeterminado e overhead de transferência de dados e armazena informações como o id da máquina virtual na qual é executada, o tamanho, o número de núcleos de processamento requeridos para sua execução e seu status; CloudletScheduler: classe abstrata que pode ser estendida de forma a implementar diferentes políticas de compartilhamento do poder de processamento de uma máquina virtual entre as aplicações que nela são executadas. Duas classes que a estendem são oferecidas pelo CloudSim: CloudletSchedulerSpaceShared (espaço compartilhado) e Cloudlet- SchedulerTimeShared (tempo compartilhado); Datacenter: classe que modela a infraestrura oferecida como serviço pelos provedores de computação em nuvem e consiste em um conjunto de máquinas físicas com configurações de hardware (como memória, quantidade de núcleos e capacidade de armazenamento) que podem ser homogêneas ou heterogêneas; DatacenterBroker: classe que modela um agente que opera em nome do usuário e é responsável pela mediação das negociações entre ele e o provedor de nuvem. Primeiro, o agente busca provedores de serviços apropriados no CIS e, em seguida, realiza negociações de alocação de recursos e serviços para atender aos requisitos de QoS. É possível estender esta classe para a implementação de políticas de mediação personalizadas; DatacenterCharacteristics: classe que contém as propriedades dos recursos do datacenter, como arquitetura, sistema operacional, política de alocação, VMM e custos; Host: classe que modela um recurso físico (servidores de computação ou armazenamento) e seus atributos, como quantidade de memória e capacidade de armazenamento; política para o compartilhamento do poder de processamento entre MVs; e políticas de provisionamento de memória e largura de banda para MVs;

34 33 NetworkTopology: classe que armazena informações sobre o comportamento da rede em uma simulação, através de matrizes de latência e de largura de banda e sobre sua topologia, gerada a partir de um arquivo BRITE; RamProvisioner: classe abstrata que representa a política de provisionamento de memória RAM (Random Access Memory) a máquinas virtuais e é responsável por verificar se o recurso físico possui memória (livre) suficiente para a implantação e execução de determinada MV. É estendida pela classe RamProvisionerSimple, que aloca a quantidade de memória requisitada pela máquina virtual, exceto se esta for maior que a memória disponível. Neste caso, o pedido é simplesmente rejeitado; HarddriveStorage: classe que representa uma rede de armazenamento composta por um conjunto de discos rígidos conectados através de uma LAN (Local Access Network). Implementa uma interface que pode ser utilizada para simular armazenamento e recuperação de qualquer quantidade de dados, desde que a rede disponha da largura de banda necessária; Vm: classe que modela uma máquina virtual, gerenciada e hospedada por uma máquina física. Possui características como número de processadores, quantidade de memória RAM e política de alocação interna; VmAllocationPolicy: classe abstrata que representa a política de alocação de máquinas virtuais a máquinas físicas e tem como principal função selecionar um recurso físico que atenda às exigências de memória, armazenamento e disponibilidade para a implantação de uma MV. Este processo é realizado em dois estágios: primeiro, a máquina física é reservada e, depois da confirmação do usuário, a máquina virtual é efetivamente alocada. A política padrão utilizada é implementada pela classe VmAllocationPolicySimple e escolhe a máquina física com menor número de PEs em uso para alocar uma máquina virtual; VmScheduler: classe abstrata que representa a política de compartilhamento do poder de processamento entre as máquinas virtuais que executam em uma mesma máquina física. Pode ser estendida para suportar políticas específicas.

35 34 entre elas. A Figura 7 apresenta as classes do CloudSim descritas anteriormente e as relações Figura 7 Diagrama de classes UML do CloudSim. Fonte: Adaptado de CALHEIROS et al., No núcleo da arquitetura, encontra-se o motor de simulação do CloudSim, responsável pela criação e gerenciamento de eventos. As classes que compõem tal motor são descritas a seguir: CloudSim: classe principal, que é responsável por gerenciar filas de eventos e controlar a execução destes passo a passo. Cada evento gerado por esta entidade em tempo de execução é armazenado em uma fila de eventos futuros, ordenada pelo atributo tempo. Quando o tempo de simulação coincide com o tempo em que um evento está agendado para ocorrer, este é transferido para a fila de eventos diferidos e um método de processamento de eventos é chamado para realizar as ações necessárias; DeferredQueue: classe que implementa a fila de eventos diferidos usada pela entidade CloudSim; FutureQueue: classe que implementa a fila de eventos futuros usada pela entidade CloudSim; CloudInformationService: classe que permite o registro de entidades e a descoberta de recursos disponíveis de outras entidades;

36 35 SimEntity: classe abstrata que representa uma entidade da simulação capaz de enviar mensagens a outras entidades; processar mensagens recebidas; e disparar e manipular eventos; CloudSimTags: classe que contém etiquetas de comando que indicam o tipo de ação que deve realizada por entidades ao receberem ou enviarem eventos; SimEvent: classe que representa um evento enviado entre entidades e possui atributos como tipo, tempo de inicialização, tempo em que o evento deve ocorrer e tempo de finalização; CloudSimShutdown: classe responsável por indicar o término de uma simulação ao CIS; Predicate: classe usada para determinar a seleção de eventos da fila de eventos deferidos. É estendida pelas classes: PredicateAny (qualquer evento da fila é selecionado); PredicateFrom (seleciona eventos disparados por uma entidade específica); PredicateNone (não corresponde a nenhum evento da fila); PredicateNotFrom (seleciona eventos que não foram enviados por uma dada entidade); PredicateNotType (eventos que não correspondem a determinados marcadores são selecionados); e PredicateType (seleciona eventos com marcadores específicos). A Figura 8 demonstra o diagrama de classes UML do núcleo de simulação do CloudSim, formado por suas classes principais e pelos seus predicados. Figura 8 Diagrama de classes UML do núcleo do CloudSim. Fonte: CALHEIROS et al., 2011.

37 TRABALHOS CORRELATOS Nesta seção, são descritos os principais trabalhos relacionados a esta pesquisa. Os dois primeiros consistem em modelos de gerenciamento para a redução do consumo de energia elétrica em ambientes de nuvem verde e estão relacionados à motivação deste projeto. Os demais referem-se a simuladores desenvolvidos a partir do CloudSim: TeachCloud, CloudReports e NetworkCloudSim Modelos de Gerenciamento de Nuvem Verde Werner (2011) propõe um modelo de alocação e distribuição de máquinas virtuais como solução para o controle integrado de servidores e sistemas de suporte em nuvem verde. Esta abordagem considera um sistema de gerenciamento com múltiplos componentes e é baseada no OTM (Organization Theory Model), através do qual são definidos os padrões de interação entre tais componentes e as regras de funcionamento. Com base em normas, papéis, regras e crenças, este modelo prevê quando máquinas virtuais devem ser desligadas, redimensionadas ou migradas e quando máquinas físicas devem ser ligadas ou desligadas em função da carga de trabalho e das exigências do SLA. A abordagem define ainda quando o desligamento ou o religamento dos sistemas de suporte é necessário. A proposta foi validada por meio de simulações de diferentes cenários e, segundo Werner (2011), demonstrou ser eficiente, com uma economia de até 40% de energia elétrica em comparação com o modelo de nuvem convencional. Villarreal e Westphall (2013) realizaram extensões à proposta de Werner (2011) a fim de acrescentar-lhe o gerenciamento dos equipamentos de rede legados, cujo consumo é praticamente independente da carga de trabalho. O novo modelo visa tornar o consumo destes equipamentos aproximadamente proporcional à carga e fazer com que a energia elétrica por eles economizada contribua para a eficiência total do sistema. Para a consolidação do tráfego da rede, foram elaboradas regras e crenças que regem a correta configuração desta em função da consolidação de carga nos servidores. Os autores desenvolveram ainda um modelo para gerar a topologia da rede do datacenter em função do número de servidores físicos e definiram regras e fórmulas para calcular o consumo dos switches e da rede completa.

38 37 O modelo proposto é baseado na topologia de rede padrão de um datacenter, mostrada na Figura 9, que é composta por três camadas de switches: acesso, agregação e núcleo. Nesta configuração, existe redundância nas conexões entre camadas e cada rack acomoda até 40 máquinas físicas e dois switches de camada de acesso, sendo que cada MF possui uma placa de rede conectada a cada switch de acesso do rack ao qual pertence. Os autores consideram que cada switch de acesso possui 48 portas downlink, isto é, portas para conexão com a camada imediatamente inferior, com velocidade Giga Ethernet e 2 portas uplink (para conexão com a camada superior) com velocidade 10 Giga Ethernet. Os switches da camada de agregação, por sua vez, possuem 24 portas downlink 10 Giga Ethernet e 2 portas uplink 40 Giga Ethernet. Já os switches de núcleo são compostos por módulos de 24 portas com velocidade 40 Giga Ethernet. Assim, o modelo estabelece que até 12 racks podem ser atendidos por 2 switches de camada de agregação; que, com menos de 12 racks, não são necessários switches de camada de núcleo; e que até 144 racks podem ser atendidos por dois switches de camada de núcleo com um módulo cada. Desta forma, é possível determinar a quantidade de cada tipo de switch e suas interconexões a partir da quantidade de máquinas físicas. Figura 9 Topologia de rede padrão de um datacenter. Fonte: Adaptada de VILLARREAL; WESTPHALL, A economia energética proposta pelo sistema baseia-se no desligamento de portas, módulos e switches inativos e na redução da velocidade de portas. O cálculo do consumo dos switches é realizado através da soma do consumo base de cada tipo de switch com o

39 38 somatório dos consumos das portas. Este último depende da quantidade de portas ativas e da velocidade configurada para cada porta. Esta abordagem foi validada com um modelo analítico simples. No entanto, os autores descrevem um modelo de simulação e sugerem como trabalhos futuros realizar extensões ao simulador CloudSim para implementar tal modelo e executar experimentos a fim de determinar tanto as regras mais eficientes quanto a contribuição e o impacto do modelo em cenários com diferentes cargas de trabalho TeachCloud O TeachCloud é uma ferramenta para modelagem e simulação de ambientes de computação em nuvem voltada para o ensino e construída sobre a plataforma do CloudSim. Entre os aprimoramentos e extensões introduzidas ao CloudSim pelo TeachCloud, pode-se citar: interface gráfica para auxiliar os alunos a criarem os componentes de uma nuvem; gerador de carga de trabalho Rain; módulos para a especificação de SLA; modelos de redes para representar topologias existentes em ambientes de nuvem reais; monitoramento da maior parte dos componentes de um sistema; e um módulo que permite aos estudantes reconfigurar a nuvem e estudar o impacto das mudanças no desempenho do sistema (JARARWEH et al., 2012). O código do TeachCloud, segundo os autores, seria disponibilizado para pesquisadores e estudantes. No entanto, o desenvolvimento foi descontinuado e todo o conteúdo foi retirado do website do simulador CloudReports O CloudReports, desenvolvido na Universidade Federal do Ceará, é uma ferramenta que utiliza o CloudSim como motor de simulação e provê atributos como: interface gráfica, geração de relatórios e criação de extensões através de plugins que podem ser conectados em tempo de execução sem a necessidade de recompilar o código fonte. No entanto, o conjunto de extensões suportadas limita-se a apenas determinados tipos de algoritmos, como: políticas de alocação de VMs e de provisionamento de recursos; 7 Endereço do website do TeachCloud:

40 39 escalonadores de MVS e aplicações; e modelos de consumo de energia e modelos de utilização (SÁ, 2013) NetworkCloudSim O NetworkCloudSim é um framework de simulação de ambientes de computação em nuvem, cujos componentes foram implementados como parte do simulador CloudSim a fim de dotá-lo de recursos para a modelagem do comportamento de aplicações e da rede interna do datacenter. Foi desenvolvido por Garg e Buyya (2011) com o intuito de fornecer um modelo escalável e generalizado de aplicação e de rede. Para a modelagem de diferentes topologias de rede, o NetworkCloudSim apresenta as classes: Switch, que representa uma entidade que pode ser configurada como um roteador ou um switch e modela atrasos no encaminhamento de dados a outras entidades; e NetworkPacket e HostPacket, que modelam, respectivamente, pacotes que viajam pela rede virtual e pacotes que são transmitidos de um servidor a outro e, portanto, representam um fluxo de dados entre MVs em um datacenter. Já para a modelagem de aplicações, foram desenvolvidas as classes: NetworkCloudlet, que é uma extensão da classe Cloudlet do CloudSim e representa uma tarefa generalizada com vários estágios; e AppCloudlet, que representa uma aplicação com múltiplas tarefas (GARG; BUYYA, 2011). O NetworkCloudSim, contudo, é voltado para a representação do tráfego da rede e não suporta o gerenciamento e o cálculo do consumo elétrico dos equipamentos.

41 40 3 DESENVOLVIMENTO Neste capítulo, é detalhado o desenvolvimento das extensões realizadas ao simulador CloudSim. São relacionados os requisitos funcionais e não funcionais que devem ser atendidos por tais extensões e é apresentada a especificação do projeto, através dos diagramas de casos de uso, de classes, de sequência e de atividades. São descritos ainda a implementação e o funcionamento das classes e dos algoritmos desenvolvidos, bem como os testes realizados. Por fim, são demonstradas e discutidas as simulações executadas e os resultados obtidos. 3.1 DESCRIÇÃO As extensões desenvolvidas adicionam ao CloudSim a capacidade de definir uma topologia de rede e representar e gerenciar seus componentes para realizar simulações que consideram o consumo energético da rede do datacenter a fim de validar o sistema proposto por Villarreal e Westphall (2013). Este sistema, conforme descrito no capítulo 2, propõe extensões a um modelo de gerenciamento de nuvem verde para gerenciar equipamentos de rede legados de forma a tornar seu comportamento aproximadamente proporcional à carga de trabalho e baseia-se na desconexão de portas, módulos e switches inativos e na redução da velocidade de portas. Os autores propõem também um modelo de simulação baseado na topologia padrão de um datacenter que, a partir da quantidade de máquinas físicas, determina os equipamentos de rede necessários e suas interconexões e em uma fórmula para o cálculo do consumo dos switches em função da quantidade de portas ativas e das velocidades das mesmas. Desta forma, as extensões implementadas permitem simular e modelar a rede de acordo com a topologia padrão definida, gerenciá-la conforme as regras estabelecidas no modelo em função das mudanças de estados das máquinas físicas do datacenter e calcular a energia consumida durante sua operação. 3.2 REQUISITOS Os requisitos que devem ser atendidos pelas extensões ao CloudSim foram levantados e revisados junto aos pesquisadores responsáveis pelo modelo de gerenciamento mediante entrevistas e são especificados nos Quadros 1 e 2:

42 41 Quadro 1 Requisitos funcionais. REQUISITOS FUNCIONAIS RF01: Permitir definir o cenário da simulação, incluindo características das máquinas físicas, das máquinas virtuais, das aplicações e dos equipamentos de rede do datacenter. RF02: Definir a topologia da rede a partir do número de máquinas físicas. RF03: Representar os switches de acesso, agregação e núcleo e suas mudanças de estado. RF04: Interagir com o CloudSim para que os eventos da simulação provoquem as mudanças correspondentes no estado da rede. RF05: Ligar e desligar equipamentos de rede e portas em função da consolidação de carga das máquinas físicas. RF06: Configurar a velocidade das portas dos equipamentos de rede em função da utilização das máquinas físicas e da largura de banda agregada. RF07: Calcular o consumo de energia elétrica dos equipamentos de rede. RF08: Em cada passo da simulação, acrescentar o consumo da rede ao consumo total do datacenter. RF09: Permitir a realização de simulações sem gerenciamento da rede. RF10: Informar as características da topologia e o consumo da rede em sua condição inicial. RF11: Gerar e salvar registros (logs) das mudanças de estado da rede. RF12: Salvar os resultados da simulação. Quadro 2 Requisitos não funcionais. REQUISITOS NÃO FUNCIONAIS RNF01: Executar em microcomputador convencional. RNF02: Permitir simulações de 6 horas de operação de um datacenter com até máquinas físicas com tempo de resposta menor que 1 hora. RNF03: Permitir extensão para atender outras necessidades de pesquisas. RNF04: Permitir fácil manutenção do código. RNF05: Interface gráfica para definição do cenário da simulação e exibição dos resultados. 3.3 ESPECIFICAÇÃO Para a especificação das extensões desenvolvidas, foram elaborados diagramas de acordo com a linguagem de modelagem UML e com auxílio da ferramenta Astah Community. Nesta seção, são apresentados os diagramas de casos de uso, de classes, de sequência e de atividades.

43 Casos de Uso Os casos de uso apresentados nesta seção, e detalhados no Apêndice A, estão relacionados aos requisitos funcionais relatados na seção anterior e demonstram as interações entre o sistema e os agentes externos. O primeiro diagrama, exibido na Figura 10, tem como ator o usuário que deseja realizar simulações e compreende os casos de uso relacionados à interação deste com o simulador através de uma interface gráfica. No segundo diagrama, apresentado na Figura 11, o ator é o próprio simulador CloudSim, que interage com as extensões desenvolvidas para reconfigurar a rede a cada mudança de estado e calcular seu consumo. Figura 10 Diagrama de casos de uso da interação do usuário com o simulador.

44 Figura 11 Diagrama de casos de uso da interação da interação do CloudSim com as extensões. 43

45 Diagrama de Classes O diagrama de classes, mostrado na Figura 12, representa as classes implementadas e as relações entre elas. Figura 12 Diagrama de classes do NetPowerCloudSim.

46 Diagrama de Sequência O diagrama a seguir (Figura 13) mostra a sequência de criação dos objetos e as chamadas de métodos necessários para executar uma simulação com o NetPowerCloudSim. Figura 13 Diagrama de sequência da aplicação principal Diagrama de Atividades O diagrama UML apresentado na Figura 14 demonstra o fluxo de atividades do processo de reconfiguração da rede, realizado pelo gerenciador de rede de acordo com a mudança de estado de cada máquina física do datacenter em cada frame da simulação.

47 Figura 14 Diagrama de atividades do processo de reconfiguração da rede. 46

48 IMPLEMENTAÇÃO Nesta seção, são apresentadas as técnicas e as ferramentas utilizadas e é detalhada a implementação das extensões realizadas ao simulador Técnicas e ferramentas Para o desenvolvimento das extensões, foi utilizada a linguagem de programação orientada a objetos Java e o ambiente de desenvolvimento Netbeans IDE 7.3.1, em conjunto com o framework CloudSim e a biblioteca gráfica Swing. A fim de auxiliar na compreensão do código e do funcionamento dos algoritmos, bem como facilitar futuras extensões, todas as classes criadas foram detalhadamente comentadas, e foi gerada documentação com a ferramenta Javadoc, fornecida pela Sun Microsystems. Os testes de unidade realizados sobre as classes desenvolvidas foram criados com auxílio do framework JUnit Codificação das extensões Para a codificação, foram consideradas duas extensões do CloudSim: o NetworkCloudSim e o PowerCloudSim. O primeiro permite representar equipamentos de rede, porém, como descrito no capítulo 2, é focado no tráfego da rede e não possui recursos para modelar o consumo de energia, o que obrigaria alterar todas as classes existentes, além de criar novas. Já o segundo, apesar de não possuir recursos para representar equipamentos de rede, permite o cálculo do consumo energético do datacenter e a migração de máquinas virtuais. Foi decidido, então, utilizar como base o PowerCloudSim, de Beloglazov e Buyya (2012), e estender suas funcionalidades para representar, gerenciar e calcular o consumo da rede. O simulador estendido foi chamado NetPowerCloudSim e acrescenta as classes PowerSwitch, herdada pelas classes PowerSwitchAcesso, PowerSwitchAgregacao e PowerSwitchNucleo; NetPowerDatacenter; GerenciadorRede; e TopologiaRede, descritas nas subseções a seguir.

49 PowerSwitch Esta classe representa um equipamento de rede do tipo switch e é estendida pelas classes PowerSwitchAcesso, PowerSwitchAgregacao e PowerSwitchNucleo, que representam switches das camadas de acesso, de agregação e de núcleo, respectivamente. Cada switch armazena seu estado, que pode ser ligado ou desligado; o estado de cada porta, que indica se está desativada ou sua velocidade (Fast Ethernet, Giga Ethernet, 10 Giga Ethernet, 40 Giga Ethernet ou 100 Giga Ethernet); seu consumo atual; seu consumo quando o frame iniciou; a largura de banda agregada; a quantidade de portas; a quantidade de portas de uplink; e a quantidade de portas ativas. Os switches possuem métodos que permitem ligá-los e desligá-los, bem como ligar e desligar portas específicas e reduzir ou aumentar sua velocidade. É possível ainda calcular seu consumo atual, a energia consumida durante um frame da simulação e a largura de banda agregada. Esta última constitui a soma das larguras de banda de todas as portas de downlink ativas. A energia consumida por um switch durante um frame da simulação é calculada por interpolação linear dos valores de consumo do switch no início do frame e o consumo atual. O Erro! Autoreferência de indicador não válida. exibe o código do método que realiza este cálculo. Quadro 3 Código do método que calcula a energia consumida por um switch durante um frame da simulação. As classes PowerSwitchAcesso e PowerSwitchAgregacao possuem métodos para verificar se a largura de banda agregada ultrapassou ou baixou do limite estabelecido, que são usados pelo gerenciador da rede para decidir se a velocidade das portas de uplink dos switches da camada imediatamente superior deve ser, respectivamente, aumentada ou reduzida. A classe PowerSwitchNucleo possui métodos que permitem ao gerenciador da rede ligar um módulo quando está desligado e uma porta é ligada e desligar um módulo quando não possui mais portas ativas.

50 49 Para manter a eficiência do código, o consumo atual e a largura de banda agregada são calculados apenas quando o objeto é criado e são atualizados a cada modificação realizada em uma porta. Se os valores não fossem mantidos atualizados, ao final de cada frame da simulação, seria necessário percorrer as portas de todos os switches para calcular seus consumos e suas larguras de banda agregada. O Quadro 4 mostra o trecho do código para atualizar o consumo de um switch quando a velocidade de uma porta é aumentada. Quadro 4 Trecho de código para atualizar o consumo atual do switch NetPowerDatacenter Classe que representa um datacenter com uma rede composta por máquinas físicas, switches de acesso, switches de agregação e switches de núcleo e permite calcular o seu consumo durante uma simulação. Possui como atributos o consumo total da rede, o consumo inicial da rede, o gerenciador da rede, as listas de switches e a informação sobre o gerenciamento da rede, que pode estar habilitado ou desabilitado. Esta classe estende a classe PowerDatacenter, que, por sua vez, estende a classe Datacenter para acrescentar-lhe a capacidade de calcular o consumo energético do datacenter e de realizar migração de máquinas virtuais. Assim como as classes que estende, a NetPowerDatacenter é uma entidade e, portanto, pode comunicar-se com outras entidades do CloudSim por meio da criação de eventos e do envio de mensagens e é responsável pelo avanço da simulação. Esta classe sobrescreve os métodos updatecloudletprocessing e processvm- Migrate do PowerDatacenter, que são responsáveis por processar eventos da simulação, isto é, realizar as ações necessárias quando finaliza a execução de uma aplicação ou a migração de uma máquina virtual, respectivamente. Os métodos sobrescritos são invocados pelo núcleo do simulador ao final de cada frame da simulação, de acordo com o tipo de evento que o provocou. Após chamar o método correspondente da classe pai para atualizar o estado das máquinas físicas e virtuais e do datacenter, invocam os métodos verificamudancaestadohost e calculaconsumoredeframe para atualizar o estado da rede.

51 50 O método verificamudancaestadohost (Quadro 5) verifica a mudança de estado de cada máquina física do datacenter e a informa ao gerenciador da rede para que este a reconfigure. Quadro 5 Trecho de código do método verificamudancaestadohost. O método calculaconsumoredeframe, por sua vez, calcula a quantidade de energia elétrica consumida por cada switch durante o frame e acumula os valores em uma variável que representa o consumo da rede no frame. Se o gerenciamento da rede não estiver habilitado, a energia consumida em cada frame é calculada diretamente através da multiplicação do consumo inicial da rede pela duração do frame TopologiaRede Classe responsável por definir e representar a topologia da rede através das quantidades de racks, de switches de acesso, de switches de agregação, de switches de núcleo e de módulos por switch de núcleo e das interconexões entre seus componentes. Antes de iniciar a simulação, a partir da quantidade de máquinas físicas presentes no datacenter, o método definetopologia calcula a quantidade de racks necessários para

52 51 acomodá-las. As quantidades de switches de acesso, de agregação e de núcleo são, então, calculadas a partir da quantidade de racks. O Quadro 6 apresenta o trecho de código no qual são realizados estes cálculos. Quadro 6 Trecho do método que calcula as quantidades de racks, de switches de acesso, de switches de agregação, de switches de núcleo e de módulos por switch de núcleo. Devido à topologia padrão estabelecida no modelo, existe uma relação matemática entre o id de cada elemento da rede e o id do equipamento e o número das portas aos quais está conectado. Portanto, não há necessidade de armazenar as interconexões entre todos os componentes em estruturas de dados na classe. Quando a informação é requerida pelo simulador, a classe calcula os switches e as portas correspondentes através de fórmulas. Considera-se que os componentes da rede não podem ser conectados a uma porta diferente da que lhe corresponde de acordo com a topologia padrão. Como exemplo, é exibido no Quadro 7 o código do método que calcula os ids dos switches de acesso e o número das portas correspondentes a uma máquina física a partir de seu id.

53 52 Quadro 7 Código do método que calcula os ids dos switches de acesso e o número das portas aos quais uma máquina física está conectada GerenciadorRede Classe que representa um gerenciador cuja função é reconfigurar a rede ao final de cada frame da simulação de acordo com as mudanças de estado das máquinas físicas. O gerenciador da rede age de acordo com as regras definidas no modelo, que determinam quando reduzir ou aumentar a velocidade de portas; ligar ou desligar portas; e ligar ou desligar módulos e switches. Antes de iniciar a simulação, o método desligaportassemuso, com o auxílio da classe TopologiaRede determina quais são as portas que não possuem equipamentos conectados e as desliga (Quadro 8). Este método também verifica se a largura de banda agregada dos switches que tiveram portas desligadas baixou do limite estabelecido para determinar se a velocidade de suas portas de uplink deve ser reduzida. Quadro 8 Trecho de código do método desligaportassemuso que desliga as portas sem uso dos dois últimos switches de acesso.

54 53 O método atualizarede, invocado pela classe NetPowerDatacenter quando há uma mudança de estado em uma máquina física, recebe o id da máquina e o tipo de mudança ocorrida e chama os métodos do objeto TopologiaRede para calcular a hierarquia de conexões entre equipamentos e o método correspondente para reconfigurar a rede. Quando uma máquina física é desligada, por exemplo, o gerenciador da rede desliga as portas dos switches de acesso às quais a máquina está conectada e verifica se ainda há portas ligadas em tais switches. Se não houver, o gerenciador desliga os switches. Se houver, verifica se a largura de banda agregada dos switches de acesso baixou do limite estabelecido. Caso esta condição seja verdadeira, a velocidade das portas é reduzida. O gerenciador, então, realiza as verificações e configurações necessárias nos switches de agregação e de núcleo, se estes existirem. A lógica completa do processo de reconfiguração da rede de acordo com as mudanças de estado das MFs está representada no diagrama de atividades apresentado na seção Classe principal e interface gráfica Para a realização de experimentos, foi desenvolvida uma classe principal, responsável por criar o cenário, iniciar a simulação e recuperar os resultados. Nela são configuradas as características de todos os objetos necessários para a simulação e os parâmetros da mesma. A fim de facilitar a execução de simulações, esta classe recebe valores ingressados através de uma interface gráfica, que possibilita definir o cenário e as características das simulações sem a necessidade de modificar ou criar código-fonte. Esta interface permite determinar a quantidade e características das máquinas físicas, das máquinas virtuais e das aplicações; indicar se a simulação deve considerar a rede e como esta deve ser gerenciada; habilitar a migração de MVs; e definir o tempo de operação do datacenter a ser simulado. É possível ainda, através desta interface, modificar os consumos base de cada tipo de switch e os consumos das portas de acordo com sua velocidade. Ao executar uma simulação, a topologia da rede gerada, seu consumo inicial e os resultados são mostrados na interface e podem ser salvos em arquivos de texto. É possível ainda definir onde os logs da simulação devem ser salvos. Na Figura 15, é mostrada a tela principal do simulador.

55 54 Figura 15 Tela principal do NetPowerCloudSim. 3.5 TESTES Nesta seção, são apresentados os testes de unidade e de integração realizados no código implementado e a validação dos requisitos funcionais e não funcionais Testes de Unidade Os testes de unidade foram realizados com o framework JUnit para verificar a correção do código de cada classe usando valores que levam a condições limítrofes e percorrem todos os caminhos possíveis. Como exemplo, são apresentados os testes realizados na classe TopologiaRede. O método definetopologia foi testado verificando se os valores dos atributos modificados por ele correspondiam aos valores esperados. Para os testes deste método, foram utilizadas as seguintes quantidades de máquinas físicas: 1, 20, 40, 41, 60, 80, 81, 300, 480, 481, 5760, 5761 e 7000.

56 55 Para testar o método calculaswitchacessoeporta, os ids de máquinas físicas utilizados foram: 0, 1, 20, 39, 40, 60, 79, 479, 480 e O código gerado pelo JUnit para este método e adaptado para o teste com id igual a 479 é apresentado no Quadro 9. Já os métodos calculaswitchagregacaoeporta e calculamoduloswitchnucleoeporta foram testados com a mesma série de valores de ids de switches de acesso e de agregação, respectivamente: 0, 1, 22, 23, 24, 30 e 100. Quadro 9 Código gerado pelo JUnit para teste do método calculaswitchacessoeporta e adaptado com id de máquina física e resultados esperados. classe TopologiaRede. A seguir, na Figura 16, são apresentados os resultados dos testes de unidade da

57 56 Figura 16 Resultados dos testes de unidade da classe TopologiaRede Testes de Integração Para verificar a correção dos algoritmos criados para definir a topologia e para reconfigurar a rede, bem como as rotinas de criação e de cálculo do consumo dos componentes da rede, foi implementada uma classe que permite testar o modelo da rede e seu funcionamento interagindo com as classes do CloudSim mas sem iniciar uma simulação. A partir da definição da quantidade de máquinas físicas desejada, esta classe permite realizar testes de integração, criando um datacenter e os demais objetos necessários para compor um cenário de simulação. Com o cenário definido, a classe calcula a topologia e o consumo inicial da rede; desliga as portas sem uso e informa o consumo com esta configuração, além de mostrar os atributos e o estado de cada porta de todos os switches. Para testar a interação dos métodos de reconfiguração da rede da classe GerenciadorRede com os switches e com o datacenter, esta classe permite também ligar e desligar uma máquina física ou um conjunto de máquinas físicas informando, entre outros atributos, o consumo e o estado das portas dos switches que foram modificados.

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar e independente da plataforma, bastando para isso

Leia mais

O que é Cloud Computing?

O que é Cloud Computing? O que é Cloud Computing? Referência The Economics Of The Cloud, Microsoft, Nov. 2010 Virtualização, Brasport, Manoel Veras, Fev. 2011. 2 Arquitetura de TI A arquitetura de TI é um mapa ou plano de alto

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem Sumário Introdução Arquitetura Provedores

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

Computação em Nuvem & OpenStack

Computação em Nuvem & OpenStack Computação em Nuvem & OpenStack Grupo de Pesquisa em Software e Hardware Livre Ação Computação em Nuvem: Charles Christian Miers André Rover de Campos Glauber Cassiano Batista Joinville Roteiro Definições

Leia mais

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM Rogério Schueroff Vandresen¹, Willian Barbosa Magalhães¹ ¹Universidade Paranaense(UNIPAR) Paranavaí-PR-Brasil rogeriovandresen@gmail.com, wmagalhaes@unipar.br

Leia mais

Virtualização de Sistemas Operacionais

Virtualização de Sistemas Operacionais Virtualização de Sistemas Operacionais Felipe Antonio de Sousa 1, Júlio César Pereira 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipeantoniodesousa@gmail.com, juliocesarp@unipar.br Resumo.

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

Planejamento Estratégico de TI. Felipe Pontes felipe.pontes@gmail.com

Planejamento Estratégico de TI. Felipe Pontes felipe.pontes@gmail.com Planejamento Estratégico de TI Felipe Pontes felipe.pontes@gmail.com VPN Virtual Private Network Permite acesso aos recursos computacionais da empresa via Internet de forma segura Conexão criptografada

Leia mais

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE Andressa T.R. Fenilli 1, Késsia R.C.Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil andressa.trf@gmail.com, kessia@unipar.br Resumo. Computação em

Leia mais

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1 SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1 CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MISSÃO DO CURSO A concepção do curso de Análise e Desenvolvimento de Sistemas está alinhada a essas novas demandas

Leia mais

Núvem Pública, Privada ou Híbrida, qual adotar?

Núvem Pública, Privada ou Híbrida, qual adotar? Instituto de Educação Tecnológica Pós-graduação Gestão e Tecnologia da Informação - Turma 25 03/04/2015 Núvem Pública, Privada ou Híbrida, qual adotar? Paulo Fernando Martins Kreppel Analista de Sistemas

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte Fernando Seabra Chirigati Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte Introdução Grid x Nuvem Componentes Arquitetura Vantagens

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

TRIBUTAÇÃO NA NUVEM. Tax Friday 21 de outubro de 2011 AMCHAM - RJ

TRIBUTAÇÃO NA NUVEM. Tax Friday 21 de outubro de 2011 AMCHAM - RJ TRIBUTAÇÃO NA NUVEM Tax Friday 21 de outubro de 2011 AMCHAM - RJ PROGRAMA 1. INTRODUÇÃO À COMPUTAÇÃO EM NUVEM CONCEITOS APLICÁVEIS 2. PRINCIPAIS OPERAÇÕES E ASPECTOS TRIBUTÁRIOS POLÊMICOS INTRODUÇÃO À

Leia mais

CLOUD. tendências CLOUD. entendendo e contratando assertivamente. Agosto/2012 INFORMATIVO TECNOLÓGICO DA PRODESP EDIÇÃO 02

CLOUD. tendências CLOUD. entendendo e contratando assertivamente. Agosto/2012 INFORMATIVO TECNOLÓGICO DA PRODESP EDIÇÃO 02 tendências CLOUD EDIÇÃO 02 Agosto/2012 CLOUD O conceito de nuvem é nebuloso Como uma organização pode contratar assertivamente Serviços em Cloud? Quais são os principais riscos de um contrato de Cloud

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate Workshop Divisão Tributária 18.04.2013 CIESP - CAMPINAS PROGRAMA 1. BREVE INTRODUÇÃO À COMPUTAÇÃO EM NUVEM 2. PRINCIPAIS OPERAÇÕES E ASPECTOS TRIBUTÁRIOS POLÊMICOS

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect Cloud Computing e HP Converged Infrastructure Para fazer uso de uma private cloud, é necessário crescer em maturidade na direção de uma infraestrutura convergente. Por Antonio Couto O que é Cloud Computing?

Leia mais

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR Jeferson J. S. Boesing 1 ; Manassés Ribeiro 2 1.Aluno do Curso

Leia mais

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial Aluno: André Faria Ruaro Professores: Jomi F. Hubner e Ricardo J. Rabelo 29/11/2013 1. Introdução e Motivação 2.

Leia mais

Instituto de Educação Tecnológica Pós-graduação Gestão em Tecnologia da Informação - Turma nº 25 08/04/2015. Computação em Nuvem

Instituto de Educação Tecnológica Pós-graduação Gestão em Tecnologia da Informação - Turma nº 25 08/04/2015. Computação em Nuvem Instituto de Educação Tecnológica Pós-graduação Gestão em Tecnologia da Informação - Turma nº 25 08/04/2015 Computação em Nuvem Carlos Henrique Barbosa Lemos RESUMO Este trabalho tem por objetivo tratar

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Cloud Computing. Edy Hayashida E-mail: edy.hayashida@uol.com.br

Cloud Computing. Edy Hayashida E-mail: edy.hayashida@uol.com.br Cloud Computing Edy Hayashida E-mail: edy.hayashida@uol.com.br Facebook 750 milhões de usuários 42% de todos os usuários do Facebook estão localizado na América, 27% na Ásia e 25% na Europa 4% na África

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

Introdução a Computação nas Nuvens

Introdução a Computação nas Nuvens Introdução a Computação nas Nuvens Professor: Rômulo César Dias de Andrade. E-mail: romulocesar@faculdadeguararapes.edu.br romulodandrade@gmail.com www.romulocesar.com.br PROFESSOR... Mini CV: NOME: RÔMULO

Leia mais

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM Pedro Victor Fortunato Lima, Ricardo Ribeiro Rufino Universidade Paranaense UNIPAR Paranavaí Paraná Brasil pedrin_victor@hotmail.com, ricardo@unipar.br

Leia mais

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor Gestão e Governança de TI Modelo de Governança em TI Prof. Marcel Santos Silva PMI (2013), a gestão de portfólio é: uma coleção de projetos e/ou programas e outros trabalhos que são agrupados para facilitar

Leia mais

2 Computação na Nuvem

2 Computação na Nuvem 18 2 Computação na Nuvem 2.1 Definição A ideia essencial da computação na nuvem é permitir um novo modelo onde o consumo de recursos computacionais, e.g., armazenamento, processamento, banda entrada e

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE Juliano Flores Prof. Wagner Walter Lehmann Centro Universitário Leonardo da Vinci - UNIASSELVI Gestão de Tecnologia da Informação (GTI0034) Prática do Módulo

Leia mais

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS João Antônio Bezerra Rodrigues¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavaí

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Exame de Fundamentos da ITIL

Exame de Fundamentos da ITIL Exame de Fundamentos da ITIL Simulado A, versão 5.1 Múltipla escolha Instruções 1. Todas as 40 perguntas devem ser respondidas. 2. Todas as respostas devem ser assinaladas na grade de respostas fornecida.

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto Introdução a computação móvel Monografia: Middlewares para Rede de Sensores sem Fio Uma avaliação na ótica de Adaptação ao Contexto Adriano Branco Agenda Objetivo do trabalho O que é uma WSN Middlewares

Leia mais

Segurança da Informação

Segurança da Informação INF 108 Segurança da Informação Computação em Nuvem Prof. João Henrique Kleinschmidt Introdução Centralização do processamento Surgimento da Teleinformática Década de 60 Execução de programas localmente

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Universidade de Trás-os-Montes e Alto Douro Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Agenda A UTAD Virtualização Uma definição Introdução e abrangência

Leia mais

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO 1 ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO 2 INFRAESTRUTURA DE TI Para garantir o atendimento às necessidades do negócio, a área de TI passou a investir na infraestrutura do setor, ampliando-a,

Leia mais

Classificação::Modelo de implantação

Classificação::Modelo de implantação Classificação::Modelo de implantação Modelo de implantação::privado Operada unicamente por uma organização; A infra-estrutura de nuvem é utilizada exclusivamente por uma organização: Nuvem local ou remota;

Leia mais

João Víctor Rocon Maia Engenharia de Computação - UFES

João Víctor Rocon Maia Engenharia de Computação - UFES João Víctor Rocon Maia Engenharia de Computação - UFES Agenda Quem usa? Conceito Ilustração Vantagens Tipologia Topologia Como fazer? O que é preciso? Infraestrutura Sistema Operacional Software Eucalyptus

Leia mais

Consolidação inteligente de servidores com o System Center

Consolidação inteligente de servidores com o System Center Consolidação de servidores por meio da virtualização Determinação do local dos sistemas convidados: a necessidade de determinar o melhor host de virtualização que possa lidar com os requisitos do sistema

Leia mais

Gerencia de Rede (Desempenho) Professor: Guerra (Aloivo B. Guerra Jr.)

Gerencia de Rede (Desempenho) Professor: Guerra (Aloivo B. Guerra Jr.) Gerencia de Rede (Desempenho) Professor: Guerra (Aloivo B. Guerra Jr.) Tópicos Gerencia de Rede Motivação da Gerência Desafios Principais Organismos Padronizadores Modelo Amplamente Adotado As Gerências

Leia mais

Gerenciamento de Incidentes

Gerenciamento de Incidentes Gerenciamento de Incidentes Os usuários do negócio ou os usuários finais solicitam os serviços de Tecnologia da Informação para melhorar a eficiência dos seus próprios processos de negócio, de forma que

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA

UNIVERSIDADE FEDERAL DE SANTA CATARINA UNIVERSIDADE FEDERAL DE SANTA CATARINA Uso Eficiente De Energia Para Cloud Computing Através De Simulações Rafael Rodrigues de Freitas Florianópolis SC 2011/2 UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO

Leia mais

Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP

Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP Parceiros de serviços em nuvem gerenciada Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP Implemente a versão mais recente do software da SAP de classe mundial,

Leia mais

A consolidação de servidores traz uma séria de vantagens, como por exemplo:

A consolidação de servidores traz uma séria de vantagens, como por exemplo: INFRAESTRUTURA Para que as empresas alcancem os seus objetivos de negócio, torna-se cada vez mais preponderante o papel da área de tecnologia da informação (TI). Desempenho e disponibilidade são importantes

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

Relatório de Progresso

Relatório de Progresso Luís Filipe Félix Martins Relatório de Progresso Mestrado Integrado em Engenharia Electrotécnica e de Computadores Preparação para a Dissertação Índice Introdução... 2 Motivação... 2 Cloud Computing (Computação

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos Referência: An Introductory Overview of ITIL v2 Livros ITIL v2 Cenário de TI nas organizações Aumento da dependência da TI para alcance

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Funcionalidade Escalabilidade Adaptabilidade Gerenciabilidade

Funcionalidade Escalabilidade Adaptabilidade Gerenciabilidade Projeto de Redes Requisitos Funcionalidade -- A rede precisa funcionar. A rede precisa permitir que os usuários desempenhem os seus deveres profissionais. A rede precisa oferecer conectividade de usuário-para-usuário

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Proposta de Avaliação de Empresas para o uso do SAAS

Proposta de Avaliação de Empresas para o uso do SAAS 1 INSTITUTO DE EDUCAÇÃO TECNOLÓGICA PÓS-GRADUAÇÃO Gestão e Tecnologia da Informação/ IFTI 1402 Turma 25 09 de abril de 2015 Proposta de Avaliação de Empresas para o uso do SAAS Raphael Henrique Duarte

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE III: Infraestrutura de Tecnologia da Informação Atualmente, a infraestrutura de TI é composta por cinco elementos principais: hardware, software,

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Service Level Management SLM. Gerenciamento de Níveis de Serviço

Service Level Management SLM. Gerenciamento de Níveis de Serviço Service Level Management SLM Gerenciamento de Níveis de Serviço 1 É o balanço o entre... Qualidade dos serviços entregues Expectativa do cliente 2 Processo: Definições Service Level Management (SLM) Têm

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011 SERVIÇOS BÁSICOS DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011 Rua do Rouxinol, N 115 / Salvador Bahia CEP: 41.720-052 Telefone: (71) 3186-0001. Email: cotec@ifbaiano.edu.br

Leia mais

Iniciativa CDC RNP. Projeto CDC Piloto Huawei Encontro sobre Computação em Nuvem UNICAMP, 07 de abril de 2014

Iniciativa CDC RNP. Projeto CDC Piloto Huawei Encontro sobre Computação em Nuvem UNICAMP, 07 de abril de 2014 Iniciativa CDC RNP Projeto CDC Piloto Huawei Encontro sobre Computação em Nuvem UNICAMP, 07 de abril de 2014 Sumário Programa de Computação em Nuvem da RNP Iniciativa CDC RNP Estratégia Piloto Huawei Programa

Leia mais

Benefícios e processos relacionados à migração e servidores dedicados para cloud servers. Juliano Simões. Diretor de Tecnologia

Benefícios e processos relacionados à migração e servidores dedicados para cloud servers. Juliano Simões. Diretor de Tecnologia Benefícios e processos relacionados à migração e servidores dedicados para cloud servers Juliano Simões Diretor de Tecnologia Agenda Comparar o modelo de servidor dedicado, orientado ao hardware, com os

Leia mais

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015 GIS Cloud na Prática Fabiano Cucolo 26/08/2015 Um pouco sobre o palestrante Fabiano Cucolo fabiano@soloverdi.com.br 11-98266-0244 (WhatsApp) Consultor de Geotecnologias Soloverdi Engenharia www.soloverdi.com.br.

Leia mais