• Nenhum resultado encontrado

5.8 Resultado da disponibilidade para todos os cenários

2.1.3 Mobile Cloud Computing

O paradigma da Mobile Cloud Computing (Kumar & Lu 2010) apareceu nos últimos anos como a intersecção das duas subáreas da TI discutidas anteriormente: computação móvel e a computação nas nuvens. À medida que o mercado da computação móvel cresce, usuários exigem aplicações móveis mais avançadas com o mesmo nível de complexidade oferecida por aplicações desktop. Entretanto, até mesmo smartphones mais modernos sofrem de limitação de recursos, principalmente CPU, memória, armazenamento, conexão sem fio e bateria. Ao contrário dos dispositivos móveis, uma nuvem possui um grande poder computacional e pode provê-lo sob demanda aos seus usuários.

2.1. FUNDAMENTOS EM MOBILE CLOUD COMPUTING

O objetivo principal da MCC é usar a capacidade de processamento e armazenamento de uma nuvem computacional para estender as capacidades de dispositivos móveis mais limitados, de forma a melhorar o desempenho e aliviar o consumo energético de aplicações móveis mais pesadas. Este novo paradigma poderá permitir o provisionamento de aplicações móveis mais inteligentes, que estendam as capacidades cognitivas de usuários, tais como: reconhecimento de voz, processamento de linguagem natural, visão computacional, aprendizado de máquina, realidade aumentada, planejamento e tomada de decisão (Satyanarayanan et al. 2009).

O encontro entre a computação móvel e a computação em nuvens foi possível graças ao número crescente de usuários com acesso à Internet móvel. De acordo comMeeker

(2012), estima-se que em 2014 o número de acessos à Web através de dispositivos móveis irá ultrapassar os acessos feitos por desktops. Como consequência, dispositivos móveis poderão ser vistos como principais pontos de entradas e interfaces para softwares e serviços na nuvem. Em adição aos modelos de serviço tradicionais da computação em nuvens (Infraestrutura como Serviço, Plataforma como Serviço e Software como Serviço), a mobile cloud computing trouxe outro modelo de serviço chamado Mobile Backend as a Service(MBaaS). Uma plataforma de MBaaS provê funcionalidade básica para aplicações móveis em nuvem, como por exemplo, gerenciamento de usuários, notificações push e integração com redes sociais (Sareen 2013).

Na Figura2.1, descrevemos uma arquitetura típica de uma mobile cloud. Podemos visualizar nesta figura que a mobile cloud computing é simplesmente a computação em nuvem quando os clientes deixam de ser desktops tradicionais e passam a ser móveis, que se conectam à nuvem via uma infraestrutura de rede sem fio (WLAN, 3G, GPRS, WiMAX, etc). Nesta arquitetura, uma vez que a computação é migrada para a nuvem, os requisitos sobre a capacidade dos dispositivos móveis são diminuídas, e uma gama maior de clientes pode ser atingida, como smartphones mais poderosos, smartphones mais limitados, palms e até mesmo alguns feature phones (Qi & Gani 2012). Uma vez que a nuvem passa ser detentora da computação e armazenamento em aplicações móveis, a conexão sem fio passa a ser um elemento chave desta arquitetura. Considerando que redes sem fio são menos estáveis que redes cabeadas usadas por desktops tradicionais, isto representa um desafio para a mobile cloud computing. Além disso, interfaces wireless estão entre os componentes de dispositivos móveis que mais gastam energia. Desta forma, como veremos adiante, a comunicação com a nuvem pode diminuir a economia energética proporcionada pelos mecanismos de offloading de uma mobile cloud.

2.1. FUNDAMENTOS EM MOBILE CLOUD COMPUTING DispositivosSmóveis tablet smartphone EstaçãoSbaseS3G PontoSdeSacessoSWiFi ComunicaçãoSmóvel InfraestruturaSdeSnuvem DataSCenter InfrastructureSas aSService PlatformSas aSService MobileSBackendSas aSService SoftwareSas aSService Nuvem

Figura 2.1: Arquitetura de Mobile Cloud Computing (adaptada de (Qi & Gani 2012))

2.1.3.1 Offload de computação

De acordo com Kumar & Lu (2010), a quantidade de energia economizada por um esquema de offloading de aplicação móvel é representada pela Equação2.1.

Pc× C M− Pi× C S − Ptr× D B  2.1 , onde:

• C é o número de instruções de uma determinada tarefa computacional;

• S e M são as velocidades, em instruções por segundo, da nuvem e do dispositivo móvel, respectivamente;

• D é o total de dados enviados durante a comunicação com a nuvem; • B é a largura de banda da conexão entre o cliente móvel e a nuvem; • Pcé a potência do dispositivo ao realizar computação da tarefa;

• Pi é a potência do dispositivo quando ocioso (quando a computação está sendo

realizada na nuvem e o dispositivo aguarda os resultados); • Ptr é a potência do dispositivo ao transmitir dados para a nuvem.

De acordo com a Equação2.1, a energia salva pelo mecanismo de offloading corres- ponde à diferença entre a energia gasta para computar a tarefa localmente e a energia gasta para delegar a execução da tarefa na nuvem. A energia despendida pela execução local da tarefa é determinada por Pc×MC. A energia consumida no dispositivo móvel durante a

2.1. FUNDAMENTOS EM MOBILE CLOUD COMPUTING

esperar o término da tarefa na nuvem (Pi×CS); ii) a energia consumida pela comunicação

com a nuvem para a delegação da tarefa e recebimento dos resultados (Ptr×DB).

Podemos perceber que a quantidade de energia que podemos economizar envolve um compromisso entre algumas variáveis. Por exemplo, se uma tarefa tiver um tempo de execução curto, que pode ser consequência do tamanho da tarefa ou de um dispositivo mais poderoso (com processador de quatro núcleos, por exemplo), a quantidade de energia salva pela execução remota (Pc×MC) pode ser inferior ao overhead da comunicação com

a nuvem (Ptr×DB). Isto torna o resultado da fórmula negativo, que significa que estamos

desperdiçando energia em vez de economizar. Se o offloading de uma tarefa causar uma transferência de um conjunto de dados D muito grande, ou se a largura de banda B for muito baixa, esta diferença também poderá ser negativa.

Levando em consideração que as condições da rede wireless podem ser variáveis de acordo a mobilidade do usuário e sobrecarga da rede pelo conjunto total de usuários, e que de acordo com uma determinada entrada, uma tarefa pode demorar mais ou menos tempo para executar, concluímos que a decisão de delegar uma tarefa para a nuvem não pode ser feita de maneira estática. Um mecanismo inteligente de offloading monitora as condições da rede e do usuário a fim de saber quando é o melhor momento para delegar a execução para a nuvem. Neste contexto, existem diferentes estratégias de offloadinge arquiteturas de mobile cloud que foram propostas nos últimos anos. A seguir, apresentamos as principais arquiteturas encontradas na literatura.

Chun & Maniatis(2009) propõem uma técnica, denominada Clone Cloud, baseada na clonagem do sistema operacional móvel como uma máquina virtual na nuvem. O clone terá à disposição mais recursos disponíveis na nuvem, e poderá ser usado para executar tarefas mais intensas. Essa abordagem tem como desvantagem a transferência de todo o estado do sistema móvel através de redes WAN, o que pode resultar em um grande tempo de resposta. Isso significa que o valor de D na fórmula descrita anteriormente pode ser demasiado grande, o que implica em um maior overhead e uma diminuição na economia de energia. Uma solução arquitetural para superar este problema é proposta por

Satyanarayanan et al.(2009), que consiste em usar uma infraestrutura privada de cloud – a cloudlet – para oferecer um melhor desempenho e tempo de resposta através da rede local. Nessa abordagem, a principal vantagem é aumentar o peso de B da fórmula acima, uma vez que a vazão de bits numa WLAN geralmente é superior a de uma conexão 3G.

A metodologia de offloading proposta porGiurgiu et al.(2009) consiste na abstração da aplicação através de um grafo. Sobre este grafo, são executados algoritmos com o objetivo de encontrar o corte maximal, que maximiza ou minimiza uma certa função

Documentos relacionados