Dificuldades para a Implementação de um Sistema de GameClouding Hugo N. de Oliveira, Matheus C. de Melo, Ricardo Mendes Costa Segundo1, Rostand Costa, Tatiana Aires Tavares1 Laboratório de Aplicações de Vídeo Digital (LAViD) - Universidade Federal da Paraíba (UFPB) João Pessoa - PB – Brasil {hugo.neves, matheus.melo, ricardo, rostand, tatiana}@lavid.ufpb.br Abstract. The following text explains some characteristics of Cloud Computing, as well as the advantages, disadvantages and problems to develop GameClouding systems. Resumo. O texto seguinte explica algumas características da Computação em Nuvens, assim como vantagens, desvantagens e problemas para implantar sistemas de GameClouding. 1. Aspectos gerais Deparamo-nos constantemente com diversas inovações, podemos listar celulares e computadores com mais tecnologia até carros mais confortáveis; tudo isso com o propósito e não único de facilitar nosso cotidiano. Nessa mesma linha, destacamos a Computação em Nuvens, tecnologia computacional já utilizada em grande escala por empresas como Google, Amazon e Microsoft, mas que ainda é muito pesquisada e sofre grandes contribuições da comunidade acadêmica. Acredita-se que esse termo, “Computação em Nuvem”, surgiu em 2006, em uma das palestras da Google [Ruschel, M., p.3]. A Nuvem é uma super estrutura, ou podemos até dizer infra-estrutura, onde há comunicação entre seus componentes, basta apenas o usuário ter um sistema operacional e acesso a internet para poder acessar a nuvem e dispor de seus serviços, sem se preocupar com instalação e atualização de software [Ruschel, M., p.2]. A computação compartilhada e a eliminação da distância entre usuários e servidores, são duas de várias propostas dessa nova tecnologia computacional que torna a internet ainda mais flexível e disponível aos seus usuários [Armbrust et all]. Como toda novidade tecnológica, apesar de muitas vantagens, também enfrenta alguns obstáculos. Desse modo, esse artigo apresenta um estudo sobre os principais problemas e dificuldades da Computação em Nuvens ser desenvolvida em maior escala. 2. Características da Computação em Nuvens 2.1 Conceitos da Computação em Nuvens Cloud Computing usa o servidor para realizar as operações feitas sobre os dados, sendo assim, todo o corpo de um aplicativo e os arquivos necessários para executá-lo precisam estar previamente guardados no servidor. O servidor é um computador com uma capacidade de processamento muito mais alta que um computador doméstico, podendo executar tarefas impossíveis ou que levariam muito tempo para um computador doméstico. “A Computação em Nuvens é uma evolução dos serviços e produtos de tecnologia da informação sob demanda, também chamada de Utility Computing” [Ruschel, M.]. “Computação em Nuvens se refere tanto às aplicações oferecidas como serviço pela internet quanto ao hardware e softwares nos servidores que provêm estes serviços. Os serviços foram por muito tempo referidos como Software como Serviço” [Armbrust, M. et all]. A sigla em inglês para Software como Serviço (SaaS) é amplamente usada. Software como Serviço trata da distribuição de softwares como um serviço prestado por uma empresa direto de seu servidor, para que as informações sejam passadas para o cliente. Com o conceito de nuvem, além do SaaS, surgiu a idéia de pagamento por utilização de recursos computacionais, permitindo que um usuário ou empresa requisite ao servidor mais ou menos poder de processamento [Ruschel, M.] (Platforma como Serviço - PaaS) e armazenamento de dados (Database como Serviço - DaaS) de acordo com suas necessidades diárias, que podem variar de tempos em tempos [Prasad, B.]. 2.2 GameClouding Com a evolução das técnicas de administração de rede -- e seus recursos computacionais associados -- surgiu a ideia de desenvolver jogos fundamentados no conceito de Cloud Computing. A, o motor do jogo não mais executa no cliente, mas sim na nuvem, onde é realizada a maior parte dos processos mais intensivos do ponto de vista computacional. O cliente do jogo resume-se ao envio de eventos para a nuvem e o recebimento de um stream de vídeo. Os eventos recebidos dos clientes, juntamente com o estado do jogo, permitem a renderização do ambiente virtual também na nuvem, e as imagens resultantes são enviadas para os clientes em streaming. Desta forma, o jogo tem uma dependência bem menor do dispositivo cliente específico do usuário. Alguns outros jogos em rede necessitam ser instalados em parte no servidor e em parte na máquina do usuário. O usuário também poderá usufruir de jogos colaborativos ou totalmente nas nuvens através de sistemas embarcados.Também há muitos dos jogos para internet que são feitos com linguagens para web como ActionScript. São jogos em geral com gráficos simples, que necessitam de pequena ou quase nenhuma instalação de componentes apesar de não haver uma estrutura como a nuvem que faça comunicação cliente/servidor. 2.2 Diferenças para a computação tradicional Enquanto a Computação tradicional utiliza recursos provenientes dos computadores pessoais para executar aplicações e guardar informações, Cloud Computing usa os recursos provenientes dos mainframes e repassa as informações requeridas pelo usuário por meio de interação pela internet. Desta maneira, os programas são instalados na central de dados e executados direto de lá. 3. Obstáculos para a Cloud Computing Uma Cloud Computing é um sistema complexo que requer um sistema estável e manutenção constante. Os jogos que podem ser rodados num sistema em nuvens são dos mais variados tipos, o que demanda um tempo de resposta pequeno do sistema. Os principais obstáculos para a criação de um sistema em Nuvens serão abordados a seguir. 3.1 Atrasos na Rede Principalmente em países sem avançadas estruturas de rede, como o Brasil, acesso a Internet com alta largura de banda é uma dificuldade para grande parte da população, atrasando a disseminação de serviços de Cloud Computing pelo mundo, como o serviço de GameClouding. Outro fator que complica o acesso à GameClouding em parte dos países é a pouca quantidade de Centrais de dados, pois quanto maior a distância entre o usuário e o servidor, maior será o atraso. Para uma boa experiência para o usuário de aplicações em tempo real como jogos, o atraso máximo entre ação (ex: clique do mouse) e reação (ex: modificação do cenário do jogo) deve ser menor que 0,1s [Roesler]. 3.2 Tempo de processamento Por maior a capacidade de processamento de dados que um servidor possua, haverá um tempo mínimo de processamento que precisa ser previsto. Até um potente servidor em Nuvem quando sobrecarregado pode representar um atraso desconfortável para o usuário. Este tempo em um sistema de GameClouding abrange não só o processamento dos dados, mas também a geração dos vídeos que darão retorno ao usuário. 3.3 Compressão/Descompressão de vídeo A necessidade da máxima compressão dos vídeos, com perda mínima de informações, torna-se um problema para o avanço de uma estrutura de GameClouding, já que torna-se necessário o desenvolvimento de novos compressores e técnicas ou de outro sistema de compressão que diminua a latência. Conclusão Desse modo, GameClouding é uma tecnologia que inspira diversos estudos, os quais podem trazer grandes ganhos para área acadêmica de jogos, como também avanços para estudos gerais de computação nas nuvens. Referências Armbrust, M. et all (2010). “A View of Cloud Computing”, Berkeley Reliable Adaptive Distributed Systems Laboratory (RAD lab), University of California, USA. Prasad, B., Choi, E. and Lumb, I. (2009). “A Taxonomy and Survey of Cloud Computing Systems”, University Jeongneung-Dong, Korea; York University, Canada. Roesler, Valter. Transmissão Multimídia em Redes de Computadores, Unisinos, Julho de 2001. Ruschel, M., Zanotto, M. and Mota W. (2010), “Computação em Nuvem”, Pontifícia Universidade Católica do Paraná, Curitiba, Brazil.