MCC - Mobile Cloud Computing MAC0463/5743 - Computação Móvel Thiago de Gouveia Nunes 11 de junho de 2013
O que é Cloud Computing??!!
O que é Cloud Computing??!! É. não. Tá mais pra algo assim...
O que é Cloud Computing??!! Uma aplicação em cloud é composta de 2 partes. A primeira parte da aplicação é a interface com o usuário. A segunda é responsável por todo processamento pesado e acesso a dados do usuário.
O que é Cloud Computing??!! A cloud pode ser separada em 3 partes: 1 Infraestrutura(IaaS) - Hardware. 2 Plataforma(PaaS) - Centro da cloud. 3 Aplicação(SaaS) - Aplicações.
Vantagens de CC Vantagens Não é preciso atualizar o hardware de um PC se todas suas funcionalidades são implementadas na cloud. Todos seus dados podem ser acessados de qualquer lugar do mundo, em qualquer computador. Fácil escalabilidade.
Desvantagens de CC Requer uma conexão boa com a internet. Alta taxa de transferência de dados pela rede. Todo o hardware da cloud é localizado no mesmo espaço fisico.
Por que utilizar MCC? Mobile Cloud Computing ainda é algo muito novo, mas que vem crescendo rapidamente.
Em 2010, o CEO da Google, Eric Schmidt falou sobre mobile cloud computing em uma entrevista: based on cloud computing service development, mobile phones will become increasingly complicated, and evolve to a portable super computer
Por que utilizar MCC? Por mais que a capacidade de processamento e memória dos devices móveis esteja crescendo, eles ainda estão muito longe da capacidade de um PC, e ainda sofrem do pouco tempo de vida de suas baterias.
Parece uma boa ideia, não? Usar cloud para aplicações em dispositivos móveis parece uma boa ideia! Com isso ganhamos: Executamos tarefas pesadas em ambientes propícios. Temos mais espaço em disco e acesso a mais dados.
Problemas Mas como não existe bala de prata... Vamos aos problemas de utilizar mobile cloud.
Problemas Un! Alguma operações ainda tem que ser feitas no device, como por exemplo a renderização da tela. Já que todo o ambiente da cloud é montado em cima de VMs podemos virtualizar o device, gerar o buffer que deve ser desenhado e passar o buffer para o device desenhar!
Problemas Deux! Esse problema vocês já devem ter sacado... Como deabos eu faço pra me mandar um buzilão de bytes prum servidor do outro lado do universo usando essa internet de qualidade que o Brasil tem? E depois receber alguns outros buzilões de bytes como resposta, tudo isso sem perder a conexão!
Problemas Trois! O último problema é a performance do aplicativo. O que rodamos deixamos para a cloud e o que deixamos para o device executar? Uma boa regra é deixar operações de grande porte pra cloud e o resto para o device.
Uma boa solução Uma boa solução para esses problemas é separar o processamento do seu aplicativo em blocos. Quando o device percebe que tem uma conexão boa, ele pode pedir para a cloud executar um desses blocos.
CloudClone Essa solução foi proposta em 2011. Mas essa solução não é dinâmica, impossibilitando a execução do aplicativo se uma conexão não estiver presente.
Aplicações Elásticas A ideia de Aplicações Elásticas foi desenvolvida a partir da CloudClone. Essas aplicações podem subir dinâmicamente partes do seus código para executarem na cloud. Elas ainda cálculam o equilibrio ótimo do que deve ser rodado em qual ambiente.
Um middleware que implementa aplicações elásticas isso é o AlfredO. Oferecimento: Rafael Reggiani Manzo
Aplicações Elásticas As apliações elásticas são divididas em Weblets, que são os pedaços que podem ser executados na cloud. Ainda sim existe o custo de comunicação entre esses weblets e o device para se levar em conta.
Problemas em Aberto Por mais que essas soluções cubram alguns problemas de mobile computing, esses problemas ainda não tem uma solução definitiva: Transferência de dados Divisão das tarefas Melhor qualidade de serviço
3. Aplicações que usam MCC Uma boa solução Quase toda aplicação da Google. Facesbooks da vida. YouTube, Picassa.