• Nenhum resultado encontrado

2.2

Plataformas de Software de Celular

SegundoSangiovanni-Vincentelli and Martin(2001), o conceito de plataforma tem sido discutido por anos, mas muitas definições tornam sua interpretação confusa. O conceito de plataforma pode ser entendido conforme citação: “...a platform is an abstraction that covers several possible lowerlevel refinements. Every platform gives a perspective from which to map higher abstraction layers into the platform and one from which to define the class of lower-level abstractions that the platform implies”Sangiovanni-Vincentelli and Martin(2001). Ou seja, no sentido mais amplo, uma plataforma é uma abstração que abrange várias pequenas partes de refinamentos.

As partes representam uma perspectiva de maior captação para mapear camadas, a partir da qual, define para a plataforma as classes de menor nível de abstrações que a plataforma implica.

No contexto da computação, podemos considerar que uma plataforma é uma expressão utilizada para denominar a tecnologia empregada em determinada infra-estrutura de tecnologia da informação, garantindo facilidade de integração dos diversos elementos dessa infra-estrutura.

Para Ziv (2005), a Plataforma de Software de Celular (PSC) é responsável pela produção de soluções computacionais no contexto da computação móvel. Ou seja, as plataformas têm impacto no aspecto tecnológico envolvendo celulares.

As plataformas de software de celular têm relação com os sistemas embarcados. Aqueles sistemas com propósitos bem específicos e bem definidos. A essência de um projeto de sistema embarcado é programar um conjunto específico de funções enquanto atende necessidades como: desempenho, custo, consumo de energia, tamanho e peso. A escolha da arquitetura de implementação destes sistemas embarcados, determinam se o projeto tenderá para se especializar como um componente de hardware ou como um software executando sobre um componente programávelSangiovanni-Vincentelli and Martin(2001).

Ainda segundo Sangiovanni-Vincentelli and Martin (2001) nos últimos anos, as funções exigidas para projetos de sistemas embarcados, aliada a constante evolução das especificações, tornou o desenvolvimento bastante complexo, difícil de prever e controlar. Como consequência, os projetos consideram suas implementações intrinsecamente mais flexíveis, voltadas para componentes programáveis. Por essa razão, e também porque o ciclo de fabricação do hardware é mais expansivo em relação ao tempo, implementações de sistemas embarcados baseados em software se tornaram mais populares. Além disso,

2.2. PLATAFORMAS DE SOFTWARE DE CELULAR

o incremento do poder computacional dos processadores e a diminuição correspondente ao tamanho e custo, permitiram os projetos embarcados direcionarem as funcionalidades para software.

Há uma similaridade intrínseca entre a plataforma de software de celular e o sistema operacional do sistema embarcado do dispositivo Morimoto (2009). Podemos com- preender essa semelhança ao analisar uma típica problemática dos projetos de sistemas embarcados: a escrita de código de baixo nível.

Segundo pesquisas deSangiovanni-Vincentelli and Martin(2001), para lidar com as restrições de desempenho e o custo embutido na maioria dos sistemas, programadores escrevem os códigos usando linguagens de baixo nível, como C e Assembly. As ferra- mentas de criação e depuração são basicamente as mesmas que as ferramentas padrões de software: compiladores, interpretadores, depuradores e cross-compilers. A diferença é a qualidade: A maioria das ferramentas de software são bastante primitivas, em comparação com ferramentas equivalentes para plataformas mais ricas. Assim, devido às limitações de desempenho, compatibilidade e requisitos de memória, sistemas embarcados tornam-se dependentes do sistema operacional no qual foi projetado.

Desejar essas ferramentas em sistemas de software embarcados também requer suporte do hardware para depuração e avaliação de desempenho, no qual são importantes para os projetos de sistemas embarcados.

A proximidade entre um sistema embarcado e uma plataforma de software de celular, conforme discutida anteriormente, se dá à medida que, os sistemas embarcados dire- cionam os seus projetos para um software executando sobre um componente programável, estendendo funcionalidades para assemelhar-se com os recursos de um sistema opera- cional. Razão pela qual, segundoSangiovanni-Vincentelli and Martin(2001), quando o software embarcado foi simples, não era necessário mais sofisticações no sistema. No entanto, com o aumento da complexidade por aplicações em sistemas embarcados, a presente abordagem primitiva tornou-se o gargalo.

Considerando que existem similaridades entre a plataforma de software e o sistema operacional de um sistema embarcado no celular, os conceitos se fundem para formar uma plataforma de software de celularVerkasalo(2009);Morimoto(2009). Essa plataforma pode ser considerada sinônimo para um sistema operacional de celularVerkasalo(2009). Ou seja, essencialmente uma plataforma de software funciona sobre o topo no qual aplicativos podem executar.

EmMorimoto(2009), ressalta-se que há vantagens nesta centralização dos compo- nentes de hardware e software como plataforma para usuário, porque há mais garantias

2.2. PLATAFORMAS DE SOFTWARE DE CELULAR

que os aparelhos realmente funcionem como esperado, pois havendo necessidade de in- stalação de aplicativos, o usuário não precisa instalar drivers ou se preocupar em resolver dependências de software para tratar incompatibilidades indesejáveis (como no caso dos PCs). Mas por outro lado, salienta que isso restringe um pouco sua liberdade de uso.

De acordo comCho and Jeon(2007), uma PSC provê um ambiente para desenvolvi- mento e execução de aplicativos, criando novas aplicações para o celular. ParaVerkasalo

(2009), a contribuição chave de uma PSC é sua capacidade de programação, agregando tanto softwares padrões já embutidos no sistema, como novas aplicações que podem ser instaladas e usadas. SegundoMorimoto(2009), as PSC, tais como os smartphones, são o resultado de um longo processo de evolução e convergência de dispositivos. Por exemplo, os telefones celulares são hoje multifuncionais, capazes de executar uma ampla variedade de aplicações, ambos para uso empresarial e para o consumidor final.

“É comum que os telefones inteligentes (do inglês smartphones) sejam chamados de “plataformas”, indicando justamente esta combinação intrínseca entre o hardware, o sistema operacional e o conjunto de aplicativos que rodam sobre ele”Morimoto(2009). Os celulares smartphones incluem recursos tais como voz, GPS, câmera, música, vídeo, jogos 3D e serviço Bluetooth. Muitas vezes agregam mais funcionalidades reunidas do que os PCs. Por essa razão os celulares deste tipo são frequentemente vistos por seus usuários como uma extensão para o seu próprio PC. Embora, conformeOliver(2008), eles tenham várias restrições de poder computacional, tais como: pouco processamento, limitada memória RAM e memória de armazenamento.

Figura 2.2 Arquitetura de uma plataforma de software de celular (fonte:Cho and Jeon(2007))

A Figura 2.2 apresenta uma arquitetura típica de uma plataforma de software de celular segundo Cho and Jeon(2007), que consiste na representação do hardware do

2.2. PLATAFORMAS DE SOFTWARE DE CELULAR

dispositivo na base, o sistema operacional1(SO), um middleware2e aplicações no topo, sendo que as separações são divididas por camadas inter-relacionadas.

Podem existir diferentes aplicações, mas todas precisam rodar em algum middleware que fará a ponte com o sistema operacional. As responsabilidades de cada camada são

Cho and Jeon(2007):

• SO: o sistema operacional gerencia os recursos de hardware e o controle de apli- cações quando os processos usam os recursos do sistema. Os principais SO dos telefones celulares são: Symbian OS, Linux, RIM e Windows Mobile; iPhone OS; Android (Linux);

• Middleware: conectam aplicações com o SO. Recebe as requisições de uma aplicação e envia as requisições para o SO. Os maiores middlewares em telefones celulares são S60, UIQ, BREW, QtCho and Jeon(2007);

• Aplications: são os aplicativos pelos quais os usuários interagem com o SO. As maiores aplicações em telefones celulares são serviços de interface de usuário (UI Service), serviço de chamada de voz, SMS, serviço de rede de internet, serviço de multimídia, audio/video, serviço de GPS, serviço e agenda eletrônica, etc.;

• Mobile Phone Hardware: componentes físicos de hardware do dispositivo.

Para ilustrar as implicações práticas para os usuários referente à centralização de recursos de um smartphone, recorre-se a analogia citando (Morimoto(2009), p.15): “Ao comprar um smartphone baseado no S60, você fica restrito aos aplicativos escritos para o S60; ao comprar um com o Windows Mobile, fica restrito aos aplicativos do Windows Mobile, e assim por diante". Ou seja, a escolha da plataforma de software é bastante importante, pois a instalação de aplicativos dependerá do suporte que o sistema operacional do celular oferecerá bem como a sua oferta de aplicativos. Por outro lado, a enorme variedade de modelos e plataformas diferentes torna difícil ter uma visão geral das opções existentes.

O trabalho deCho and Jeon (2007) mostra que a grande demanda dos usuários de telefones celulares está requerendo não somente serviços de voz e SMS, mas também

1do inglês operation system (OS), responsável pelo gerenciamento e coordenação de atividades e compartilhamento de recursos do computador.Silberschatz et al.(1988)

2Middlewareé definido como uma camada de software que reside em cada máquina, situada entre o sistema operacional e as aplicações distribuídas, com o propósito de esconder a heterogeneidade das plataformas cooperativas e de prover uma maneira simples, consistente e integrada do ambiente de programação distribuída.Batista(2008)

2.2. PLATAFORMAS DE SOFTWARE DE CELULAR

vários serviços como aplicações multimídias e acesso a redes e Internet, exigindo a execução de forma concorrente (vários ao mesmo tempo) sem nenhum problema técnico. Diante disso, é cada vez maior as categorias de smartphones que permitem às pessoas usarem diferentes aplicativos para várias necessidades. Seja para o acesso e navegação na Internet, para consulta de e-mail, mensagens instantâneas, bem como trabalhar com documentos, lista de contatos e muito mais. Deve-se destacar que essa demanda acelera o desenvolvimento de aplicações para celulares.

Uma das grandes vantagens dos smartphones segundo (Verkasalo (2009), p.2) é que eles combinam funções off-line, como gerenciamento de informações pessoais ou aplicações de escritório, com serviços on-line como comunicação pessoa-a-pessoa ou navegação de internet. Efetivamente os celulares estão evoluindo na direção de simples comunicadores para tornarem-se computadores. Portanto, com a explosão de funcional- idades providas pelos celulares smartphones e similares, aumentou significativamente a demanda por funcionalidades tais como usados hoje nos PCs Cho and Jeon(2007);

Yamakami(2005);Verkasalo(2009);Ziv and Mulloth(2007);Oliver(2008).

Por outro lado, conforme expõem Cho and Jeon (2007), as demandas atuais de aplicações excedem as capacidades atuais das plataformas de software instaladas nos celulares. Isso motiva os fabricantes de celulares a encontrar uma forma mais eficiente para evoluir as plataformas de software para a próxima geração de infra-estrutura de redes de comunicação e dos dispositivos celulares.

Os usuários finais continuam a demandar a fabricação de novos celulares para prover continuamente novos serviços e aplicações para suas necessidades. Porém, não tendo as aplicações esperadas, muitos usuários sentem desejos de consumir novas tecnologias.

O sistema operacional do smartphone é uma escolha crucial para os usuários Mo- rimoto (2009); Oliver (2008), pois será através de sua plataforma que os aplicativos poderão ser instalados e utilizados. Essa escolha, para muitos dos casos é mais importante do que os recursos de hardware do aparelho. Estas observações também são destacadas porZiv(2005);Ziv and Mulloth(2007), mas referindo-se as operadoras e aos provedores de conteúdo, que precisam estar atentas a essas tecnologias para atender seus clientes.

A seguir apresentamos as principais plataformas usadas no mercado e consideradas neste trabalho, suas características e peculiaridades.