...

Comunicação Sem Fio e Computação Móvel

by user

on
Category: Documents
12

views

Report

Comments

Transcript

Comunicação Sem Fio e Computação Móvel
Minicurso apresentado no Congresso da Sociedade Brasileira de Computação.
Campinas, São Paulo, agosto de 2003.
Capı́tulo
5
Comunicação Sem Fio e Computação Móvel:
Tecnologias, Desafios e Oportunidades1
Antonio A.F. Loureiro, Djamel F.H. Sadok, Geraldo R. Mateus,
José Marcos S. Nogueira, Judith Kelner
Abstract
Mobile computing is a computing paradigm that provides users with permanent access
to both fixed and mobile networks independent of their physical position. It is the capacity of accessing information anytime and anywhere. This paradigm is also referred as
ubiquitous computing or nomadic computing.
In North America, Europe and Japan, wireless communication technologies and
mobile computing have been largely employed in different scenarios. Thus, a question
that naturally arises is whether Brazil will be able to compete in a market that grows very
fast and is being dominated by countries that already have and use those technologies.
An important observation to answer the question is that to use those technologies
users need interesting services and applications that are developed by tools, in most cases, not available yet, or under development. Furthermore, the design and development
of software tools and platforms do not rely on a physical wireless infrastructure. Thus, at
least in that market segment we can surely compete with other international players. We
have the conditions to develop software for wireless communications and mobile computing.
Following the main theme proposed for the Congress of the Brazilian Computing
Society, “Science, Technology, and Inovation: Shortcuts to the Future”, this minicourse
aims at presenting and discussing the current and future wireless and mobile technologies,
and opportunities to develop software, services, and applications in those areas.
1
Este trabalho foi financiado parcialmente pelo CNPq.
Resumo
Computação móvel é um paradigma computacional que tem como objetivo prover ao
usuário acesso permanente a uma rede fixa ou móvel independente de sua posição fı́sica.
É a capacidade de acessar informações em qualquer lugar e a qualquer momento. Este
paradigma também recebe o nome de computação ubı́qüa ou computação nômade.
Na América do Norte, Europa e Japão, as tecnologias de comunicação sem fio
e computação móvel têm sido largamente utilizadas nos mais diversos cenários. Dado
esse contexto, uma questão que surge naturalmente é se o Brasil vai ter oportunidade de
competir num mercado que cresce rapidamente e tende a ser dominado pelos paı́ses que
possuem e usam a tecnologia de computação móvel, principalmente a de infra-estrutura
de comunicação sem fio, como redes celulares 3G e outras, e de dispositivos portáteis.
Uma observação chave para responder a esta pergunta de forma apropriada é
a seguinte: para usar todas essas tecnologias é necessário que os potenciais usuários
tenham serviços e aplicações “interessantes”. Por outro lado, serviços e aplicações são
desenvolvidas por ferramentas que, na maior parte dos casos, não existem ou estão sendo
projetadas atualmente. Mais ainda, para desenvolver essas ferramentas e outras soluções
de software não é necessário ter em larga escala as tecnologias de comunicação sem fio.
Logo, a resposta à questão acima, pelo menos nesse segmento, é sim. Com certeza temos
as condições para nos capacitarmos e criarmos as condições para o desenvolvimento
cientı́fico e tecnológico do Paı́s no segmento de software para computação móvel.
Dentro do tema deste ano do Congresso da SBC, “Ciência, Tecnologia e
Inovação: Atalhos para o Futuro”, este minicurso pretende apresentar as principais tecnologias de comunicação sem fio e computação móvel que estão em uso atualmente ou
virão a ser usadas nos próximos anos e possı́veis oportunidades de desenvolvimento tecnológico na área.
5.1. Introdução
O que é o paradigma de computação móvel? Dispositivos computacionais móveis não
são simples organizadores pessoais. Com o desenvolvimento tecnológico de fabricação
de circuitos integrados que ocorreu, principalmente, durante a última década, tem sido
possı́vel a fabricação de dispositivos computacionais que possuem um novo paradigma:
o paradigma da mobilidade. Esse paradigma está mudando a forma como trabalhamos,
comunicamos, divertimos, estudamos e fazemos outras atividades quando estamos em
movimento ou não desejamos ficar “presos” a uma infra-estrutura fixa de comunicação de
dados.
Computação móvel está se tornando uma área madura e parece destinada a se tornar o paradigma computacional dominante no futuro. Dispositivos móveis, também chamados genericamente de handhelds, estão aparecendo de diversas formas. Por exemplo,
PDAs (Personal Digital Assistants), telefones celulares e vários outros tipos de dispositivos. Além disso, dispositivos móveis estão sendo fabricados com outras facilidades,
funcionalidades e interfaces como GPS (Global Positioning System), tocadores de áudio
e câmeras fotográficas digitais, jogos eletrônicos e placas de comunicação sem fio multiprotocolos, que facilitarão a comunicação entre diferentes tipos de dispositivos e infra-
estruturas de comunicação. O mercado desses dispositivos está crescendo e sendo usado
em aplicações que envolvem negócios, indústria, escolas, hospitais, laser, etc.
O paradigma de computação móvel é uma evolução natural quando analisamos
os outros paradigmas que foram e são usados até hoje, como pode ser visto na figura 1.
Na década de 1960, o paradigma que prevaleceu foi o de processamento em lote (batch ),
onde o usuário preparava, submetia e recebia seu job sem ter nenhum contato com o ambiente computacional. Na década de 1970 surge o sistema computacional multitarefa e
o teleprocessamento. O usuário passa a ter acesso ao computador através de terminais
remotos. É a época do surgimento do CPD – Centro de Processamento de Dados, que
ainda é utilizado até hoje. No inı́cio da década de 1980 começa a ser difundido em larga escala o computador pessoal, que passa a ser o paradigma dominante daı́ em diante,
principalmente com o desenvolvimento do hardware associado a esse tipo de computador.
Na década de 1990, os computadores pessoais passam a ser utilizados em larga escala em
todas as atividades humanas, com a caracterı́stica de estarem conectados a alguma rede,
principalmente a Internet, que passa a ser a infraestrutura de rede de ambrangência global
mais utilizada pelas pessoas.
Figura 1: Evolução dos paradigmas computacionais [Tesler, 1991]
Computação móvel é um novo paradigma computacional que tem como objetivo prover ao usuário acesso permanente a uma rede fixa ou móvel independente de sua
posição fı́sica. É a capacidade de acessar informações, aplicações e serviços a qualquer
lugar e a qualquer momento, como as mostradas na figura 2. Este paradigma também
recebe o nome de computação ubı́qua ou computação nômade. Existem três elementos
que caracterizam e compõem a computação móvel: o tipo e capacidade de processamento
do dispositivo portátil, a mobilidade do usuário e da unidade móvel, e a comunicação com
outro elemento computacional através de um canal de comunicação sem fio.
Uma diferença importante entre o paradigma de computação móvel e os anteriores, como mostrado na figura 1 e discutidos acima, é a interação entre esse paradigma
Figura 2: Visão de aplicações em computação móvel
e as diversas áreas da Ciência da Computação e, mesmo do conhecimento humano. A
computação móvel não é um paradigma que trata exclusivamente de questões ligadas às
áreas de sistemas distribuı́dos e redes de computadores. Na verdade, é um paradigma que
trata de “todas” as áreas da Ciência da Computação. Por exemplo, o projeto de circuitos
integrados deve ser feito considerando o consumo de energia; sistemas operacionais devem possuir outras funções de gerenciamento especı́ficas para dispositivos móveis como
capacidade limitada de memória e processamento; linguagens de programação e compiladores devem ser projetados em função das caracterı́sticas desse ambiente; bancos de dados
devem considerar novos mecanismos de integridade e sincronização de dados; engenharia
de software deve propor novos princı́pios de desenvolvimento para a área como projeto
de interface homem-máquina; e em outras áreas existem questões similares. Além disso,
outras áreas, como Psicologia e Sociologia, têm um papel importante em Computação
Móvel por definir novas formas de uso da tecnologia de processamento e comunicação de
dados.
Dentre as diversas infra-estruturas de comunicação sem fio existentes, as mais
utilizadas são a comunicação celular de segunda geração chamada de 2G (baseada nos
padrões TDMA, CDMA e GSM), a geração 2,5 que é uma solução intermediária baseada
em comunicação de pacotes, a 3G, que nos próximos anos promete velocidades na faixa
de Mbps, redes locais sem fio baseadas no padrão IEEE 802.11, redes pessoais baseadas
no padrão Bluetooth e IEEE 802.15 e 802.16, redes de sensores sem fio, e RFID (Radio
Frequency Identification) [RFID].
Nos chamados paı́ses do primeiro mundo, as tecnologias de comunicação sem fio
e computação móvel têm sido largamente utilizadas nos mais diversos cenários. Dado
esse contexto, uma questão que surge naturalmente é se o Brasil vai ter oportunidade de
competir num mercado que cresce rapidamente e tende a ser dominado pelos paı́ses que
possuem e usam a tecnologia de computação móvel, principalmente a de infra-estrutura
de comunicação sem fio, como redes locais, pessoais, e celulares 3G, e têm acesso a
dispositivos portáteis por causa de razões financeiras e capacidade de dominiar essa tecnologia.
Uma observação chave para responder a esta pergunta de forma apropriada é a
seguinte: para usar todas essas tecnologias é necessário que os potenciais usuários tenham
serviços e aplicações “interessantes”, que no ano de 2005 deve chegar a um bilhão de
assinantes (figura 3). Ou seja, as pessoas não tendem a usar uma tecnologia simplesmente
porque está na moda. Um dos exemplos mais recentes nessa área é o padrão WAP. No
final da década de 90 havia uma expectativa muito grande na utilização desse padrão, o
que acabou não se concretizando, dentre outros fatores, exatamente pela falta de serviços
interessantes.
Figura 3: Estimativa de assinantes de serviços de comunicação sem fio
Além disso, existe atualmente toda uma “conjectura” favorável à utilização e crescimento da computação móvel. O volume de tráfego de dados na Internet tem tido um
crescimento exponencial e já passou o volume de tráfego de voz em redes de telefonia. A demanda tem sido atendida com o aumento da largura de banda da Internet e a
diminuição dos custos para acessar essa infra-estrutura. Também tem havido um processo de deregulamentação global, aumentando a competição e o oferecimento de novos
serviços. Finalmente, órgãos, fóruns e entidades de padronização tem desenvolvido novos
padrões. Esses aspectos são mostrados na figura 4 e servem como fatores que facilitam a
utilização do paradigma móvel.
Por outro lado, serviços e aplicações são desenvolvidas por ferramentas que, na
maior parte dos casos, não existem ou estão sendo projetadas atualmente. Mais ainda,
para desenvolver essas ferramentas e outras soluções de software não é necessário ter em
larga escala as tecnologias de comunicação sem fio. Logo, a resposta à questão acima,
pelo menos nesse segmento, é sim. Com certeza temos as condições para nos capacitarmos e criarmos as condições para o desenvolvimento cientı́fico e tecnológico do Paı́s no
segmento de software para computação móvel.
Dentro do tema deste ano do Congresso da Sociedade Brasileira de Computação,
“Ciência, Tecnologia e Inovação: Atalhos para o Futuro”, cada um dos seus aspectos—
Ciência, Tecnologia e Inovação— tem um papel fundamental em criar novas oportunida-
Figura 4: Fatores que facilitam a utilização do paradigma móvel
des em ciência e tecnologia, e pesquisa e desenvolvimento. Assim, este minicurso pretende apresentar as principais tecnologias de comunicação sem fio e computação móvel que
estão em uso atualmente ou virão a ser usadas nos próximos anos e possı́veis oportunidades de desenvolvimento tecnológico na área.
5.1.1. Tecnologia da informação × Serviços e aplicações
Recentemente, foi publicado um comentário na Info Online [Carvalho, 2003] de um artigo
intitulado IT Doesn’t Matter escrito por Nicholas G. Carr, publicado na Harvard Business
Review [Carr, 2003], uma das mais conceituadas revistas de negócios. O texto da Info
Online aparece a seguir.
“A Harvard Business Review publicou este mês um dos textos mais provocadores
já escritos sobre tecnologia da informação. Dá para sentir o espı́rito da coisa pelo tı́tulo:
‘TI não importa mais’.
O autor do ensaio, Nicholas Carr, é um dos editores da HBR. Sua tese: TI se
tornou uma commodity como eletricidade ou qualquer outra utility. Como seu uso se
generalizou, deixou de ter importância estratégica. Vai até se tornar um tédio.
Não é a primeira vez que a HBR provoca indignação na turma de TI. No ano passado, ela já mexeu com o brio de muita gente ao perguntar, no tı́tulo de outro texto: ‘Está
na hora de demitir o CIO?’ O subtema do artigo também era a diminuição da importância
da tecnologia da informação.
Na visão de Carr, TI se tornou um fator de produção como outro qualquer, um
desses custos obrigatórios que já não garantem vantagem competitiva a ninguém. Com a
tecnologia se tornando cada vez mais barata e mais largamente utilizada, quem consegue
se distingüir dos competidores com ela?
Para Carr, façanhas tecnológicas que dão vantagem competitiva, como a da American Airlines com o sistema de reservas Sabre, da Federal Express, com o acompanhamento online das encomendas, e da Mobil Oil, com seu sistema de pagamento au-
tomático, estão cada vez mais improváveis. Seriam exceções que comprovariam a regra
da comoditização de TI.
O principal risco em relação a TI, diz Carr, não é investir pouco, é gastar demais.
Ele cita a Dell e a Wal-Mart como exemplo de empresas espertas em TI, que não fazem
experiências com tecnologia de ponta, esperando que padrões e as melhores práticas se
solidifiquem.
Para fechar seus argumentos, Carr menciona uma pesquisa da consultoria Alinean
que comparou os resultados financeiros com os gastos em TI de 7500 grandes empresas
americanas. As 25 companhias que deram o maior retorno financeiro investiram 0,8% de
seu faturamento em TI, contra 3,7% das outras empresas.
Carr cutuca vários nomões da informática em seu texto. Como reforço à sua tese
de comoditização de TI, afirma que IBM e Microsoft estão se posicionando como vendedores de utilities. Na hora de dar uma idéia de quanto as empresas poderiam economizar,
sugere que se olhe na coluna dos lucros da Microsoft.
E para fechar o tiroteio contra investimentos em TI, invoca Larry Ellison, o CEO
da Oracle, dizendo que a maioria das companhias investe demais em TI e tem muito pouco
em retorno.
Não é a troco de nada, vê-se, que Carr está provocando polêmica. A repercussão
vai se espelhar na coluna do lucro da HBR. Para ler o artigo de Carr na ı́ntegra, gasta-se
no mı́nimo 6 dólares para o download de um PDF. Para acessar o artigo, clique aqui. Para
reclamar com o autor, mande um e-mail a [email protected]”
A posição assumida por Carr não deixa de ser polêmica mas o ponto importante
a ser observado é que a “Tecnologia da Informação” é o meio e não o fim em si. O que
os usuários de TI esperam são utilizar aplicações e serviços. Em particular, na área de
computação móvel, a própria tecnologia ainda não é dominada, já que tem estado em
freqüente evolução. Mais ainda, desenvolver aplicações e serviços para essa área impõe
novos desafios, como discutio a seguir.
5.1.2. Desenvolvendo aplicações e serviços para ambientes móveis
Normalmente quando uma empresa decide disponibilizar uma versão de uma aplicação
para o ambiente de computação móvel é feita uma análise da versão/site disponı́vel na
rede fixa, que envolve, dentre outros aspectos, aquelas caracterı́sticas adequadas para o
novo ambiente e uma nova versão é gerada. É basicamente através deste método que
aplicações como informações de vôos e bolsa de valores, correio eletrônico e agenda eletrônica são desenvolvidas. No entanto, esse método pode não atender as necessidades
e/ou disponibilidades de um usuário móvel. Para executar alguma coisa em particular, o
usuário, possivelmente, terá que executar mais de uma aplicação seqüencialmente, lembrando e/ou cortando/colando dados de uma aplicação para outra.
Considere, a seguir, o exemplo de uma aplicação desenvolvida utilizando esse
método. Leonardo combinou com Giselle de buscá-la no aeroporto. Giselle enviou uma
mensagem eletrônica para Leonardo com informações sobre o seu vôo, que foram armazenadas na agenda eletrônica do Leonardo. O vôo está marcado para chegar às 17:21
da próxima quarta-feira e, normalmente, Leonardo gasta 45 minutos para ir de seu local
de trabalho até o aeroporto. Leonardo marca o evento na sua agenda eletrônica para às
16:15 permitindo, assim, tempo para avaliar a situação antes de sair. Nesse dia, Leonardo
não está no escritório e precisa de algumas informações: acesso a sua agenda eletrônica,
informação do vôo e condições de tráfego. A seguir, está descrito o que ele deve fazer às
16:15:
1. Receber uma notificação de sua agenda eletrônica sobre essa entrada.
2. Guardar informações sobre companhia aérea, vôo e horário, que podem ser anotadas no PDA.
3. Acessar o servidor Web do aeroporto ou da companhia aérea para saber
informações sobre o vôo. Este passo, provavelmente, irá exigir alguma navegação.
4. Navegar pela página de informção do vôo informando número do vôo, data, etc.
5. Verificar se o vôo está no horário ou não.
6. Se o vôo não estiver no horário, estimar quando os passos 1 a 5 serão repetidos.
7. Acessar o servidor Web de informação de tráfego. Este passo, provavelmente, irá
exigir alguma navegação.
8. Determinar a hora em que ele terá que ir para o aeroporto.
Todos os passos, exceto o 1, exigem atenção da pessoa que está usando o dispositivo móvel. Se a pessoa estivesse usando um computador de mesa, ela poderia invocar
mais de uma aplicação simultaneamente, mudar de aplicação e até dar atenção a uma outra atividade que a interrompesse momentaneamente. Num handheld é pouco provável
que a pessoa vá executar mais de uma aplicação simultaneamente e sua atenção deve ser
maior para a tarefa sendo executada.
Considere agora um projeto diferente dessa mesma aplicação, que usa uma abordagem baseada em tarefa. Suponha que exista um serviço agregador de conteúdo de
informação de vôo usando essa abordagem. Neste caso, após Leonardo combinar com
Giselle de buscá-la no aeroporto, ele contacta o serviço agregador e passa a informação
sobre o vôo. A seguir, está descrito o que acontece:
1. O serviço monitora o status do vôo da Giselle.
2. Se o vôo está atrasado, Leonardo é notificado.
3. O serviço monitora a localização do Leonardo na cidade e o tempo esperado para
chegar ao aeroporto baseado nas condições de tráfego daquele momento onde se
encontra.
4. Leonardo recebe uma notificação de quando ele precisa ir para o aeroporto baseado nas informações do vôo e tráfego. A notificação pode ser feita enviando uma
mensagem para o PDA ou através de SMS (Short Message Service).
É claro qual solução é mais fácil para o usuário. Na primeira, Leonardo tem mais
trabalho e na segunda, o serviço funciona como seu assistente. A primeira solução é uma
“minituarização” de uma aplicação para o ambiente de computação móvel, feita a partir
de uma versão/site disponı́vel para a rede fixa. Esse princı́pio trata o ambiente móvel e a
tecnologia associada como um subconjunto do ambiente “tradicional”. A razão para isso
é que linguagens para ambientes móveis são, na maior parte das vezes, subconjuntos de
suas equivalentes para ambientes fixos, e os recursos fı́sicos dos dispositivos e ambientes
móveis são mais limitados quando comparados com os similares infra-estruturados (telas
menores, entrada de dados limitada, e largura de banda menor).
É esse princı́pio de desenvolvimento que acaba levando a todos os passos da primeira solução. Ele falha em considerar os aspectos positivos do paradigma móvel:
• O dispositivo móvel está sempre com o usuário e sempre ligado. Não é comum
um computador desktop ficar com o usuário. Um laptop tende a ser ligado e
conectado apenas quando o usuário está parado.
• Quando o usuário está executando uma aplicação num dispositivo móvel relacionada, por exemplo, com:
– Uma agenda eletrônica ou escalonamento de tarefas;
– Localização fı́sica do usuário e/ou do servidor;
– Perfil do usuário dado um contexto (compras, deslocamento, viagem, entretenimento, etc);
é possı́vel fazer algumas deduções a partir do contexto do usuário. Neste caso,
o lado fixo da aplicação deve ter como foco principal enviar informações relacionadas com o contexto e com a atividade que está sendo executada. Contexto e
atividade podem assumir diferentes aspectos como localização fı́sica do usuário,
condições fı́sicas de comunicação, caracterı́sticas fı́sicas do dispositivo portátil, e
prioridade para acessar/ter um dado.
• Tecnologias de comunicação sem fio, como Bluetooth, são capazes de criar redes pessoais sem que o usuário perceba que isso está ocorrendo. Obviamente, o
usuário de um dispositivo móvel com Bluetooth deve programar o seu dispositivo
para que isso ocorra da forma desejada.
• Tecnologia push é possivelmente a forma de comunicação mais apropriada de se
comunicar com o usuário, já que pode ser feita em janelas de tempo mais apropriadas tanto do ponto de vista da comunicação (quando o canal experimenta uma
qualidade melhor) como da atenção do usuário (que pode estar voltada para outra
atividade).
Todos esses aspectos são normalmente ignorados quando aplicações “minituarizadas” são desenvolvidas.
5.1.3. Organização do texto
O texto deste minicurso está organizado como segue. A seção 2 descreve a evolução das
tecnologias de comunicação sem fio, tanto em ambientes internos quanto externos. A
seção 3 apresenta uma visão geral de computação móvel em termos de dispositivos usados e tendência de uso desses dispositivos. A seção 4 discute o problema tecnológico e de
infraestrutura, serviços já disponibilizados ou a serem disponibilizados e conhecimentos
e formação para trabalhar na área. A seção 5 discute problemas práticos e oportunidades de trabalho existentes na área. Finalmente, a seção 6 apresenta as conclusões deste
minicurso.
5.2. Tecnologias de comunicação sem fio
Algumas das tecnologias de comunicação sem fio utilizadas atualmente estão descritos a
seguir e mostradas na figura 5.
5.2.1. i-Mode
O i-mode foi criado pela operadora japonesa NTT DoCoMo [Interactive, 2000] e é basicamente um serviço de informação por pacotes. Com este sistema de informação “em
pacotes”, diferentemente das redes telefônicas de comutação de circuitos, não é necessário
Figura 5: Tecnologias de comunicação sem fio
que cada usuário receba a informação através de um só canal de rádio, o que significa que
um grande número de pessoas pode ter acesso à informação simultaneamente. Além disso, o modelo em pacotes ajuda a reduzir os custos, já que as tarifas baseiam-se no volume
de informação enviada e recebida.
O i-mode se aproxima em muitos aspectos do WAP, a começar pela velocidade
de transmissão, que é de 9,6 kbps, a mesma que se tem nas redes TDMA. Essa baixa
taxa de transmissão faz com que o protocolo japonês esbarre na dificuldade de transportar
imagens, assim como o WAP. São possı́veis apenas ı́cones muito simples, parecidos com
pequenas imagens do WAP em formato vbmp.
Graças ao sistema de comutação de pacotes, os usuários da NTT DoCoMo têm
conexão permanente com a Web. Isso explica por que a lenta velocidade de transmissão
de dados de 9,6 kbps não afeta de forma tão direta o desempenho do i-mode, como acontece com o WAP. A outra vantagem que esse modelo de rede propicia são os pacotes de
serviços extremamente econômicos. Diferentemente do que acontece no Brasil, onde as
operadoras cobram pelo tempo de uso, no modelo utilizado pela operadora japonesa a
cobrança é feita pela quantidade de dados transmitida.
Inicialmente, o i-mode estabeleceu uma tecnologia baseada no HTML, o CHTML
que permite que os provedores de conteúdo possam desenvolver aplicações sem a necessidade de novos métodos de programação e ter que utilizar conversores de HTML a WML.
Com um acordo feito entre a empresa DoCoMo e o WAP Forum, os dois padrões passaram a usar o mesmo padrão de linguagem de marcação, baseado no padrão HTML versão
4.1. A figura 6(a) mostra um celular da DoCoMo executando o i-mode.
5.2.2. WAP
O WAP é um método de distribuição de informação da Internet para o usuários, atráves de
um dispositivo móvel que, atualmente, é padronizado pelo WAP Forum [WAP Forum]. O
modelo de programação WAP é similar ao modelo de programação Web. Isto significa que
ele provê vários benefı́cios para a comunidade desenvolvedora de aplicações, incluindo
um modelo de programação familiar e a capacidade de reutilização das ferramentas atuais,
como os servidores Web. Entretanto, otimizações e extensões foram feitas de maneira
que a caracterı́stica do mundo Web fosse ao encontro do ambiente sem fio. Sempre que
possı́vel, os padrões existentes foram plenamente adotados ou foram usados como ponto
de partida para a tecnologia WAP.
A figura 6(b) mostra o modelo de comunicação entre um dispositivo WAP e a
Internet.
(a) i-mode
(b) WAP
Figura 6: O padrão i-mode proposto pela empresa DoCoMo do Japão e o padrão
WAP proposto pelo WAP Forum
5.2.3. Bluetooth
Bluetooth é um padrão proposto pelo Bluetooth SIG (Special Interest
Group) [Bluetooth Special Interest Group], que é um consórcio das maiores empresas de telecomunicações e computação do mundo. O padrão opera na faixa ISM
(Industrial, Scientific, and Medical) de 2,4 GHz e tem como princı́pio propor uma
tecnologia de baixo custo para conectividade sem fio. Inicialmente o padrão foi projetado
como uma solução para substituição de cabos usados na comunicação de periféricos
(figura 7(a)) por comunicação via rádio. No entanto, ele permite a conexão entre
diferentes tipos de dispositivos possibilitando a formação de redes ad-hoc (figura 7(b)).
A estrutura básica de comunicação no Bluetooth é chamada de piconet. A piconet
tem a caracterı́stica de ser uma rede onde um nodo central, definido como mestre, se comunica ativamente com os outros nodos chamados de escravos, formando uma topologia
em estrela, com no máximo sete elementos. Piconets podem se conectar entre si formando
scatternets (figura 7(b)).
O pequeno alcance de comunicação dos dispositivos faz com que essas piconets
possuam a caracterı́stica de formarem pequenas redes pessoais, conhecidas como PAN –
Personal Area Network.
Algumas das principais diferenças entre o Bluetooth e outros tipos de redes sem
fio estão mostradas na figura 5 são:
• Redes formadas basicamente de dispositivos com baixa capacidade e pouca energia;
• As conexões entre dois dispositivos possuem diversos estados, com o objetivo de
economizar energia e gerenciar a formação de outras piconets;
• Formação espontânea de piconets, possibilitando modificações constantes em sua
topologia. Essas modificações não são apenas em função da mobilidade, como
normalmente acontece nas redes sem fio;
• As scatternets possuem pequenos diâmetros, sendo formadas por menos do que 10
piconets, pois o Bluetooth prevê que as PANs façam comunicação entre usuários
e dispositivos;
• O estabelecimento da conexão entre dois nodos passa por um procedimento de
identificação e sincronização que necessita de uma temporização para ocorrer efetivamente.
Outro ponto é a maneira que o canal entre o mestre e o escravo é tratado. A
comunicação de rádio do Bluetooth usa um esquema de salto de freqüência (frequency
hopping) para permitir uma comunicação robusta em ambientes com muita interferência
e uma comunicação mais segura e personalizada, com um número mı́nimo de colisões
quando comparado com outros padrões. A especificação define dois sistemas de salto de
freqüência, um que trabalha sobre 73 freqüências diferentes, e outro sobre 23. Durante a comunicação, é utilizado o TDD (Time Division Duplex), que possibilita o suporte
a comunicação duplex. A seqüência do salto de freqüência é definida pelo identificador único do mestre na rede, um número gerado de forma similar ao especificado pelo
IEEE802, e o TDD é controlado por um relógio que se encontra no mestre, o que faz
com que todos os nodos que se comunicam com o mestre passem por um processo de
identificação e sincronização.
A especificação inclui os protocolos da interface aérea para permitir a
comunicação entre dispositivos e os perfis de uso, que definem como dispositivos Bluetooth podem comunicar entre si em diferentes aplicações (figura 7(c)).
5.2.4. RFID
Uma etiqueta RFIP é formada por um microchip conectado a uma antena. Existem diferentes tipos de etiquetas para diferentes tipos de aplicações. No entanto, o ponto importante para tornar a tecnologia RFID largamente aplicável é o seu baixo custo. Cada
etiqueta possui um identificador único (veja, por exemplo, a proposta do Auto-ID Center
na seção 5.2) que é enviado via difusão através da antena.
Etiquetas RFID podem ser ativas, passivas ou semi-passivas, e de leitura-escrita
ou somente de leitura. Uma etiqueta RFID ativa tem uma bateria para alimentar o circuito
do microchip e para enviar um sinal para uma estação de leitura. Uma etiqueta passiva não
tem bateria e usa a energia das ondas eletromagnéticas enviadas pela estação de leitura
para induzir uma corrente na antena da etiqueta que transmite o identificador. Etiquetas
semi-passivas usam uma bateria para alimentar o circuito mas usam a energia eletromagnética para fazer a transmissão do identificador. Etiquetas de leitura-escrita podem
gravar uma nova informação ou escrever sobre a existente enquanto uma etiqueta somente
de leitura apenas transmite a informação gravada previamente. O raio de transmissão que
um identificador alcança depende de fatores como potência do sinal transmitido.
5.2.5. IEEE 802.11
O padrão de comunicação IEEE 802.11 foi criado em 1999 para suportar a comunicação
em Redes Locais Sem Fio, (WLANs – Wireless Local Networks). A especificação define
uma camada de acesso ao meio, camada MAC, e diferentes camadas fı́sicas, tornando
possı́vel acessar o meio de três formas possı́veis: FHSS (Frequency Hopping Spread
Spectrum), DSSS (Direct Sequence Spread Spectrum) e infra-vermelho. Muitas vezes o
(a) Motivação para o surgimento da tecnologia Bluetooth: substituição de cabos
(b) Uso do padrão onde piconets e scatternets são formadas
(c) Modelos de uso e comunicação com outros tipos de infra-estrutura e dispositivos
Figura 7: Bluetooth
padrão 802.11 é chamado de “Ethernet sem fio”, por ser uma extensão natural do padrão
Ethernet (IEEE 802.3), como mostrado na figura 8(a).
No protocolo 802.11, a unidade de arquitetura é um BSS (Basic Service Set). Um
BSS é definido como um grupo de estações comunicantes sob controle de uma função de
coordenação (DCF – Distributed Coordination Function), que é responsável por determinar quando um dispositivo pode enviar/receber dados. As estações podem se comunicar
(a) Exemplo de interconexão entre os padrões IEEE 802.11 e IEEE 802.3
(b) Uso do padrão IEEE 802.11a em ambientes externos
Figura 8: Padrão IEEE 802.11 para redes locais sem fio
diretamente (ponto-a-ponto) ou com o suporte de uma infra-estrutura. Redes que se comunicam da primeira forma são conhecidas como redes ad-hoc, enquanto a segunda são
chamadas de redes infra-estruturadas. Essas últimas utilizam estações-base para interconectar os dispositivos para prover suporte à mobilidade.
As taxas de comunicação variam de acordo com a versão do padrão. No padrão
IEEE 802.11 básico, existem duas taxas de comunicação: 1 e 2 Mbps. Os padrões 802.11a
e 802.11b alteraram a especificação para prover taxas de 5,5 e 11 Mbps (802.11b), chegando até 54 Mbps (802.11a). O 802.11a utiliza um esquema especial de multiplexação
para atingir altas taxas de comunicação, o que torna impossı́vel a comunicação entre dispositivos 802.11a e 802.11b.
O padrão 802.11a permite que seja utilizado em ambientes externos (figura 8(b)).
Recentemente, a Verizon [Verizon] disponibilizou 150 áreas (hot spots) a partir de telefones públicos em Manhattan (NY, EUA), que permite acesso gratuito para clientes da
empresa. Atualmente, já é comum ter uma infra-estrutura baseada no padrão 802.11 disponı́vel para clientes em livrarias, cafeterias, e outros estabelecimentos comerciais.
5.2.6. Telefonia celular 3G e 4G
Os sistemas móveis de terceira geração, chamados de sistemas IMT-2000, foram projetados para prover acesso a diferentes tipos de serviços de comunicação de dados, e também
voz, dentre eles aplicações multimı́dia, acesso a Web e outras aplicações que precisam
de uma largura de banda não encontrada normalmente em redes celulares 2G e 2,5G. Os
sistemas de terceira geração são uma evolução dos sistemas celulares atuais (figura 9(a)).
As principais caracterı́sticas dos sistemas de terceira geração IMT-2000, são:
• Alto grau de padronização no projeto de dispositivos móveis;
• Compatibilidade entre os serviços oferecidos pelas redes fixas e os definidos de
acordo com o padrão IMT-2000;
• Adoção de terminais de usuário leves e compactos, com capacidade de roaming
mundial;
• Capacidade de tratar aplicações multimı́dia, e uma variedade de serviços;
• Utilização de comutação por pacote ao invés da comutação por circuito, utilizada
tradicionalmente na telefonia fixa;
• Assimetria de tráfego, com maior volume de informações transmitidas no enlace
rede fixa–dispositivo móvel, uma vez que o acesso à Internet é um dos pontos
fundamentais dos sistemas de terceira geração.
No futuro, a tendência é que toda a infra-estrutura de comunicação sem fio seja
baseada numa rede comutada por pacotes, baseada no protocolo IP (figura 9(b)).
5.3. Visão geral de computação móvel
A figura 10 mostra a evolução do uso de dispositivos computacionais desde o inı́cio
da computação na década de 1940 e a tendência de utilização desses dispositivos nos
próximos anos. O segmento de dispositivos portáteis tem tido um crescimento exponencial e dever ser o setor dominante no futuro.
5.3.1. O futuro da computação móvel
Na edição de junho de 2000 da revista Time, Cerf descreve sua visão de como será a
Internet daqui a 20 anos [Cerf, 2000]. A parte inicial desse artigo aparece na figura 11.
Alguns dos destaques desse artigo são que a Internet se tornará ubı́qüa; os acessos serão feitos através de enlaces de alta velocidade e de baixo consumo de energia;
(a) Evolução da telefonia celular para a terceira geração
(b) Evolução para uma rede toda baseada no protocolo IP
Figura 9: Evolução da telefonia celular (4G)
diferentes dispositivos computacionais com diferentes funções terão Internet embutida e
conversarão entre si; possivelmente teremos mais elementos computacionais online que
Figura 10: Evolução e tendência na utilização de dispositivos computacionais
Figura 11: Como será a Internet daqui a 20 anos?
pessoas; dispositivos programáveis serão tão baratos que virão embutidos em caixas e outros objetos. É interessante notar que atualmente já existem tecnologias de comunicação
sem fio que oferecem todas essas caracterı́sticas a um preço “competitivo”.
5.3.2. Formas de uso dos dispositivos móveis
A figura 12 ilustra o problema do tipo de dispositivo móvel e suas formas de utilização.
A primeira questão que surge é o que fazer com um dispositivo móvel, que tipo de funcionalidade terá e se será necessário ter mais de um tipo de dispositivo, conforme mostrado
pela seqüência de imagens na figura 12(a). Tradicionalmente, temos usados dispositivos
móveis, como telefones celulares, nas nossas atividades diárias (figura 12(b)). No entanto, novas formas de utilização já estão aparecendo e deverão ser mais usadas no futuro
(figura 12(c)).
5.3.3. Dispositivos móveis
Podemos dividir os dispositivos móveis para usuários em três grandes segmentos: laptops
e palmtops, PDAs, e telefones celulares. Comumente, laptops e palmtops são usados como computadores desktops, conectados a uma rede fixa e utilizando energia de “tomada”.
Por outro lado, PDAs e celulares tendem a ser usados em situações que envolvem mobilidade, efetivamente fazendo uso de uma infra-estrutura de comunicação sem fio e sem dependerem de energia de tomada (figuras 13(a) e (b), respectivamente). Também é comum
encontrar dispositivos móveis projetados para aplicações especı́ficas como a indústria (figura 13(c)). Atualmente, existe uma forte tendência em integrar PDAs e celulares. Assim,
já é possı́vel comprar PDAs com a função de celular e vice-versa (figura 13(d)). Com o
surgimento de novas tecnologias de comunicação de dados, como a telefonia celular de
terceira geração, novos dispositivos serão produzidos, como os mostrados na figura 13(e).
É importante observar que a variação das interfaces de entrada e saı́da, capacidade
de processamento e armazenamento, autonomia de funcionamento, e suporte a protocolos
de comunicação sem fio é bem grande entre os diferentes tipos de dispositivos.
No ambiente de computação móvel, o tamanho do dispositivo é um fator muito
importante, já que as pessoas não desejam carregar dispositivos pesados, mas sim leves e
de fácil utilização (figura 14). A tendência é que dispostivos móveis passem a ser usados
mais freqüentemente, como outros objetos que normalmente carregamos e passem a ser
“incorporados” ao nosso dia-a-dia, como pode ser visto na figura 15.
5.3.4. Suporte à mobilidade na rede fixa
Do ponto de vista da rede fixa (Internet), o protocolo IP é o protocolo que cria a “cola”
para integração de serviços e aplicações entre a rede fixa e a rede sem fio (figura 16).
Mais ainda o protocolo IP Móvel cria as condições para dar suporte à mobilidade de dispositivos móveis dentro da rede fixa. O IPv6 móvel (Mobile IP) foi projetado para criar efetivamente uma Internet ubı́qüa para a computação móvel. Dentre as
caracterı́sticas importantes do IPv6 móvel para a computação móvel estão o espaço de
endereçamento de 128 bits, e a forma de ligação de dispositivos baseada no princı́pio
plug-and-play, como mostrado na figura 17.
5.4. Desafios a serem vencidos
Como se aplica o paradigma da computação móvel? Esta é uma pergunta que trata de
diversos aspectos, alguns deles discutidos nesta seção. Outro caminho, não discutido
aqui, é estudar e analisar o que tem sido feito, ou seja, avaliar os projetos e experiências
existentes.
5.4.1. Critérios a considerar no projeto de aplicações
Existem vários critérios que devem ser considerados ao se projetar uma aplicação para o
ambiente de computação móvel. Alguns deles são discutidos a seguir.
(a) Tipos de dispositivos móveis
(b) Formas convencionais de utilização dos dispositivos móveis
(c) Novas formas de utilização dos dispositivos móveis
Figura 12: Tipos e formas de uso de dispositivos móveis
Nem todas as aplicações e serviços existentes ou que serão desenvolvidos são
(a) HP Jornada 928
WDA Pocket PC
Phone Edition
(b) Sendo Z100
Stinger
(d) PDA e celular combo da Handspring
(c) PDA Industrial da
Casio: Tela de 240
× 320 mm, WindowsCe, CPU 150 MHz, 32
MB (RAM), 14 MB
(ROM), RS232, IrDA,
Bateria (15 hs)
(e) Protótipos de celulares 3G da Nokia
Figura 13: Dispositivos móveis
apropriados para o ambiente de computação móvel. Assim, deve-se primeiro avaliar se
é adequado desenvolver uma aplicação/serviço para esse ambiente. Isso pode ser feito a
partir de pontos, como os descritos a seguir:
• Analisar os fluxos de dados e requerimentos de conectividade da aplicação especı́fica. Uma aplicação pode precisar ser notificada imediatamente ou não sobre
uma determinada condição e/ou dado.
• Identificar os requisitos do modelo de uso da aplicação. Por exemplo, deve-se
Figura 14: Tamanho do dispositivo
Figura 15: O dispositivo móvel é um recurso que tende a ser usado como outros
objetos (e.g., relógio e caneta) comuns que usamos no dia-a-dia
verificar se é necessário que o dispositivo tenha uma conexão intermitente ou permanente com o servidor na rede fixa e tenha que sincronizar os dados de aplicações
que envolvem bancos de dados ou que estejam on-line.
• Avaliar o tipo de infra-estrutura de comunicação sem fio necessária e/ou dis-
Figura 16: Serviços, a serem disponibilizados em computação móvel, serão fortemente baseados em redes IP
Figura 17: IPv6 móvel que cria o suporte à mobilidade de dispositivos móveis na
rede fixa
•
•
•
•
•
ponı́vel para a aplicação. Por exemplo, PAN, LAN, WAN, telefonia celular (2.5G,
3G), ou satélite. Cada uma dessas tecnologias tem requisitos diferentes de largura
de banda, atraso, área de abrangência, etc.
Definir a região de cobertura que a aplicação deve estar disponı́vel. Essa área pode
variar desde um escritório até diferentes regiões do planeta. Dependendo da região
de cobertura, é bem provável que diferentes infra-estruturas de comunicação sem
fio serão usadas.
Identificar os requisitos de segurança que a aplicação deve ter. Alguns dos aspectos a considerar são autenticação e criptografia.
Estimar o custo de desenvolvimento e manutenção da aplicação. Esse custo deve
ser avaliado não somente para um momento mas para um horizonte maior.
Identificar caracterı́sticas dos dispositivos móveis necessários à execução da
aplicação. Atualmente, existem diferentes dispositivos portáteis com diferentes
caracterı́sticas. Logo, deve-se identificar as caracterı́sticas dos dispositivos que
podem impactar o projeto e, mesmo, a viabilidade de desenvolver uma aplicação.
Dentre as caracterı́sticas estão, por exemplo, o tamanho, formas de entrada e saı́da
de dados, interfaces de comunicação sem fio, sistemas operacionais disponı́veis, e
ferramentas de desenvolvimento de aplicações e serviços.
Identificar o segmento de mercado da aplicação ou serviço. Ao desenvolver uma
aplicação ou serviço para um ambiente móvel, não basta que o desenvolvimento
seja bem feito e, no final, tenha-se um produto de qualidade se não houver um
mercado de consumo. Ou seja, como qualquer outro produto, uma aplicação ou
serviço para o ambiente de computação deve ter qualidade, mas, deve ser, principalmente, “atraente” para ser consumido.
A seção seguinte descreve em mais detalhes o processo de desenvolvimento de
aplicações móveis.
5.4.2. Processo de desenvolvimento de aplicações móveis
Para desenvolver uma estratégia de mobilidade para uma empresa, é necessário avaliar
os vários processos dentro do negócio e identificar aqueles que podem ser melhorados
e/ou aplicados com o paradigma de computação móvel. Os processos de um negócio
são usualmente projetados considerando um conjunto de requisitos. Quando uma nova
tecnologia com diferentes capacidades e requisitos é utilizada, os processos devem ser
revistos do ponto de vista desse tecnologia. Se a tecnologia é simplesmente aplicada
sem nenhuma consideração, o resultado final pode ser bastante ineficiente ou mesmo
desastroso. Alguns pontos importantes que devem ser considerados em um negócio são,
por exemplo:
• A forma como as informações, documentos, mensagens, etc. são trocadas entre os
funcionários (papel, meio eletrônico);
• Qual é o processo para passar essas informações;
• Que/Onde/Como/Quando informação/aplicação é importante para os diferentes
tipos de funcionários da empresa;
• Que novos processos devem ser criados com uma estratégia móvel?
Alguns critérios devem ser definidos para avaliar a utilização da computação
móvel num processo especı́fico de negócio:
• A tecnologia irá fornecer novas capacidades/funcionalidades? Ou seja, a tecnologia irá permitir fazer atividades que não são possı́veis sem ela? Quanto vale
essa capacidade/funcionalidade? Existem outros retornos indiretos em se ter essas
capacidades/funcionalidades?
• A tecnologia irá melhorar a produtividade? Ou seja, o que será melhorado com
a mesma quantidade de recursos? Os ganhos previstos são maiores que os custos
com treinamento, gerenciamento e uso do sistema? Como a curva de aprendizagem da tecnologia irá afetar a produtividade?
• A tecnologia irá melhorar a eficiência? Ou os novos passos introduzidos no processo do negócio irão diminuir a eficiência como um todo?
• A tecnologia irá melhorar a qualidade? Os erros irão diminuir ou aumentar devido
às opções limitadas de entrada de dados dos dispositivos móveis? Os resultados
do processo do negócio serão melhores?
• O uso da tecnologia irá afetar os custos? Quais os novos custos que serão criados? Mesmo se a tecnologia provê um aumento na receita, o seu uso deve ser
considerado em função dos custos atuais.
Todas essas questões devem ser colocadas não só em relação ao presente mas
também ao futuro tomando como base meses e/ou anos a frente. Hoje, para uma dada
empresa, pode ser que o uso do paradigma móvel não seja uma boa estratégia mas no
futuro pode ser diferente. Também existe o caso que mesmo não sendo uma boa opção no
momento, a empresa pode decidir investir na tecnologia como diferencial competitivo para o futuro. Naturalmente, todas essas decisões devem ser tomadas consultado as pessoas
envolvidas e especialistas da área.
5.4.3. Usabilidade
Dispositivos móveis são completamente diferentes de desktops. As pessoas não usam
aplicações móveis para acessar a mesma informação ou executar as mesmas funções que
elas fariam com um computador fixo. Isso se deve às restrições do hardware do dispositivo móvel (tela menor, entrada de dados limitada, energia limitada, mobilidade), caracterı́sticas do ambiente de comunicação sem fio (largura de banda menor, taxa de bits
errados maior), e pagamento pelos serviços. Logo, a habilidade, capacidade, e disponibilidade de um usuário acessar e processar informações são menores. Isto significa que um
dos aspectos mais importantes no desenvolvimento de aplicações móveis é a usabilidade.
No projeto de aplicações, principalmente para a Web, a navegação intuitiva e a
identificação de conteúdo são considerações importantes. No caso de aplicações móveis
são necessidades absolutas. Normalmente, usuários em ambientes fixos ficam mais concentrados enquanto ambientes móveis tendem a distrair mais as pessoas em função das
outras atividades que ocorrem ali.
Uma possı́vel estratégia para avaliação de usabilidade é criar projetos de tela da
interface a ser usada, considerando o objetivo do serviço, a audiência alvo, cenários de
uso e restrições técnicas. Os diversos detalhes do projeto de cada tela devem ser estudados
cuidadosamente, utilizando, principalmente, informações fornecidas pelos usuários. Três
aspectos a considerar numa arquitetura de informação são:
1. Esquema de interação. Projeto de cada tela com o seu contéudo, como o usuário
deve interagir, regras de navegação e fluxo de informação.
2. Mapa de serviço. Diagrama mostrando a estrutura do serviço proposto, mostrando
a interação entre os diferentes tipos de serviços disponibilizados.
3. Guias de estilo. São usados para guiar os projetistas no desenvolvimento do
serviço. Define regras para navegação, controles, mensagens de erros, atalhos,
etc.
Uma questão importante de usabilidade é a interface de usuário. Por exemplo,
dispositivos WAP têm uma variedade de interfaces: a saı́da pode ser apresentada como
texto, texto formatado ou gráfica. A entrada é feita através de telas sensı́veis ao toque
e/ou botões. O tamanho de um display varia significativamente. O aparelho MC218
da Ericsson tem um display de 640 × 240 enquanto o modelo 7110 da Nokia é apenas
96 × 65, ou seja, uma proporção de 24:1, conforme pode ser visto na figura 18. Por outro
lado, a tela de um desktop difere numa proporção de 6:1 (1600 × 1200 comparado com
640 × 480). Uma diferença tão grande entre os tamanhos de tela torna muito difı́cil o
projeto de uma aplicação que
(a) Ericsson MC218
(b) Nokia 7110
(c) Nokia 7110: descrição dos
botões
Figura 18: Diferenças entre telas de dispositivos WAP
Os mecanismos de entrada de dados providos por dispositivos WAP também são
inconsistentes. Dispositivos PDAs oferecem interface point-and-click ou sensı́vel ao toque enquanto telefones usam botões. Normalmente, a navegação com uma interface de
botão é mais difı́cil que uma interface sensı́vel ao toque. Por exemplo, telefones WAP
permitem rolagem vertical da tela enquanto horizontal não. Além disso, entrada de texto
é mais difı́cil e leva mais tempo.
5.4.4. Segurança
O paradigma móvel, que oferece acesso a informação em qualquer lugar e a qualquer
momento, traz um desafio mais sério para as pessoas e organizações que é o risco da
segurança. Segundo previsões de 2002 do Gartner Group [Gartner], em 2007, mais de
200 milhões de dispositivos móveis serão usados por pessoas em atividades relacionadas
com negócios. Possivelmente, nesse cenário haverá muitos problemas de segurança envolvendo dados armazenados em handhelds e transmitidos via comunicação sem fio. Os
mecanismos de segurança em rede terão que ser revistos para evitar ou diminuir um uso
incorreto acidental ou intencional do processo e informação no ambiente de computação
móvel, já que esses tipos de problema tendem a causar uma desconfiança maior nas entidades envolvidas e tecnologias usadas.
5.4.5. Projeto considerando adaptação
A computação móvel é caracterizada por um dispositivo portátil com capacidade de processamento, mobilidade e uma infra-estrutura de comunicação sem fio. Os dispositivos e
a infra-estrutura podem variar bastante o que leva a ambientes de computação móvel com
caracterı́sticas bem distintas. Por sua vez, o padrão de mobilidade e de tráfego pode variar
entre diferentes grupos de usuários. Além disso, aplicações projetadas para computação
móvel devem considerar obrigatoriamente o tipo de ambiente e considerar ainda a energia
como um recurso a ser otimizado. Assim, fica claro que é muito difı́cil definir a priori um
comportamento para uma aplicação em um ambiente de computação móvel. Na verdade,
um dos aspectos para o sucesso de uma aplicação em computação móvel é adaptação.
O significado de adaptação. Adaptação significa dizer que uma aplicação ou algoritmo
não tem agora uma única especificação de saı́da, mas possivelmente um conjunto válido
de saı́das ou resultados que são aceitáveis em função das condições existentes em um determinado momento do tempo. Esta é uma observação muito importante em computação
móvel e, de fato, bem razoável. Por exemplo, se num dado instante só existe energia
disponı́vel na unidade móvel para mais t segundos, então não adianta executar um processamento que gaste mais que esse tempo, a menos que essa computação possa chegar a
um resultado com uma “precisão menor” em menos de t segundos.
Outro exemplo, suponha que num dado instante um usuário móvel esteja acessando as suas mensagens eletrônicas em um ambiente externo de baixa velocidade com
uma “alta” taxa de erro. Neste cenário pode-se optar por mostrar apenas o remetente e o
assunto de cada mensagem. Suponha ainda que o usuário continua a se mover e passa a
acessar uma infra-estrutura interna de comunicação sem fio através de WLAN que possui
uma taxa de comunicação acima de 1 Mbps e uma “baixa” taxa de erro. Neste caso agora,
o usuário poderia passar a ver as mensagens integralmente.
É importante observar que a adaptação pode ser feita tanto no dado que está sendo transmitido para a unidade móvel quanto no próprio processamento solicitado pelo
usuário. Que tipo de adaptação deve/será feita depende das condições e tipo de ambiente
móvel, conforme discutido anteriormente, e do tipo de aplicação.
As estratégias de adaptação [Noble et al., 1997, Satyanarayanan, 1996] são delimitadas por dois extremos, como mostrado na figura 19. Em um deles, a adaptação é de
inteira responsabilidade das aplicações. Essa abordagem, denominada Laissez-faire, evita
a necessidade de um sistema de suporte. Por outro lado, falta uma entidade “inteligente”
que seja capaz de resolver demandas por recursos incompatı́veis por parte de diferentes
aplicações e para estabelecer limites no uso destes recursos. Além disso, esta abordagem
faz com que as aplicações fiquem muito mais difı́ceis de serem escritas.
Figura 19: Estratégias de adaptação
No outro extremo temos o que é chamado na literatura de Application-transparent
Adaptation. Neste tipo de abordagem a responsabilidade pela adaptação é toda do sistema. Esta abordagem é atrativa pois é compatı́vel com aplicações já existentes. Apesar da viabilidade deste tipo de abordagem já tenha sido demonstrada em sistemas como Coda [Satyanarayanan, 1996], existem limites para sua aplicabilidade. Existem circunstâncias onde somente a aplicação pode determinar a melhor forma de adaptação. A
menos que o sistema seja estendido de forma a incorporar conhecimentos especı́ficos sobre cada aplicação, irão sempre existir situações em que a adaptação feita somente pelo
sistema será inadequada e, até mesmo, contra-produtiva.
Entre estes dois extremos existem várias possibilidades chamadas coletivamente de Application-aware Adaptation. Por suportar uma parceria colaborativa entre as
aplicações e o sistema, esta abordagem permite que as aplicações determinem como melhor se adaptar, preservando a habilidade do sistema de monitorar os recursos e tomar
decisões. O sistema monitora o nı́vel dos recursos, notifica as aplicações com relação
às mudanças mais relevantes e assegura decisões de alocação de recursos. Por ser uma
abordagem mais flexı́vel, no que diz respeito à soma de responsabilidades atribuı́das às
aplicações e ao sistema de suporte essa é uma estratégia adequada ao desenvolvimento de
novas aplicações.
Um conceito intimamente ligado com adaptação em computação móvel é o de
QoS (Quality of service). QoS define caracterı́sticas não funcionais de um sistema
que afetam a qualidade percebida dos resultados [Chalmers, 1999]. Por exemplo, numa
aplicação multimı́dia além das funcionalidades do sistema, é importante para o usuário
a resolução de uma imagem, taxa de quadros por segundo, a qualidade do áudio. No
ambiente móvel há uma grande variação de QoS que deve ser tratada.
Outro conceito importante é o da usabilidade, que está relacionado com a facilidade de uso ou “amigabilidade” de uma determinada interface. Formalmente, conceitua-se
usabilidade como sendo a propriedade de uma interface com o usuário que permite classificá-la quanto à qualidade da interação que ela proporciona. Usabilidade está tradicionalmente associada a cinco atributos [Nielsen, 1993]: facilidade de aprendizagem, eficiência
de uso, retenção, minimização de erros e satisfação. Independente da técnica utilizada o
desenvolvedor não deve se descuidar da usabilidade final de sua aplicação.
Técnicas de adaptação. A computação móvel possui três caracterı́sticas principais que
afetam a usabilidade de uma aplicação móvel: a comunicação sem fio, a mobilidade e a
portabilidade. Esse ambiente possui uma largura de banda baixa e instável (alta variação),
redes heterogêneas, riscos de segurança, baixa autonomia de energia e pouca capacidade
de armazenamento dos dispositivos móveis, além de pequenas interfaces de usuário. Tudo
isto dificulta a interação do usuário e obriga a utilização de técnicas de adaptação para se
melhorar a interface e, consequentemente, a interação. Se uma interface é ineficaz, as
funcionalidades e a utilidade do sistema ficam limitadas; os usuários tornam-se confusos,
frustrados e irritados; desenvolvedores perdem credibilidade; e a organização é penalizada
com altos custos de suporte [Nolan, 1992].
Conforme visto anteriormente existem três abordagens básicas para se executar
a adaptação: na primeira, o responsável pela adaptação é o sistema (modelo este indicado para migração de sistemas legados), na segunda a aplicação, e na terceira há uma
colaboração entre sistema e aplicação. A adaptação do ponto de vista do sistema pode ser
feita através da criação e utilização de novos protocolos especı́ficos para a comunicação
móvel. Por exemplo, quando as condições da rede mudam, o sistema pode trocar dinamicamente para um novo protocolo. Além disto, pode haver um determinado protocolo
que pode ajustar o tamanho dos pacotes de acordo com diferentes condições da rede.
Outras técnicas seriam o aumento de compressão que é aplicado aos dados antes da transmissão ou a utilização de pré-busca e cache durante os perı́odos de alta conectividade
como preparação para futuras reduções na largura da banda. Maiores detalhes e outras
técnicas podem ser vistos [Friday et al., 1999].
Adaptação da aplicação. Antes de se projetar qualquer aplicativo para o ambiente
móvel deve-se considerar a natureza do contexto da computação móvel no qual o dispositivo será utilizado. Isto permite que a aplicação seja adaptada da melhor forma possı́vel
ao ambiente. Raras vezes isto é abordado numa metodologia de desenvolvimento de
software para o mundo fixo pois o desenvolvedor sabe que normalmente seu usuário trabalhará num computador pessoal que ficará numa sala conectado numa rede confiável
sem grandes variações. No entanto, para um aplicativo móvel, esse contexto deve estar
presente na fase de análise. É fundamental ter em mente que existe uma infra-estrutura
para suportar a referida aplicação. Infelizmente, essa infra-estrutura, devido à sua natureza, é bastante variável e essas variações devem ser refletidas na forma de interação com a
aplicação naquele momento. Por exemplo, se várias pessoas estão utilizando um sistema
de colaboração e um dos participantes perde a conexão por algum problema na rede, ou
por vontade própria, essa situação deve ser refletida nas interfaces da aplicação dos outros
usuários participantes.
O ambiente no qual o dispositivo móvel se encontra também deve ser considerado para se alterar a forma de interação com o usuário ou a adaptação que o aplicativo
executará. A velocidade de deslocamento do usuário e as condições ambientais no qual
o dispositivo estiver inserido, devem ser levadas em consideração para se aumentar a
usabilidade do sistema. Essas mudanças podem ser informadas ou não ao usuário. Por
exemplo, computadores de bordo (carro, aviões), podem mudar a forma de apresentar as
informações devido ao deslocamento, situações de manobras, condições crı́ticas ou de
emergência, entre outras [Rodden et al., 1998].
Uma técnica de análise de tarefas [Landay, 1993] também deve ser utilizada para
descobrir o que o usuário deseja obter. Com esta técnica, o desenvolvedor pode determinar
quais tarefas e informações são mais importantes, projetando assim um aplicativo capaz
de se adaptar através da priorização de uma informação em detrimento de outra, no caso
de uma baixa conexão por exemplo. Além disso, há momentos em que a interface de um
aplicativo deve ser adaptada levando-se em conta as caracterı́sticas pessoais do usuário
(preferências, perfil) e de seu trabalho, bem como as tarefas a serem suportadas pela
aplicação. O usuário é quem melhor pode saber qual dado é importante, ou qual pode ser
resumido (por exemplo, menor detalhe de uma imagem ou texto no lugar de imagem).
Portanto devem ser projetados meios que permitam que tais escolhas possam ser feitas.
O bom entendimento da relação usuário-aplicação é essencial para a construção
de um sistema que possua boa usabilidade e adaptabilidade. Há aplicações que podem
ser personalizadas e outras que devem ser genéricas. O que diferencia uma da outra
é justamente a natureza das tarefas disponı́veis em tais aplicações. Seja como for, uma
análise de tarefas certamente produzirá um conjunto muito diferente de tarefas em relação
a um aplicativo desktop comum [Landay, 1993].
Antes de se iniciar a fase de projeto, o desenvolvedor deve ter em mente que o ambiente no qual o aplicativo executará é altamente dinâmico. Com isso, faz-se necessário
a utilização de várias “saı́das” para as possı́veis variações do sistema. Por exemplo, a figura 20 apresenta duas interfaces possı́veis existentes no Windows. A da esquerda possui
um nı́vel de detalhamento maior, oferecendo um pouco mais de informação. A da direita
apresenta ı́cones menores mas é mais adequada para um ambiente móvel que esteja com
baixa conectividade pois exige menos tráfego da rede. O sistema pode trabalhar com
as duas interfaces utilizando a mais adequada, ou seja, adaptando-se, de acordo com as
condições do ambiente.
É importante determinar como as interfaces gráficas serão projetadas. Interfaces
do tipo “What You See Is What I See” (WYSIWIS) requerem atualizações contı́nuas
resultando num alto tráfego de dados. Uma aplicação móvel poderia utilizar interfaces do tipo “What You See Is Eventually What I See” (WYSIEWIS) aliado à utilização
de atualizações incrementais. Isto reduziria dramaticamente os requerimentos de largura de banda para a GUI (Graphical User Interface) [Lee and Buszko]. A freqüência de
atualizações é especı́fica de cada aplicação e pode ser ajustada dinamicamente de acordo
com a qualidade da conexão.
Outra técnica de adaptação é na modificação on-the-fly dos componentes de uma
interface. Dependendo das condições e do dispositivo utilizado, o aplicativo poderia tra-
Figura 20: Diferentes tipos de interfaces gráficas.
zer uma interface com mais ou menos componentes ou componentes com caracterı́sticas
diferentes (menores ou com menos detalhes, por exemplo). Para que esta técnica tenha sucesso o projetista tem que conhecer bem a natureza da aplicação para saber o que
é irrelevante e pode ser descartado. Em [Brewster and Cryer, 1999] é apresentada uma
proposta para superar o limite de espaço da tela em handhelds: reduzir o tamanho dos
elementos gráficos e apresentar a informação através do som. Nessa proposta, o som
é usado para apresentar informações sobre objetos objetivando reduzir os tamanhos dos
mesmos. Sons simples como um clique padrão no Windows é utilizado para notificar para
o usuário que um botão foi selecionado ou liberado. Um som mais alto é utilizado quando a caneta do dispositivo está sobre o botão indicando para o usuário que ele alcançou
o alvo. Similarmente um som é tocado quando o usuário passa a caneta sobre um botão.
Depois de vários testes realizados, o autor concluiu que a utilização de som possibilita
a diminuição dos elementos gráficos sem perda da usabilidade da interface. A figura 21
mostra as diferenças entre as interfaces. Isto pode ser utilizado como uma nova técnica
de adaptação de interface. A figura da esquerda pode ser utilizada juntamente com o som
para quando as condições da rede não estiverem boas.
Figura 21: Adaptação de interface.
Ao se conhecer bem a natureza da aplicação é possı́vel aplicar outras técnicas
de adaptação. Trabalhando-se com um grande volume de dados pode-se disponibilizar
opções que possibilitem ao usuário escolher partes do documento com que ele quer trabalhar. Por exemplo, o usuário poderia escolher a ordem de trabalho dos capı́tulos de
um documento. Enquanto ele estivesse lendo um capı́tulo, a aplicação iria buscando os
demais e armazenando num cache local. Outra possibilidade seria a de trazer o inı́cio do
documento e ir buscando o resto enquanto o usuário fosse lendo os dados já baixados.
Caso a conexão esteja realmente ruim, a aplicação poderia trazer somente os tı́tulos dos
capı́tulos/seções e solicitar ao usuário que escolha com quais deseja trabalhar, aplicandose depois a mesma técnica para os restantes. O ideal é manter a aplicação transparente,
mas não sendo possı́vel, é importante deixar o usuário no controle: ele escolhe qual a
melhor opção para contornar o problema.
Quanto ao usuário, deve-se também conscientizá-lo ou adaptar o seu comportamento. Indiretamente, as suas ações afetam a demanda pelos recursos da rede. Se os
usuários estiverem conscientes da implicação de suas ações, particularmente com respeito a determinadas tarefas, então alguns dos problemas resultantes de limitações da rede
podem ser evitados. Por exemplo, se a interface for projetada de tal forma a prover uma
realimentação para o usuário através de uma barra de progresso por exemplo, o usuário
poderá ter idéia do custo da tarefa. De posse desta informação, ele pode querer desistir
desta tarefa custosa ou executar outra menos custosa até as condições da rede melhorarem.
Deve-se observar que a construção de interfaces de aplicativos para um ambiente
móvel é dependente dos dispositivos móveis e isto deve ser considerado durante o desenvolvimento do sistema. Esses dispositivos possuem caracterı́sticas singulares em relação
aos computadores de mesa ou tradicionais PCs que devem ser levadas em consideração na
análise e projeto de um software. Essas caracterı́sticas limitam as aplicações que podem
ser executadas nesses dispositivos. Isso era de se esperar, já que dispositivos celulares, por
exemplo, foram projetados para transmissão de voz. Suas telas são bem pequenas, não podendo portanto abrigar muitas informações. Para auxiliar o desenvolvedor na construção
de interfaces, existem diretivas propostas exclusivamente para contemplar as peculiaridades do ambiente móvel [Openwave].
A entrada de dados é outro aspecto crı́tico nas aplicações móveis. Para certos dispositivos, por exemplo, são necessários três toques para se entrar com certas letras. Para solucionar isto novas formas de interação homem-dispositivo móvel
vêm sendo criadas e devem ser consultadas no projeto da interface de um aplicativo. Em [Deshe and Laar, 1998] é apresentada uma metodologia que utiliza código
de cores para exibição de dados complexos que são apresentados de forma tabular.
Em [Dunlop and Crossan] é mostrado um método que visa minimizar o esforço na entrada de dados nos limitados teclados de telefones celulares. O seu funcionamento é
similar ao auto-complete dos navegadores mais novos. Com base em um dicionário de
vocábulos e a partir dos primeiros caracteres digitados pelo usuário, o programa sugere
palavras para que casam com o padrão já digitado. Os experimentos indicam uma redução
significativa da entrada de dados em relação ao método padrão e, consequentemente, uma
diminuição no tempo de navegação e um melhora na interação do usuário. Diversas formas de interação entre usuário-aplicação-dispositivo móvel vêm sendo criadas e devem
ser pesquisadas a fim de se melhorar a interação do usuário com o aplicativo.
A interface homem-máquina freqüentemente é o fator mais importante para o su-
cesso de um projeto de software. Mesmo que um aplicativo seja útil e relevante, ele não
será usado a não ser que seja suficientemente acessı́vel ao usuário. Para a grande maioria
dos usuários, o sistema é a interface: a comunicação com o sistema tornou-se pelo menos
tão importante quanto a computação realizada pelo sistema [Hix and Hartson, 1993]. A
computação móvel, devido às suas caracterı́sticas peculiares que dificultam essa interação,
ao seu dinamismo e heterogeneidade apresenta novos desafios aos desenvolvedores de
software. Aqui, um sistema tem que se modificar às variações do ambiente, tão transparente quanto possı́vel, sem deixar de ser “usável”.
5.4.6. Conhecimentos técnicos
O paradigma de computação móvel, ao contrário dos outros paradigmas discutidos na
seção 1, trazem novos desafios não presentes anteriormente, além de interagir com todas
as áreas da Ciência da Computação. Assim, é mais provável que qualquer trabalho de
pesquisa e desenvolvimento envolva diferentes aspectos de diferentes áreas. Ou seja,
o conhecimento horizontal tem um papel muito importante em computação móvel. No
entanto, é possı́vel identificar alguns conhecimentos que têm sido freqüentemente usados:
• Java, J2ME (Java 2 Micro Edition), e linguagens scripts associadas como JavaScript. Estas têm sido as linguagens de programação mais usadas no desenvolvimento de aplicações e software em computação móvel.
• XML (eXtensible Markup Language) e linguagens derivadas. As informações
trocadas nesse ambiente utilizam XML ou alguma variante como WML (Wireless
Markup Language) utilizada no padrão WAP.
• Protocolos de comunicação para ambientes de comunicação sem fio como os descritos na seção 2.
• Processo de desenvolvimento de software considerando caracterı́sticas do ambiente móvel e princı́pios de usabilidade, como os descritos nesta seção.
• Plataformas de hardware e software existentes para dispositivos móveis como PalmOS [Palm], WindowsCE, e PocketPC da Microsoft [Microsoft].
5.5. Problemas práticos e oportunidades de trabalho
Existe um potencial imenso para aplicar e usar o paradigma de computação móvel, já que
em todas as atividades humanas existem aspectos que podem se beneficiar dessa tecnologia. Alguns dos possı́veis problemas estão discutidos a seguir. No entanto, existe uma
premissa básica: não adianta existir uma tecnologia interessante e de grande potencial
se não existirem aplicações e serviços interessantes para os usuários. Ou seja, dificilmente empresas e pessoas irão comprar dispositivos móveis e pagarem por serviços que
claramente não tenham nenhuma ou pouca utilidade prática.
Em termos de oportunidades, existem novas aplicações e serviços, principalmente
em contextos não tradicionais, que podem ser desenvolvidos a partir da disponibilização
da tecnologia. Para isso, é necessário desenvolver toda uma infra-estrutura de software, chamada de middleware, para dar suporte aos novos serviços e aplicações. A
disponibilização de serviços e aplicações depende, fundamentalmente, da criação de novas ferramentas e plataformas de desenvolvimento. Nesse processo, desafios já existentes em sistemas tradicionais irão aparecer com uma conotação mais forte ainda como
usabilidade e segurança. Nesse ciclo, que começa com a disponibilização da tecnologia, desenvolvimento de uma infra-estrutura de software, e ferramentas e ambientes de
desenvolvimento, esteja a grande oportunidade, como colocado pelo tema deste ano do
Congresso da SBC, “Ciência, Tecnologia e Inovação: Atalhos para o Futuro”.
5.5.1. Desenvolvimento de aplicações e serviços
Normalmente aplicações e serviços para dispositivos portáteis são desenvolvidos baseados em arquiteturas especı́ficas, usando componentes não-reutilizáveis. Uma determinada
aplicação desenvolvida para um dispositivo em uma plataforma utilizando uma dada ferramenta, em geral, somente poderá ser portada para um outro ambiente através de um
processo custoso. Pouco do trabalho realizado poderá ser aproveitado na nova plataforma. Isto exige mobilização de recursos em grande quantidade, resultando em altos custos.
Ferramentas capazes de facilitar o desenvolvimento de aplicações para os diversos dispositivos móveis e que possam atender às várias formas de aplicações serão extremamente úteis para integradores e desenvolvedores de novos serviços para ambientes
móveis. A variedade de dispositivos móveis traz consigo uma grande variedade de plataformas e, conseqüentemente, diferentes ferramentas de desenvolvimento.
O desenvolvimento de aplicações para celulares e PDAs tem caracterı́sticas diferentes. No caso de celulares tem-se utilizado linguagens de marcação, como WML,
HDML, CHTML, e VoiceXML. Em geral, PDAs têm mais recursos computacionais
quando comparados aos celulares, o que faz com que suas aplicações e serviços tenham mais funcionalidades. Existem linguagens de marcação disponı́veis que têm sido
bastante utilizadas na prática, sendo normalmente subconjuntos de HTML. No entanto, neste segmento já é possı́vel desenvolver aplicações nativas, ou seja, utilizar todos
os recursos que uma determinada plataforma oferece. Os PDAs podem ser separados
em três grandes plataformas: PalmOS desenvolvido pela Palm Inc. (www.palm.com),
PocketPC e WindowsCE pela Microsoft (www.microsoft.com), e EPOC, da Symbian
(www.symbian.com). Existe ainda uma versão de Linux para PDAs, porém sua utilização
ainda é restrita [Lehrbaum, 2001].
O desenvolvimento de aplicações nativas tanto para dispositivos móveis quanto
para computadores pessoais possuem as mesmas dificuldades: variedade de ambientes
de desenvolvimento e incompatilidade entre si. Somente o PalmOS possui mais de uma
dezena de ambientes de desenvolvimento reconhecidos pela Palm Inc.
Seria extremamente útil uma ferramenta que fosse capaz de tratar os desafios do
paradigma de computação móvel e que oferecesse flexibilidade para incorporar novos dispositivos e tecnologias. Tal ferramenta seria capaz de definir fontes de dados, entradas,
saı́das e interfaces externas de aplicações para dispositivos móveis, de maneira independente destes dispositivos.
A idéia é atrasar, tanto quanto possı́vel, a inclusão no projeto de peculiariedades
dos dispositivos-alvo na aplicação. Desta forma, um mesmo projeto poderá ser reutilizado para outros dispositivos. Essa ferramenta deve ainda oferecer flexibilidade para
incorporar outras tecnologias, como por exemplo, fontes de dados, interfaces de usuário
e equipamentos móveis.
É importante observar que a definição de aplicações independente de dispositivos
não é algo novo. A linguagem WML, que faz parte do padrão WAP, foi desenvolvida
visando tratar exatamente esta questão. Sua especificação não define como vários elementos de apresentação devem ser feitos. Por exemplo, WML não especifica como a
entrada de dados é feita, e sim o que é esperado da entrada do usuário. Isto permite que
um dispositivo utilize uma entrada textual, enquanto outro dispositivo pode utilizar uma
interface de voz. Cabe ao fabricante do dispositivo escolher como fazê-lo, e procurar
fazê-lo da melhor forma possı́vel. Porém, esse padrão ainda não está muito bem adaptado
aos PDAs, que possuem mais recursos, além de uma interface mais rica, o que pode (e
deve) ser explorado pelas aplicações.
A seguir são discutidos requisitos que uma ferramenta de desenvolvimento de
aplicações para um ambiente móvel deve ter. Um dos principais requisitos é a extensibilidade. Dada a possibilidade de encontrar um grande número de configurações de tecnologias e dispositivos móveis, deseja-se que seja ferramenta possa ser adaptada facilmente
de modo a atender aos vários tipos de ambiente.
Capacidade de descrever aplicações independente do dispositivo móvel que será utilizado. Isto permite que a mesma descrição possa ser utilizada em qualquer dispositivo.
Esta descrição deverá gerar uma aplicação nativa (da plataforma de desenvolvimento do
dispositivo alvo) ou então uma aplicação intermediária (que executará sobre uma máquina
virtual ou um protocolo de aplicação). Além disto, a descrição deverá ser modular o suficiente para que aspectos especı́ficos da interface de um dispositivo possam ser definidos
separadamente, para cada dispositivo suportado.
Descrever aplicações de modo independente do dispositivo não é uma novidade.
Vários estudos e trabalhos já foram feitos buscando alcançar este objetivo. A maior parte
das propostas são baseadas em linguagens de marcação, com destaque para XML (WML,
HDML, XHTML). Uma vantagem clara da utilização de XML é a possibilidade de gerar
diretamente outros formatos de documentos através de XSL.
Existem ainda propostas que utilizam interfaces de programação com esta finalidade. Nesta categoria encontramos desde conjuntos de ferramentas de software (como por
exemplo o pacote AVIDRapidTools) até especificações inteiras de plataformas independentes de dispositivos (especificação J2ME). Estas soluções oferecem grande flexibilidade
no desenvolvimento de aplicações. No entanto, esbarram no problema da portabilidade
destas interfaces para os diversos dispositivos.
Inserção de código. A descrição também deverá permitir a marcação de pontos de processamento da aplicação, onde código externo deverá ser inserido pelo projetista (usuário
da ferramenta). Estas marcações podem ser parte da aplicação como um todo (isto é, será
a mesma para todos os dispositivos) ou podem ser especı́ficas para determinado dispositivo.
Uma ferramenta que não possui esta caracterı́stica tem aplicabilidade restrita. É
importante permitir que o projetista possa inserir código próprio. Isto dará mais versatilidade à ferramenta, permitindo que o desenvolvedor possa aplicá-la em várias situações.
Esta propriedade é encontrada em várias tipos de aplicações (em toda a área de
computação, não só a móvel) sob a forma de plugins instaláveis ou similares. É uma
maneira bastante conveniente de estender o escopo de aplicações em geral. Para o caso da
aplicações baseadas em linguagens de marcação, têm sido utilizados scripts. Dependendo
da situação, estes scripts podem executar no próprio cliente ou no ambiente do servidor.
Interface aberta. O código externo poderá ser inserido utilizando uma linguagem particular ou através de tecnologias de componentes de software (objetos). No caso de uma
linguagem, deverá ser fornecido ao projetista um método o mais uniforme possı́vel para
incluir seu código, seja para dispositivos móveis ou para o sistema fixo. Uma linguagem
já existente, adaptada à aplicação, poderia ser utilizada.
Tecnologias de componentes permitem que o desenvolvedor possa usar seu ambiente de desenvolvimento preferido para escrever seu código e oferecem uma arquitetura
muito conveniente para aplicações distribuı́das e multi-camadas. CORBA, COM e JavaBeans são os principais representantes destas tecnologias. Porém estas tecnologias ainda
não podem ser aplicadas diretamente no desenvolvimento de aplicações para dispositivos
móveis. Os mecanismos necessários à invocação destes objetos ainda é muito complexo
para fazerem parte da maior parte das plataformas (embora o WindowsCE, a partir de sua
versão 3.0, já possua suporte à COM). Apesar disso, as especificações de definição de
interfaces e técnicas de programação por contrato utilizadas por estas tecnologias podem
ser bastante úteis.
Pode-se ainda utilizar uma linguagem intermediária, a partir da qual seria gerado
código adequado à plataforma. A princı́pio poderia ser usado um subconjunto de qualquer
linguagem de programação.
Uma outra opção, que é cada vez mais promissora, é utilizar a linguagem Java.
Sua caracterı́stica de portabilidade e o surgimento da plataforma J2ME permitem que o
desenvolvedor utilize a mesma linguagem tanto para os dispositivos móveis quanto para
os sistemas fixos.
Sincronização de aplicações. A ferramenta dever prover facilidades para a criação de
mecanismos de sincronização, como por exemplo a geração de stubs, para o caso de
aplicações off-line. Tais facilidades também deverão existir para a criação da aplicação
correspondente no sistema central fixo.
Este aspecto de sincronização tem sido ignorado pela maior parte das ferramentas
disponı́veis atualmente. Apenas aquelas voltadas exclusivamente para PDAs possuem,
em alguns casos, tais facilidades. Mesmo que no futuro exista uma alta disponibilidade de redes de comunicação sem fio, é importante ter mecanismos de sincronização de
aplicações off-line, principalmente por questões de compatibilidade com dispositivos que
não disponham deste acesso on-line (que em geral são mais baratos).
Suporte a protocolos. Os protocolos de comunicação mais populares devem estar disponı́veis para a criação de aplicações on-line, como os protocolos da arquitetura TCP/IP
e WAP. Mecanismos que permitam incorporar outros protocolos de comunicação são altamente desejáveis.
TCP/IP e WAP são os principais padrões no que refere-se a protocolos de
comunicação de dados. Não é possı́vel imaginar uma ferramenta que não seja capaz
de dar suporte a eles. Por outro lado, é importante que seja possı́vel a inclusão de suporte
a novos protocolos. Em breve deverão estar disponı́veis equipamentos suportando Bluetooth e 3G que provavelmente levarão a novas aplicações que por sua vez demandarão
ferramentas que suportam estes protocolos.
Importação de dados. Deve ser possı́vel adquirir dados e conteúdo de fontes diversas
como XML, bancos de dados e protocolos de aplicação da Internet. Mecanismos que
permitam a inclusão de outras fontes são altamente desejáveis.
Informações podem estar armazenadas sob diversas formas, e a grande promessa
da computação móvel é a possibilidade de acessar estas informações a qualquer momento,
a qualquer lugar. Daı́ a importância de não limitar o acesso a dados e, mais ainda, de
oferecer meios para incorporar à ferramenta o acesso a novas fontes de dados.
Uma forma cada vez mais aceita para troca de dados é a utilização de XML.
Através da geração de DTDs contendo a descrição dos dados, é possı́vel obter um documento auto-contido para intercâmbio de informações. Já existem inclusive propostas
de linguagens de consulta a dados contidos em documentos XML.
Extensibilidade. A ferramenta deve ser extensı́vel, possibilitando que novas interfaces,
novas aplicações e novos dispositivos sejam incorporados facilmente.
A área de computação móvel é muito ativa. Muito ainda está sendo desenvolvido e
poucos padrões existem realmente. Seria muito interessante a possibilidade de acrescentar
à ferramenta novas opções de desenvolvimento, sem ter que reescrevê-la novamente. Aqui
também a capacidade de instalação de plugins e tecnologias de componentes de software
aparecem como opções bastante apropriadas.
Verificação da aplicação. Deve-se prever facilidades para a verificação da aplicação
sendo gerada. Por exemplo, um modelo como um grafo ou uma máquina de estados finitos poderia ser gerado. Desta forma o projetista poderá avaliar o comportamento desta
aplicação e suas propriedades. A própria ferramenta poderá realizar tal verificação, ou
exportar em uma representação capaz de ser analisada por outra, desenvolvida por terceiros.
Esta facilidade será muito importante para projetos grandes ou com requisitos
rı́gidos quanto à correção do fluxo, onde vários estados podem ser atingidos dentro
da aplicação. Um exemplo seria uma aplicação bancária. Através de mecanismos de
verificação, o projetista poderá atestar a correção do projeto ou, em caso contrário, descobrir erros.
Depuração de aplicações. Um aspecto importante são funcionalidades para depuração
de aplicações. Recursos como emuladores, depurador passo-a-passo e visualizador de
estado da aplicação são muito úteis, juntamente com o requisito anterior.
Qualquer projeto deve passar por testes de aceitação, para os quais devem existir recursos que auxiliem o projetista. Ao permitir a inclusão de pontos de verificação
(checkpoints) ou parada (breakpoints), onde o estado da aplicação possa ser visto ou analisado, a ferramenta possibilita a redução do tempo de desenvolvimento. Estes recursos
estão presentes na grande maioria dos ambientes de desenvolvimento integrado de várias
plataformas, principalmente para as redes fixas.
No caso de dispositivos móveis, emuladores mostram-se bastante úteis. Permitem
que testes sejam executados localmente, ainda no ambiente de desenvolvimento, além
de serem capazes de oferecer recursos extras (não presentes nos dispositivos reais) que
facilitem a depuração.
A geração de históricos (logs) de operação também podem contribuir para
a depuração de aplicações, além de aumentar a confiabilidade destas ao permitir a
monitoração de atividades.
Permitir recursos de internacionalização. Deve ser possı́vel oferecer meios para que
aplicações possam ser entregues em outros idiomas sem grande esforço.
Uma vez que no mundo móvel as informações podem ser acessadas de qualquer
lugar, passa a ser importante oferecer recursos de internacionalização. A detecção automática de idiomas preferenciais é suportada na Internet, por exemplo, mas um recurso
que permita escolher o idioma (entre alguns previamente disponibilizados e suportados)
seria muito interessante.
Curva de aprendizado aceitável. A ferramenta não deve exigir um “longo” treinamento para a sua utilização. Este é um requisito ligado à usabilidade. A interface da
ferramenta deve ser intuitiva o suficiente para que o projetista possa usá-la facilmente,
promovendo a retenção do conhecimento associado à sua utilização.
5.5.2. Utilização de RFID
O Auto-ID Center [Auto-ID Center] é um consórcio de empresas que tem como objetivo
propor um novo código de produto eletrônico (EPC – Electronic Product Code) baseado
em etiquetas de RFID, que é uma evolução do atual código de barras. O EPC é um
número formado por um cabeçalho e três conjuntos de dados. O cabeçalho identifica a
versão do EPC; o primeiro dado o EPC Manager, tipicamente o fabricante do produto,
como por exemplo, a AmBev; o segundo dado o tipo tipo de produto, como por exemplo,
uma lata de guaraná Antartica de 330 ml, modelo XYZ; e o terceiro dado um número
serial, único para aquele produto. O Auto-ID Center propôs EPCs de 64 e 96 bits, tipos 1
e 2 respectivamente. A figura 22 mostra um EPC tipo 1.
Figura 22: Formato do EPC tipo 1 com 64 bits
Com um EPC de 96 bits é possı́vel identificar até 268 milhões de fabricantes, cada
um com 16 milhões de produtos diferentes, e cada produto com até 68 bilhões de números
seriais. Isto é mais do que suficiente para todos os produtos fabricados hoje em dia e nos
próximos anos.
Tipicamente etiquetas ativas e semi-passivas, e de leitura-escrita tendem a ser usadas em produtos e aplicações de maior “valor”.
Num cenário onde cada objeto tem uma etiqueta RFID, estações de leitura irão obter continuamente um fluxo de identificadores. Um problema importante será o gerenciamento de todos esses dados, possivelmente numa escala global. O gerenciamento inclui
o processamento, filtragem, correção, armazenamento, nomeação, distribuição, atuação
e outras atividades relacionadas com os dados lidos pelas estações de leitura. Esses dados podem ser representados em PML – Physical Markup Language [Auto-ID Center]
baseada em XML.
5.5.3. Serviços baseados na localização de unidades móveis
A evolução das redes de comunicação sem fio tem possibilitado a comunicação mais
flexı́vel para as pessoas e aumentado consideravelmente o acesso a redes de serviços.
Com o desenvolvimento destas redes e o aumento da mobilidade surge uma nova necessidade que é acessar serviços dependentes da localização do usuário. Infelizmente, tecnologias de computação móvel atuais possuem problemas relacionadcs com a
comunicação sem fio, portabilidade e mobilidade [Kisteler and Satyanarayana, 1992,
Imielinski and B., 1994, Matrsh et al., 1993]. Neste caso em particular, ainda existe o
problema da falta de interoperabilidade entre os diversos sistemas de interoperabilidade
móvel.
Serviços baseados na Localização ou LBSs (Location Based Services) permitem
que usuários móveis utilizem serviços baseados na sua posição ou localização geográfica.
O objetivo dos serviços baseados na localização é fornecer aos usuários informação que
seja dependente de sua localização, tais como serviços de emergência, informações de
tráfego, bancos, restaurantes entre outros.
Um sistema baseado na localização faz uso da localização do usuário, que pode
ser fı́sica ou semântica. A localização fı́sica é definida por algum sistema de coordenadas
e a localização semântica especı́fica a localização dentro de um contexto mais amplo,
integrando inclusive diferentes fontes de informação.
Uma métrica importante nesse contexto é a qualidade de serviço a ser oferecido, que implica, dentre outras coisas em diferentes tipos de adaptação. O processo de
adaptação pode ser feito através de polı́ticas.
O que é um LBS. LBS é usado para definir e prover serviços baseados na posição geográfica de um dispositivo móvel. Normalmente um LBS é um serviço em tempo real
que pode utilizar o perfil definido pelo assinante para enviar a informação mais adequada naquele momento e local. Deste modo, um LBS pode fornecer informações geopersonalizadas ajudando as pessoas com itinerários e condições de trânsito, localizando
postos de gasolina ou restaurantes, providenciando socorro em caso de emergência, gerenciamento de frotas, rastreamento de cargas e recuperação de veı́culos roubados, e vários
outros serviços.
Os serviços baseados em localização estão ainda em desenvolvimento e existem
muitas questões que necessitam ser consideradas. Os principais problemas a serem tratados podem ser divididos em três áreas: rede, localização do dispositivo e as funcionalidades fornecidas por esses dispositivos. Redes internas e externas possuem caracterı́sticas
diferentes como largura de banda e área de cobertura, além de protocolos diferentes. A
localização do usuário pode ser fornecida pela própria rede, neste caso utilizando diferentes métodos como Cell ID, E-OTD, TOA, e AOA, ou pelo próprio usuário, como
GPS. Os dispositivos usados para enviar e receber informações possuem displays e periféricos de entrada e saı́da com diferentes tamanhos e funcionalidades, que dificultam
a determinação de um formato padrão de funções e dados. Estes pontos são predominantemente tecnológicos dependendo do desenvolvimento e implementação do estado da
arte.
Uma questão importante em serviços baseados na localização é a segurança da
informação pessoal. Existem duas questões que necessitam ser consideradas. A primeira
é quem tem acesso a informação pessoal de um usuário e a segunda como garantir a
integridade e sigilo da informação de localização do usuário.
Requisitos para criar um LBS. Alguns requisitos são necessárias para prover LBS
aos usuários. Os requisitos estão relacionados com o dispositivo móvel, o provedor, o
protocolo da rede fio, e o método para determinar a localização da unidade móvel.
Dispositivo móvel. Um dispositivo móvel é formado hardware e software, incluindo um
sistema operacional e aplicações. Através desse conjunto, usuários são capazes de acessar serviços de informação e entretenimento através de uma arquitetura cliente/servidor
móvel. Entretanto, um sistema cliente/servidor móvel deve se adaptar a ambientes diferentes.
Provedor. É efetivamente a entidade responsável por prover o serviço para usuários. Os
provedores podem ser especı́ficos, ou seja, oferecerem serviços em um dado segmento,
atuarem numa dada região geográfica, atenderem requisições vindas de redes especı́ficas
e, permitirem enviar respostas de acordo com o perfil do usuário.
Protocolo da rede sem fio. Protocolos da rede sem fio especificam como os dispositivos portáteis podem acessar a Internet, incluindo e-mail, Web, newsgroups e IRC (Internet Relay Chat). As redes disponı́veis fornecem acesso a serviços de informação para
usuários através de protocolos, assim como repassando ao provedor a informação de sua
localização atual. WAP [WAP Forum] e SIM Application Toolkit [Vedder] são alguns
exemplos de protocolos que estão atualmente disponı́veis.
Método para determinar a localização da unidade móvel. Com o uso das redes sem fio,
provedores podem oferecer serviços tais como informação e entretenimento a usuários.
No entanto, os serviços oferecidos não serão baseados na localização do usuário, uma
vez que a rede ou os dispositivos atuais não fornecem a sua localização. Para saber
a localização de um dispositivo móvel, algumas modificações devem ser feitas na re-
de, ou no dispositivo ou em ambos. Possivelmente o custo para instalar um sistema de
localização em uma rede sem fio será maior que o de instalar no próprio dispostivio.
A melhor solução para o problema pode ser uma combinação das duas dependendo do
cenário que se tiver [Bourrie, 2000].
As soluções para determinar a localização do usuário podem ser divididas em dois
grupos: baseadas no dispositivo (handset-based ) e baseadas na rede (network-based ).
Soluções de localizações baseadas no dispositivo relacionam a capacidade de
localização que é armazenada no dispositivo ou no SIM (Subscriber Identity Module
card ). Esse tipo de mecanismo de localização requer um novo terminal, um novo SIM ou
ambos. Na prática, isso significa que uma vez que o sistema tenha sido instalado, o assinante terá de trocar seu dispositivo ou SIM para beneficiar dele. Exemplos de soluções
baseadas no dispositivo são A-GPS (Assisted Global Positioning System), SIM toolkit e
E-OTD (Estimated Observed Time Difference).
Por outro lado, soluções de localização baseadas na rede não requerem que a capacidade de localização seja construı́da dentro do dispositivo. Exemplos de soluções dessa
categoria incluem CGI-TA (Cell Global Identity and Timing Advance), UL-TOA (Uplink
Time Of Arrival) e AOA (Angle Of Arrival).
Serviços baseados na informação de localização. Os serviços baseados na localização
de unidades móveis são categorizados pelo tipo de aplicação [Swedberg, 1999]. A figura 23 mostra a árvore de serviços baseados na localização, em evolução segundo as
categorias discutidas a seguir.
Serviços de Localização Sem Fio
Trigger Service
Faturamento Sensitivo
a Localização
Serviços de Propaganda
Automatizado
Serviços de Informação
Baseados na Localização
Serviços de Rastreamento
Serviços de Assistência
"Onde eu estou/onde fica..."
Serviços
Gerenciamento de Frota
Notificação de Serviços de
Emergência
Serviços de Navegação
e Tráfego de Veículos
Encontrando Pessoas
Outras Informações
Rastreamento de Bens
Assistência Roadset
Figura 23: Árvore de serviços baseados na localização
Serviços de informação. Serviços de informação fazem uso de um banco de informações
onde a informação é filtrada de acordo com a posição relativa de um usuário e as
aplicações que ele ou ela tenha selecionado. Exemplos de serviços de informação incluem: páginas amarelas baseadas na localização (yellow pages), eventos e atrações (por
exemplo: “O que está acontecendo hoje na cidade próximo daqui?”).
Serviços de rastreamento. Serviços diferentes podem usar informação baseada na
localização para rastrear dispositivos móveis, para fornecer segurança, prevenir roubo,
facilitar entrega, entre outras aplicações. Exemplo desse serviço incluem o rastreamento de veı́culos roubados, ajudando paramédicos a localizar pessoas rapidamente em uma
situação de emergência, e dando um serviço de socorro ou loja de concerto de automóvel
a localização de um motorista em necessidade (falta de gás, pneu furado, bateria descarregada...).
Rastreamento de veı́culos [Modulo, 2000], ou sistema de localização automática
de veı́culos (no inglês AVL), é uma tecnologia que permite acompanhar em um mapa digital a movimentação de um veı́culo, enviar mensagens “de” e “para” o veı́culo, e controlar
equipamentos a bordo do mesmo.
Gerenciamento de recursos. Aplicações de gerenciamento de recursos são usadas para
gerenciar a logı́stica de frotas de veı́culos e carga. Exemplo de gerenciamento de recursos
incluem gerenciamento de frota de táxi, o controle de containers de alimentos e a alocação
de recursos.
Navegação. Aplicações de navegação são usadas para informar assinantes como eles
podem melhor se movimentarem de um ponto X a um ponto Y. Aplicações desse tipo
podem ser adaptadas a veı́culos ou pedestres.
5.5.4. Aplicação automotiva
O carro a ser fabricado, nos próximos anos, terá uma rede de comunicação de dados capaz de se comunicar com outros elementos computacionais no ambiente por onde trafegar.
Pensando nisso, existem projetos sendo desenvolvidos e avaliados onde um carro “passa”
por uma loja de música e obtém, por exemplo, arquivos MP3 a serem tocados no sistema
de entretenimento do carro. Outras possibilidades que podemos imaginar nesse cenário
é o motorista obter informações sobre condições de tráfego nas rotas existentes até um
determinado destino, e avisos sobre condições das vias de acesso. O motorista também
pode enviar mensagens eletrônicas através de um sistema de voz, e fazer reserva e pagar
o estacionamento. Uma ilustração desse cenário é mostrado na figura 24. Este é o caso
do projeto entre a Atheros Communications [Atheros] e o Centro de Pesquisa e Tecnologia da DaimlerChrysler que usa uma infra-estrutura de comunicação sem fio para trocar
dados entre o carro e uma estação de informação e computação (info/computing station).
O carro usado nesse protótipo possui um rádio, tocador de CD, sistema de navegação,
telefone celular operado através de comandos de voz, e um sistema computacional que
comunica com estações disponı́veis pela cidade. O usuário desse sistema pode facilitar
solicitações do tipo “Eu quero escutar a música ‘Festa’ da Ivete Sangalo” e o sistema se
encarrega de buscar e tocar para ele.
É importante mencionar que a tecnologia usada no carro está totalmente disponı́vel, incluindo a infra-estrutura de comunicação sem fio, que neste caso é baseada
no padrão IEEE 802.11b, usada em redes locais sem fio em casas, escritórios, fábricas e
espaços públicos. O software, juntamente com as informações desejadas, é que criam os
serviços interessantes para os usuários.
A ASTM International [ASTM International] propôs um padrão para aplicações
veiculares através de redes sem fio, chamado DSRC (Dedicated Short Range Communications), que usa o padrão IEEE 802.11a, projetado para ambientes externos. Esse padrão
usa a faixa de freqüência de 5 GHz, com taxas de transmissão em torno de 50 Gbits/s, e
um alcance tı́pico de algumas centenas de metros. Testes feitos nos Estados Unidos pela
Federal Highway Administration mostram que o padrão funciona muito bem num carro
(a) Mercedes-Benz C320 do protótipo
(b) Cenário do projeto InfoFueling Car
Figura 24: Protótipo do projeto para equipar um carro com um sistema de acesso a informações e computação através de uma infra-estrutura de
comunicação sem fio
a uma velocidade a mais de 180 km/h. Várias empresas, como Shell, IBM, DaimlerChrysler, Ford, GM, e Toyota, já manifestaram que vão suportar o padrão DSRC criando
estações.
Além de um carro “normal”, esse serviço pode ser estendido para outros tipos de
veı́culos como um táxi. No caso de um serviço de táxi, existem várias outras possibilidades como escalonamento de um ou mais passageiros para um determinado destino,
escolha em função de um perfil de usuário e/ou motorista, acesso a serviços da Internet,
etc.
5.5.5. Serviços via voz
Atualmente, a Internet possui uma enorme quantidade de serviços e conteúdos voltados
para usuários de computadores providos de monitor, teclado e mouse. Estas aplicações e
serviços, porém, não são facilmente acessı́veis a usuários de celulares, palmtops, PDAs
e outros dispositivos computacionais móveis. Isto faz com que o mercado de aplicações
e serviços móveis seja muito atraente, necessitando-se de interfaces que facilitem o uso
dessas aplicações, ou seja, as aplicações móveis via voz.
Aplicações via voz são aplicações em que entradas e/ou saı́das são feitas através
da fala ao invés de uma interface gráfica. A aplicação em si pode estar localizada no
próprio dispositivo ou em algum servidor na Internet. A aplicação pode receber como entrada de dados a voz do usuário, reconhecer e digitalizar a voz, ou pode haver uma camada
intermediária entre a aplicação e o usuário que receba a voz, faça o reconhecimento e a
digitalização, e repasse o texto para a aplicação. O mesmo pode acontecer com a saı́da de
dados, que pode já sair da aplicação no formato de voz, ou ter uma camada intermediária
que faça a transformação de texto para voz. Pode-se pensar que fazer a camada intermediária entre aplicação e usuário para a transformação da voz em texto e vice-versa seria
a melhor forma de se aproveitar todos os serviços e conteúdos já existentes na Internet.
Porém, a forma com que os dados via voz são obtidos ou fornecidos é diferente da forma
com que os dados textuais são obtidos ou fornecidos, acarretando em uma diferença entra
as duas interfaces. Isto faz com que a simples tradução dos dados, por exemplo, de HTML
para voz, não seja a melhor forma de se criar uma aplicação via voz, devendo-se encontrar uma nova forma de se desenvolver aplicações para este fim. Um exemplo de que a
tradução direta não é uma boa solução é o portal visual do grupo UOL (www.uol.com.br),
o qual possui centenas de opções de navegação. A apresentação destas opções via voz
sobrecarregaria o usuário de tal forma que ao fim das opções fornecidas, dificilmente o
usuário se lembraria de todas elas. A maioria das aplicações Web via voz deverão ser
reprojetadas para operar conjuntamente com as aplicações textuais existentes atualmente.
Tipos de aplicações via voz. As aplicações via voz para Web podem ser divididas em
dois grupos:
1. Consultas simples: o usuário se conecta à aplicação e requisita informações a
serem encontradas na Web. O sistema possui uma série de menus, instruções e
opções. O usuário, através da voz, fornece as entradas desejadas que são executadas pelo sistema, retornando uma ou mais respostas ao usuário. Alguns exemplos
são: informação de tempo, de telefones, de endereços e de localização de ruas.
2. Transações: o usuário se conecta à aplicação e executa uma transação com um
serviço disponı́vel na Web. O sistema pode pedir que o usuário forneça um identificador e a respectiva senha. Da mesma forma que as consultas simples, o sistema possui uma série de menus, instruções e opções que podem ser escolhidas
pelo usuário para a execução da transação. De acordo com as opções escolhidas pelo usuário, as informações apropriadas são armazenadas na base de dados da aplicação. Alguns exemplos são reservas de vôo, vendas automatizadas e
transação de ações.
Os sintetizadores de fala são desenvolvidos para produzir como saı́da sons naturais. Entretanto, a fala natural humana é um processo complexo, que necessita não
somente das palavras, mas da forma de agrupá-las e pronunciá-las. Os sintetizadores simples não possuem esta capacidade, mas estão sendo desenvolvidas linguagens para tornar
a sintetização mais parecida com a fala humana.
Linguagens Utilizadas. Atualmente, há duas linguagens principais de desenvolvimento
dessas aplicações móveis via voz, o VoiceXML [VoiceXML Forum, 2000] e a JSML (Java
Speech Markup Language) [Hunt, 2000].
VoiceXML. Um grupo de pesquisa, formado por grandes empresas fabricantes de dispositivos móveis de comunicação, desenvolveram o VoiceXML (Voice eXtensible Markup
Language), uma linguagem projetada para a criação de diálogos com sintetização da fala,
digitalização de sons e reconhecimento de voz e entrada de teclado DTMF, o teclado de
telefone padrão. O VoiceXML é um padrão aberto, que pode ser estendido e adaptado aos
da organização que quiser adotá-lo.
Um exemplo de uma aplicação usando o VoiceXML é o “Olá Mundo” mostrado a
seguir:
<?xml version="1.0"?>
<vxml version="1.0">
<form>
<block>Olá Mundo!</block>
</form>
</vxml>
Em geral, as aplicações baseadas em XML são facilmente copiadas, modificadas e desenvolvidas. Isto faz com que os desenvolvedores rapidamente criem protótipos das
aplicações, reusem seus código, criem nova aplicações. A facilidade da criação de
aplicações e serviços utilizando a tecnologia VoiceXML é uma de suas grandes vantagens.
A arquitetura de uma aplicação VoiceXML é apresentada na figura 25. O servidor de conteúdo processa as requisições da aplicação cliente, o interpretador de VoiceXML, através do interpretador de contexto VoiceXML. Respondendo estas requisições,
o servidor produz documentos VoiceXML, que são processados pelo interpretador de VoiceXML. A implementação local é controlada pelo interpretador de contexto VoiceXML
e pelo interpretador de VoiceXML. A implementação local gera eventos em resposta as
ações do usuário ou aos eventos do sistema.
A VoiceXML é uma linguagem que minimiza as interações cliente servidor, separa
a camada de interface com o usuário da camada de negócios, tem servidores portáveis
devido à implementações locais, e é fácil de usar para interações simples, provendo ainda
suporte a diálogos complexos.
JSML. A empresa SUN desenvolveu um ambiente para elaboração de aplicações com
interface via voz. Primeiramente, foi criada uma gramática, a JSGFS (Java Speech Grammar Format Specification) [Sun, 1998b], regular e independente de plataforma. Ela usa
uma representação textual que pode ser lida e escrita, tanto por computadores quanto por
Figura 25: Modelo de Arquiteruta do VoiceXML
desenvolvedores, e pode ser incluı́da em um código Java. Em seguida, foi desenvolvido um conjunto de bibliotecas baseadas na JSGFS, denominado de JSAPI (Java Speech
API) [Sun, 1998a]. Esta API permitir que os desenvolvedores incorporem a tecnologia da
fala nas interfaces de usuário nas aplicações Java e nos applets Java. Por fim, foi criada
uma linguagem de marcação de texto, a JSML (Java Speech Markup Language), uma linguagem de formatação de texto usada por aplicações para traduzir entrada de texto para
voz sintetizada.
JSML define elementos que descrevem a estrutura de um documento, provê a
pronúncia de palavras e frases indicando a pontuação e a entonação de voz, além do controle de outras caracterı́sticas importantes da fala. JSML foi desenvolvida para ser simples
de aprender e de usar, ser portável, sendo independente de plataforma e de sintetizadores
de voz e aplicável a uma vasta quantidade de linguagens. Um exemplo de elementos da
gramática da linguagem JSML é mostrado a seguir. Neste exemplo, será pronunciada uma
sentença, sendo que a palavra “podem” será enfatizada.
<SENT>Computadores <EMP>podem</EMP> falar.</SENT>
Os objetivos da JSML são:
• Prover um controle consistente da saı́da de voz para os sintetizadores de fala;
• Ser possı́vel usar a JSML para produzir fala como saı́da de um texto ou outro
conteúdo, de variadas aplicações, domı́nios e contextos;
• Ser internacional: deve gerar saı́das em tantas lı́nguas quanto possı́vel;
• Ser simples para escrever e processar documentos em JSML;
• Documentos JSML deve ser legı́veis para seres humanos.
Os passos básicos do processo JSML podem ser vistos na figura 26. A aplicação
é responsável por converter as informações da origem para um texto JSML, usando
informações adicionais sobre o conteúdo e a origem da informação. Tendo um texto
JSML como entrada, o sintetizador de voz cria os sons, fornecendo-os para a saı́da de
voz, que irá pronunciar as frases para o usuário.
Figura 26: Passos do processo JSML
Exemplos de aplicações móveis via voz. As empresas Oracle e Motorola desenvolveram conjuntamente o servidor Oracle Portal-to-Go [Oracle, 1999]. Este servidor permite
que as operadores de telefonia móvel e os provedores de conteúdo na Internet desenvolvam aplicações utilizando as tecnologias VoiceXML e WAP [WAP Forum] e a disponibilizem rapidamente ao acesso público por telefonia. Foram apresentados alguns exemplos
de aplicações do produto desenvolvido, como o controle de máquinas de música ou de
café. Segundo as empresas, uma das formas de atuação desta tecnologia poderia ser a
detecção a partir das máquinas da presença ou da aproximação de um telefone móvel. A
partir desta detecção haveria uma comunicação entre o servidor da máquina e o telefone móvel e um controle do usuário, utilizando VoiceXML ou WAP, sobre a máquina em
questão.
Jogos também estão sendo desenvolvidos utilizando a tecnologia VoiceXML. A
página Web Colloquial [Dove et al., 2000] coloca a disposição três jogos: Sally Rand, the
Fan Dancer, The Magic Eight Call e SpeechSmuggler. Segundos seus criadores, estes
jogos são uma experiência de contato com esta nova tecnologia, para um uso futuro e
melhorado da mesma. Para o desenvolvimento e armazenamento desses jogos, foi utilizado um serviço da empresa Tellme Network [Tellme Network], o Tellme Studio [Studio].
Este serviço permite a construção, testes, publicação e acesso fonado ao servidor. Todo
este processo é gratuito, sendo fornecido inclusive um número de telefone para o acesso.
A operadora de telefonia fixa brasileira Telemar [Telemar] lançou no inı́cio de
2001 o Vocall [Vocall, Frucht, 2001], um portal capaz de enviar e-mails falados. Este
portal utiliza softwares de reconhecimento e digitalização de voz para transformar o texto
falado em texto escrito.
A empresa Parlance Corporation criou o serviço denominado NameConnector [Corporation], que fica ligado diretamente a central telefônica PBX da empresa através
de quatro linhas analógicas. Este é um serviço de auto-atendimento que conecta a pessoa
diretamente no ramal desejado. Ele também pode ser ligado sistema de correio eletrônico
da empresa, podendo-se enviar e ler mensagens através do telefone.
5.5.6. Serviços de comércio eletrônico móvel
Serviços e aplicações bem-sucedidas oferecidas através da Internet, em geral, para
ter sucesso similar em M-Commerce (comércio eletrônico móvel), precisam levar em
consideração as peculiaridades da computação móvel e dos dispositivos sem fio, assim
como as necessidades dos usuários e o diferente uso do dispositivo móvel. Os usuários
precisam de serviços baseados em localização (por exemplo, mapas, restaurante mais
próximo), assim como, serviços e informações personalizadas de forma segura e fácil.
As limitações da rede móvel e dos terminais móveis, as leis que regem o comércio
e as necessidades do usuário são fatores que afetam as aplicações e serviços de MCommerce. No entanto, da mesma forma o M-Commerce impõe suas influências sobre
estes fatores exigindo que os mesmos também sejam alterados e adequados para viabilizálo. Por exemplo, novas leis devem definir a proteção a usuários que não querem ter sua
localização disponibilizada, aplicações e serviços devem passar a considerar a localização
dos usuários.
Aplicações de M-Commerce aproveitam as vantagens da comunicação móvel
para oferecer aos consumidores e negociantes benefı́cios adicionais em oposição as
aplicações tradicionais de e-commerce. Veremos a seguir as principais caracterı́sticas
destas aplicações.
Conhecimento da Localização. Em computação móvel, o conhecimento da localização
fı́sica de um usuário em qualquer momento particular é primordial para a oferta de
serviços relevantes. A localização do dispositivo móvel está disponı́vel no operador da
rede sem fio mas também pode ser obtida com o uso de sensores ou tecnologias tais como o GPS. Existem muitos exemplos de aplicações de comércio eletrônico baseados em
localização, temos: anúncios direcionados geograficamente (por exemplo, todos próximo
de um restaurante fast-foot ganham cupons eletrônicos grátis para a compra de um sanduı́che), gerenciamento de frota, rastreamento de veı́culo, controle de tráfico, serviços de
emergência, etc.
Adaptativo. Aplicações de M-Commerce devem ser adaptadas ao ambiente de seus clientes. A adaptação é possı́vel a partir de várias dimensões incluindo o tipo de dispositivo
em uso, a largura de banda disponı́vel, a localização e o tempo.
Ubı́qüo. As comunicações móveis induzem o comércio eletrônico a tornar disponı́veis
serviços e aplicações de e-commerce em qualquer lugar e a qualquer momento. Através
de dispositivos móveis, tais como, telefones móveis de 3G, os usuários podem ser encontrados a qualquer momento, independente de sua localização. A computação móvel torna
possı́vel que os usuários sejam notificados imediatamente sobre eventos particulares.
Personalização. As informações, aplicações e serviços disponı́veis na Internet hoje são
enormes. Deste modo, é importante que os usuários recebam informações relevantes.
Neste caso, a personalização é uma questão chave no uso de dispositivos móveis, devido
as limitações de interface com usuário em termos de tamanho, resolução e navegação.
Estudos mostram que cada clique adicional reduz a probabilidade de transação em 50%.
Assim, aplicações de M-Commerce devem ser personalizadas o suficiente para representar informações de forma compacta, atrativa e otimizar os caminhos de interação, capacitando o usuário a alcançar os serviços desejados como menos cliques possı́veis.
Broadcasting. O broadcasting ofecere um meio eficiente para disseminar informação a
uma ampla população de consumidores. Este modo de operação pode ser usado para
entregar informação de interesse comum a muito usuários, tais como, preço de estoque,
previsão de tempo ou para propaganda.
5.5.7. Jogos
Jogos para dispositivos móveis começaram a ser disponibilizados para telefones celulares, usando uma interface textual e monocromática. Atualmente, já começaram a surgir
protótipos de jogos multi-jogadores para telefones celulares e PDAs. Por exemplo, a empresa coreana Mobile Game Korea [MobileGame Korea] desenvolveu um card game que
é jogado por pessoas depois que há um “casamento” entre os jogadores usando dispositivos como PDAs e telefones celulares.
O grande problema de jogos multi-jogadores é a infra-estrutura de comunicação
de dados, principalmente em jogos onde a questão de tempo real é importante. Com a
perspectiva de haver em larga escala uma rede tanto fixa quanto móvel de banda larga é
bem possı́vel que jogos multi-jogadores comecem a se popularizar. Recentemente, as empresas Ericsson, Motorola, Nokia e Siemens fundaram o Mobile Games Interoperability
Forum [Mobile Games Interoperability Forum] que tem como objetivo propor uma linguagem para especificar jogos via Internet, inclusive os multi-jogadores. Empresas como
a Terraplay [Terraplay] da Suécia já estão disponibilizando plataformas de desenvolvimento para jogos multi-jogadores.
5.5.8. Perspectivas para aplicações móveis
A chegada de novas infra-estruturas de comunicação sem fio abrirá novas oportunidades para serviços de comunicação, entretenimento e gerenciamento, além de ampliar a
disponibilização de serviços de conteúdo. O telefone celular e o PDA deverão continuar
a evoluir para um terminal móvel com funcionalidades hı́bridas desses dois dispositivos.
Esse dispositivo terá capacidade de navegar na Web, trocar mensagens multimı́dia, ouvir
música, efetuar pagamentos, agendar compromissos ou funcionar como um videogame,
além de oferecer os “velhos” serviços de voz.
Os futuros dispositivos móveis poderão executar diferentes aplicações, como jogos e aplicativos de colaboração. Java e ferramentas associadas devem ter um papel cada
vez mais importante em aplicações para computação móvel.
O novo terminal móvel também deverá ser produzido como um computador
“vestı́vel” (wearable computer). Este equipamento poderá ser dividido em várias partes,
presas ao corpo da pessoa, além de interfaces especı́ficas como visualizadores 3D e sensores especı́ficos. Além das aplicações já mencionadas outras deverão ser desenvolvidas
para este tipo de ambiente.
A utilização dessas tecnologias de forma integrada expandirá ainda mais as possibilidades de aplicações. A personalização será uma caracterı́stica importante. Cada
pessoa poderá utilizar um determinado serviço de acordo com suas necessidades ou preferências. Para isso, será necessário ter mecanismos sofisticados de adaptação e gerência
desses serviços.
Também será comum ter uma aplicação com diferentes aspectos como uma
aplicação de M-Commerce que utiliza um serviço baseado na localização, como mostrado na figura 27.
Figura 27: Aplicação de M-Commerce que utiliza um serviço baseado na
localização
5.6. Conclusão
A Internet móvel do futuro será baseada num modelo centrado em comunicação de dados
(data-centric model ). Essa nova Internet irá evoluir para suportar tanto as aplicações e
serviços tradicionais bem como novas aplicações e serviços que tragam facilidades aos
usuários móveis. Redes de acesso sem fio em banda larga e redes fixas de alta velocidade
formarão a nova estrutura desse ambiente. O aumento do uso da comunicação sem fio
fará com que novos dispositivos, aplicações e serviços sejam projetados, sejam eles de
finalidade geral ou orientados a um segmento especı́fico.
Esse novo paradigma computacional irá trazer vários desafios. A mobilidade entre diferentes tipos de rede deve ser suportada. Possivelmente haverão redes sem fio com
diferentes protocolos como IEEE 802.11b e Bluetooth. Um grande desafio será projetar
sistemas interoperáveis entre essas diferentes infra-estruturas. Serviços devem ser disponibilizados de forma consistente em redes e dispositivos diferentes. Isto afeta as arquiteturas de serviços e os protocolos fim-a-fim, possivelmente através de um middleware,
devem fazer adaptar o conteúdo da informação a ser enviada para o usuário. Além disso,
o desempenho será uma questão crı́tica e deve ser analisada em todo o sistema.
Todas estas questões trazem uma grande oportunidade para que possamos fazer
pesquisa e desenvolvimento nesta área que está crescendo O projeto de serviços para as
novas infra-estruturas de comunicação sem fio é o grande desafio para o sucesso desse novo paradigma computacional e, onde haverão grandes oportunidades para o paı́s competir
no mercado internacional.
Referências
ASTM International. http://www.astm.org.
Atheros. http://www.atheros.com.
Auto-ID Center. http://www.autoidecenter.org.
Bluetooth Special Interest Group. http://www.verizon.com/.
Bourrie, S. (2000). Location Based Service and Privacy: A brave new world of service or
instrusions? August. http://www.telecoms-mag.com/issue/199910/tcs/location.html.
Brewster, S. and Cryer, P. (1999). Maximising screen-space on mobile computing device.
In In summary proceedings of ACM CHI’99, ACM Press, Addison-Wesley, Pittsburgh.
Carr, N. G. (2003). IT Doesn’t Matter. Harvard Business Review, pages 41–49. May.
Carvalho, S. (2003). TI não importa mais? É o que diz a Harvard. Info Online. 30 de
maio. Disponı́vel em http://info.abril.com.br/aberto/infonews/052003/30052003-4.shl.
Cerf, V. (2000). What will the Internet be like 20 years from now? Time. June.
Chalmers, D. (1999). A survey of quality of service in mobile computing environments.
Corporation, P. http://www.nameconnector.com.
Deshe, O. and Laar, D. V. (1998). Applying perceptual layers to colour code information
in hand-held computing devices.
Dove,
T.,
Carpenter,
B.,
and Morris,
http://www.colloquial.com/VoiceXML/. October.
M.
(2000).
Colloquial.
Dunlop, M. and Crossan, A. Dictionary based text entry method for mobile phones.
http://www.cs.strath.ac.uk/ mdd/research/publications/99dunlopcrossan.pdf.
Friday, A., Davies, N., Blair, G., and Cheverst, K. (1999). Developing Adaptive Applications: The MOST Experience. Journal of Integrated Computer-Aided Engineering,
6(2):143–157.
Frucht, L. (2001). Operadora lança portal capaz de enviar e-mails falados. Info & Tech,
http://www.globo.com/infotech/arquivo/materias/20010105/4spm9x.htm. Janeiro.
Gartner. http://www.gartner.com.
Hix, D. and Hartson, H. R. (1993). Developing User Interfaces: Ensuring Usability
Through Product and Process. John Wiley & Sons.
Hunt, A. (2000). Jspeech markup language. W3C Note. June.
Imielinski, T. and B., B. R. (1994). Mobile Wireless Computing: Challanges in data
management. Communications of the ACM, 10:19–28. October.
Interactive (2000). Interactive Mode. http://http://www.nttdocomo.co.jp/.
Kisteler, J. and Satyanarayana, M. (1992). Disconneted Operation in The Coda File System. ACM Transactions on Computer Systems, 10(1):3–25. February.
Landay, J. (1993). User interface issues in mobile computing. In 4th Workshop on Workstation Operating Systems (WWOS–IV), pages 40–47, Napa, CA, EUA.
Lee, W.-H. and Buszko, D. Application Adaptations to the Mobile Environment. University of Florida Department of Computer and Information Science and Engineering,
http://members.tripod.com/danlee11/mas.htm.
Lehrbaum, R. (2001).
The linux-pda and pda-linux quick reference guide.
http://www.linuxdevices.com/articles/AT8728350077.html. June 7.
Matrsh, B., fred Douglis, and Cárceres, R. (1993). Systems Issues in Mobile Computing.
Technical Report MITL-TR-50-93, Matsushita Information Technology Laboratory.
Microsoft. http://www.microsoft.com.
Mobile Games Interoperability Forum. http://www.openmobilealliance.org/mgif/.
MobileGame Korea. http://mogame.co.kr/eng/about-introduction.htm.
Modulo (2000).
Módulo de Rastreamento de Veı́culos
do Guia Inteligente Publintel - Via Satélite,
Telefonia e
http://www.publintel.com.br/ModuloRastreamento.html.
(AVL)
Rádio.
Nielsen, J. (1993). Usability Engineering. Chestnut Hill, MA, Academic Press.
Noble, B. D., Satyanarayanan, M., Narayanan, D., Tilton, J. E., Flinn, J., and Walker,
K. R. (1997). Agile Application-Aware Adaptation for Mobility. In Sixteen ACM
Symposium on Operating Systems Principles, pages 276–287, Saint Malo, France.
Nolan, N. (1992). Managing End-User Computing. Boston: Nolan, Norton & Co.
Openwave. Application Style Guide: For GSM 900 and 1800. http://phone.com.
Oracle (1999). Oracle portal-to-go and motorola bring advanced services to phones. Telecom’99, http://www.oracle.co.uk/info/news/oct99portal.html. October.
Palm. http://www.palm.com.
RFID. Radio Frequency Identification. http://www.rfid.org.
Rodden, T., Cheverst, K., Davies, N., and Dix, A. (1998). Exploiting Context in HCI
design for Mobile Systems. In Workshop on Human Computer Interaction with Mobile
Devices, Glasgow, Escócia.
Satyanarayanan, M. (1996). Mobile information access. IEEE Personal Communications,
3(1):26–33. February.
Studio, T. http://www.tellme.com/.
Sun (1998a). Java Speech API. October.
Sun (1998b). Java Speech Grammar Format Specification. October.
Swedberg, G. (1999). Ericsson’s Mobile Location Solution. Technical Report 4, Ericsson.
Telemar. http://www.telemar.com.br.
Tellme Network. http://www.tellme.com/.
Terraplay. http://www.terraplay.com/.
Tesler, L. (1991). Networked computing in the 1990s. Scientific American, 265(3):54–61.
September.
Vedder, K. The Subscriber Identity Module (SIM). http://www.scia.org/knowledgebase/
aboutSmartCards/specs.html.
Verizon. http://www.verizon.com/.
Vocall. http://www.vocall.com.br.
VoiceXML Forum (2000). VoiceXML Version 1.0 Specification. May.
WAP Forum. Wireless Application Protocol. http://www.wapforum.org.
Fly UP