computação ubiqua

71
Computação Ubíqua: Princípios, Tecnologias e Desafios Regina Borges de Araujo Departamento de Computação – Universidade Federal de S. Carlos (UFSCar) Caixa Postal 676 – 13565-905 – São Carlos - SP – Brasil [email protected] Abstract. The basic idea behind ubiquitous computing is that computing moves out of the workstation and personal computers to become pervasive in ours day to day lives. Marc Weiser, considered the father of ubiquitous computing, shimmered one decade ago that, in the future, computers would inhabit the most trivial objects: from clothes tags, coffee mugs, light interrupters, pen, watches, etc., in an invisible way to the user. This text discusses some of the main issues and technologies involved in this Weiser´s world, in which we should learn to live with computers and not only interact with them. Resumo. A idéia básica da computação ubíqua é que a computação move-se para fora das estações de trabalho e computadores pessoais e torna-se pervasiva em nossa vida cotidiana. Marc Weiser, considerado o pai da computação ubíqua, vislumbrou há uma década atrás que, no futuro, computadores habitariam os mais triviais objetos: etiquetas de roupas, xícaras de café, interruptores de luz, canetas, etc, de forma invisível para o usuário. Este texto discute as principais questões e tecnologias envolvidas neste mundo de Weiser, em que devemos aprender a conviver com computadores, e não apenas a interagir com eles. Prefácio A convergência das tecnologias de rádio, dos microprocessadores e dos dispositivos eletrônicos digitais pessoais está levando ao conceito de ubiqüidade no qual dispositivos inteligentes, móveis e estacionários, coordenam-se entre si para prover aos usuários acesso imediato e universal a novos serviços, de forma transparente, que visam aumentar as capabilidades humanas. Os termos computação pervasiva, computação ubíqua e computação móvel são, muitas vezes, utilizados como sinônimos por algumas pessoas, entretanto, será visto que eles são conceitualmente diferentes. A computação ubíqua integra mobilidade em larga escala com a funcionalidade da computação pervasiva. O potencial de aplicações da computação ubíqua é limitado apenas pela imaginação - com a conexão, monitoramento e coordenação de dispositivos localizados em casas, edifícios e carros inteligentes, através de redes sem fio locais e de longa distância com alta largura de banda, as aplicações variam desde o controle 45 XXI Simpósio Brasileiro de Redes de Computadores

Upload: samir-m-teixeira

Post on 19-Oct-2015

7 views

Category:

Documents


1 download

TRANSCRIPT

  • Computao Ubqua: Princpios, Tecnologias e Desafios

    Regina Borges de Araujo

    Departamento de Computao Universidade Federal de S. Carlos (UFSCar) Caixa Postal 676 13565-905 So Carlos - SP Brasil

    [email protected]

    Abstract. The basic idea behind ubiquitous computing is that computing moves out of the workstation and personal computers to become pervasive in ours day to day lives. Marc Weiser, considered the father of ubiquitous computing, shimmered one decade ago that, in the future, computers would inhabit the most trivial objects: from clothes tags, coffee mugs, light interrupters, pen, watches, etc., in an invisible way to the user. This text discusses some of the main issues and technologies involved in this Weisers world, in which we should learn to live with computers and not only interact with them.

    Resumo. A idia bsica da computao ubqua que a computao move-se para fora das estaes de trabalho e computadores pessoais e torna-se pervasiva em nossa vida cotidiana. Marc Weiser, considerado o pai da computao ubqua, vislumbrou h uma dcada atrs que, no futuro, computadores habitariam os mais triviais objetos: etiquetas de roupas, xcaras de caf, interruptores de luz, canetas, etc, de forma invisvel para o usurio. Este texto discute as principais questes e tecnologias envolvidas neste mundo de Weiser, em que devemos aprender a conviver com computadores, e no apenas a interagir com eles.

    Prefcio

    A convergncia das tecnologias de rdio, dos microprocessadores e dos dispositivos eletrnicos digitais pessoais est levando ao conceito de ubiqidade no qual dispositivos inteligentes, mveis e estacionrios, coordenam-se entre si para prover aos usurios acesso imediato e universal a novos servios, de forma transparente, que visam aumentar as capabilidades humanas.

    Os termos computao pervasiva, computao ubqua e computao mvel so, muitas vezes, utilizados como sinnimos por algumas pessoas, entretanto, ser visto que eles so conceitualmente diferentes. A computao ubqua integra mobilidade em larga escala com a funcionalidade da computao pervasiva. O potencial de aplicaes da computao ubqua limitado apenas pela imaginao - com a conexo, monitoramento e coordenao de dispositivos localizados em casas, edifcios e carros inteligentes, atravs de redes sem fio locais e de longa distncia com alta largura de banda, as aplicaes variam desde o controle

    45XXI Simpsio Brasileiro de Redes de Computadores

  • de temperatura, luzes e umidade de uma residncia, at aplicaes colaborativas com suporte mobilidade.

    Pesquisas em computao ubqua esto sendo realizadas por pesquisadores do mundo todo em tpicos que vo de prottipos de rede que provem acesso bsico a qualquer tipo de dispositivo sem fio, suporte mobilidade na rede, de forma transparente, segurana, tratamento de contexto, otimizao de espao de armazenamento, largura de banda e uso de energia; formatao, compresso, entrega e apresentao de contedo multimdia que se adapta a diferentes condies de largura de banda e de recursos de dispositivos; at a adaptao da aplicao e da apresentao multimdia aos dispositivos do usurio etc.

    O objetivo deste texto dar uma viso geral das questes envolvidas nesta rea emergente de pesquisa.

    Agradecimentos

    Gostaria de agradecer a todos os meus alunos de mestrado do Programa de Ps Graduao em Cincia da Computao do DC da UFSCar, que esto trabalhando em algumas das questes discutidas aqui, e com quem tive vrias discusses sobre o assunto. Agradecimentos especiais para Taciana Novo Kudo, Richard Werner Nelm e Alessandro Rodrigues da Silva pela contribuio em algumas partes do texto.

    1. Introduo

    A idia bsica da computao ubqua que a computao move-se para fora das estaes de trabalho e computadores pessoais (PCs) e torna-se pervasiva1 em nossa vida cotidiana. Marc Weiser, considerado o pai da computao ubqua, vislumbrou h uma dcada atrs que, no futuro, computadores habitariam os mais triviais objetos: etiquetas de roupas, xcaras de caf, interruptores de luz, canetas, etc, de forma invisvel para o usurio. Neste mundo de Weiser, devemos aprender a conviver com computadores, e no apenas interagir com eles [1].

    Dois cenrios so utilizados para ilustrar o conceito de computao ubqua, as tecnologias envolvidas e os desafios a serem vencidos. O primeiro cenrio descreve o potencial da computao ubqua para aumentar as capabilidades dos profissionais. O segundo cenrio ilustra as diferentes vises que se pode ter de uma mesma aplicao na dimenso da computao ubqua. A apresentao desses cenrios demonstra algumas das questes envolvidas nesta desafiadora rea emergente de pesquisa.

    Cenrio 1. Potencializando as Capabilidades da Jovem Executiva (adaptada de [2])

    Janete a diretora de uma organizao que depende de servios de computao e est participando de uma reunio importante na matriz de sua empresa, em So Paulo. Ela est em uma sala de conferencia com trs colegas de trabalho e dois participantes remotos que

    1 O termo pervasivo no existe no vocabulrio portugus. Entretanto, para evitar confuso com outros termos tambm emergentes na rea, pervasivo ser usado neste texto como a traduo do termo em ingls pervasive, cuja definio dada no texto principal.

    46XXI Simpsio Brasileiro de Redes de Computadores

  • participam atravs de um sistema de videoconferncia por computador. O sistema permite que esta equipe de Janete veja e oua os participantes remotos bem como use um quadro branco compartilhado para edio de documentos e explorao de dados em conjunto. Infelizmente Janete tem que deixar a reunio mais cedo, pois ter que pegar um avio para visitar um fornecedor em Paris. Felizmente ela pode continuar a participar da reunio atravs de seu PDA inteligente. To logo ele (PDA) detecta que ela saiu da sala de reunies, ele redireciona a parte de udio da reunio para o telefone celular dela. Quando ela entra no carro que vai lev-la ao aeroporto, o seu PDA procura por uma tela maior a sua volta e acha a tela embutida atrs do banco do motorista. O PDA ento passa a exibir os fluxos de vdeo da reunio na tela do carro, incluindo as pessoas e o quadro branco compartilhado. Alm disso, a poro de udio da reunio transferida para o sistema de alto-falantes do carro. Conforme o carro se movimenta rumo ao aeroporto, o vdeo se adapta automaticamente para refletir a mudana de qualidade da rede, alterando a sua resoluo.

    Conforme a reunio progride, uma mensagem instantnea mostrada na tela informando Janete sobre um incndio na central de dados da empresa em Pernambuco. Ela toca na tela sensvel a toque sobre a mensagem com o objetivo de discar o numero de telefone do transmissor da mensagem. O transmissor, o gerente da central de dados, relata que o fogo na central danificou seriamente alguns servidores importantes, mas que felizmente os back-ups esto seguramente armazenados em um outro local. Janete decide mudar seus planos e voar para Pernambuco imediatamente para ajudar nos reparos. Ela pede ao gerente da central de dados para enviar a ela um relatrio detalhado dos danos sofridos para que ela possa planejar os reparos. Ela ativa seu agente pessoal de software usando o teclado embutido no carro e solicita ao agente para mudar as suas reservas de vo de Paris para Pernambuco. Ela tambm pede que todos os arquivos referentes configurao da central de dados sejam transferidos para o seu PDA assim que a largura de banda de rede necessria esteja disponvel. O agente rearranja os vos. Alm disso, o agente infere que ela no ser capaz de cumprir seus compromissos em Paris e ento cancela a reserva de hotel usando os servios on-line do hotel, bem como as reunies com o fornecedor atravs do envio de e-mail apropriado de notificao. Assim que Janete sai do carro, o agente pessoal de software salta do computador do carro para o PDA e varre a rea a procura de uma conexo de rede melhor. Conforme ela entra no terminal do aeroporto, o agente detecta uma LAN sem fio na qual ele se autentica e comea a baixar os dados solicitados sobre a configurao da central de dados.

    Enquanto Janete espera pelo seu vo no terminal, ela chama o gerente da central de dados para ouvir os ltimos acontecimentos. Assim que ela embarca no avio, seu PDA novamente varre a rea em busca de possveis servios em seu ambiente e detecta que ele pode se conectar a tela e teclado embutidos no assento do avio usando uma rede sem fio interna ao avio. O PDA mostra o ambiente de trabalho (desktop) de Janete na tela enfatizando as informaes da central de dados. Depois do avio decolar, Janete planeja cuidadosamente os reparos necessrios, usa os servios de compra rpida para pedir as partes necessrias de equipamentos e/ou software e solicita free-lancers com as habilidades necessrias para aliviar o trabalho de seus prprios funcionrios que esto trabalhando 24 horas por dia. O agente pessoal do PDA automaticamente prioriza suas solicitaes e transfere alguns arquivos via a rede lenta do avio. Quando o avio pousa e Janete vai para o

    47XXI Simpsio Brasileiro de Redes de Computadores

  • terminal de desembarque, o PDA pode transferir arquivos usando a LAN sem fio do terminal. Quando Janete chega na central de dados, as primeiras ofertas de free-lancers j chegaram, e os fornecedores de equipamentos j receberam os pedidos para substituio das partes danificadas.

    Cenrio 2. Uma aplicao para vrios dispositivos (adaptado de [3])

    Um gelogo do Instituto Americano de Geologia foi mandado para um local remoto no oeste dos EUA para examinar os efeitos de um terremoto recente. Usando um PC, e um software denominado MANNA2, que suporta as atividades do gelogo em qualquer dispositivo que ele usar, o gelogo baixa mapas e relatrios existentes sobre a rea de modo a se preparar para a visita. Como o PC no um equipamento mvel e o gelogo precisa viajar, os documentos so transferidos para um laptop e o gelogo pega um avio at o local onde ocorreu o terremoto.

    Neste avio no h suporte para rede, portanto o laptop desabilita a conexo de rede e oferece apenas computao local. Quando o gelogo examina os vdeos do local, a interface do usurio chaveia automaticamente para monitor branco e preto e reduz a taxa de quadros por segundo, para ajudar a conservar bateria. Ao chegar ao aeroporto, o gelogo aluga um carro e dirige at o local. Ele recebe uma mensagem atravs do sistema MANNA pelo celular, alertando-o para examinar um local em particular. Como o fone celular oferece espao de tela extremamente limitado, o mapa da regio no mostrado. Em vez disso, o celular mostra a localizao geogrfica, orientaes de como chegar l, e a posio atual do gelogo (GPS). Um recurso que permite ao gelogo responder a mensagem tambm oferecido pelo software.

    Chegando no local, o gelogo usa o seu palmtop para tomar notas sobre a regio. Como o palmtop conta com uma caneta de toque (styllus) para interao, no permitida a interao atravs de cliques duplos ou cliques direita. Mais ainda, como o tamanho da tela tambm um problema no palmtop, um layout mais conservador adotado para ser mostrado ao gelogo. Ao completar a investigao, o gelogo prepara uma apresentao em dois formatos. Primeiro uma apresentao do seu percurso pelo local, com anotaes, feita para o HUD (heads-up display). Como o HUD tem capacidade limitada para tratar entrada de texto (usa o prprio dispositivo mvel), a aplicao MANNA oferece interao baseada em voz. Uma outra apresentao, mais convencional, preparada para ser visualizada em telo. Como o propsito da apresentao no telo no o de interao, mecanismos de interao so removidos.

    Questes observadas nos cenrios acima descritos:

    A informao acessada atravs de mltiplos dispositivos heterogneos

    A aplicao segue o usurio em movimento

    Os dispositivos interagem entre si

    2 MANNA aplicao multimdia que deve executar em varias plataformas e que pode ser usada de forma colaborativa via Internet.

    48XXI Simpsio Brasileiro de Redes de Computadores

  • Algumas tarefas so executadas de forma autnoma

    Dispositivos diferentes apresentam vises diferentes da mesma aplicao

    O ambiente troca informaes com os dispositivos e vice-versa

    A aplicao responde a mudanas no ambiente

    Questes que devem ser respondidas para que os cenrios acima tornem-se cenrios amplamente difundidos:

    Como mudar de uma rede para outra de forma transparente, sem que isto seja refletido na aplicao?

    Como fazer com que dispositivos descubram outros dispositivos ao seu redor e interajam entre si para a realizao de servios?

    Como fazer com que um ambiente inteligente aprenda sobre os dispositivos e as aes do usurios no ambiente e reflita na aplicao esse contexto aprendido.

    Como projetar aplicaes acessadas/executas de/em diferentes dispositivos sem ter que projetar as interfaces e funcionalidades para cada dispositivo separadamente?

    Estas e outras questes perfazem o assunto deste livro e sero discutidas no decorrer dos prximos captulos.

    1.1 Definies

    Por ser uma rea emergente de pesquisa, termos como computao ubqua, computao pervasiva, computao nomdica, computao mvel e outros tantos, tm sido usados muitas vezes como sinnimos, embora sejam diferentes conceitualmente e empreguem diferentes idias de organizao e gerenciamento dos servios computacionais. Na medida em que a rea evolui, esses conceitos vo sendo melhor compreendidos e suas definies se tornam mais claras. A definio e diferenciao entre estes conceitos so mostradas a seguir [4].

    O que Computao Mvel?

    A computao mvel baseia-se no aumento da nossa capacidade de mover fisicamente servios computacionais conosco, ou seja, o computador torna-se um dispositivo sempre presente que expande a capacidade de um usurio utilizar os servios que um computador oferece, independentemente de sua localizao. Combinada com a capacidade de acesso, a computao mvel tem transformado a computao numa atividade que pode ser carregada para qualquer lugar.

    Limitaes da Computao mvel

    Uma importante limitao da computao mvel que o modelo computacional no muda enquanto nos movemos, isto , o dispositivo no capaz de obter flexivelmente informao sobre o contexto no qual a computao ocorre e ajust-la corretamente. Numa soluo para acomodar a mudana de ambiente, os usurios poderiam manualmente controlar e configurar a aplicao medida que se movem, o que seria invivel e inaceitvel pela maioria dos usurios

    49XXI Simpsio Brasileiro de Redes de Computadores

  • O que Computao Pervasiva?

    O conceito de computao pervasiva implica que o computador est embarcado no ambiente de forma invisvel para o usurio. Nesta concepo, o computador tem a capacidade de obter informao do ambiente no qual ele est embarcado e utiliz-la para dinamicamente construir modelos computacionais, ou seja, controlar, configurar e ajustar a aplicao para melhor atender as necessidades do dispositivo ou usurio. O ambiente tambm pode e deve ser capaz de detectar outros dispositivos que venham a fazer parte dele. Desta interao surge a capacidade de computadores agirem de forma inteligente no ambiente no qual nos movemos, um ambiente povoado por sensores e servios computacionais.

    O que Computao Ubqua?

    A computao ubqua beneficia-se dos avanos da computao mvel e da computao pervasiva. A computao ubqua surge ento da necessidade de se integrar mobilidade com a funcionalidade da computao pervasiva, ou seja, qualquer dispositivo computacional, enquanto em movimento conosco, pode construir, dinamicamente, modelos computacionais dos ambientes nos quais nos movemos e configurar seus servios dependendo da necessidade. A tabela 1 mostra as dimenses da computao ubqua.

    Computao

    Pervasiva Computao

    Mvel Computao

    Ubqua

    Mobilidade Baixa Alta

    Alta

    Grau de embarcamento

    Alto Baixo

    Alta

    Tabela 1 Dimenses da Computao Ubqua adaptado de [4]

    O grau de embarcamento indica, de maneira geral, o grau de inteligncia dos computadores, embutidos em um ambiente pervasivo, para detectar, explorar e construir dinamicamente modelos de seus ambientes.

    Como se relacionam as computaes ubqua, pervasiva e mvel?

    Tendo em vista todas as definies mencionadas acima, o termo computao ubqua ser usado aqui como uma juno da computao pervasiva e da computao mvel. A justificativa de se realizar uma diferenciao desses termos que um dispositivo que est embutido em um ambiente, no necessariamente mvel. Devido a isso, quando for utilizado o termo computao ubqua, considerar-se-o o alto grau de dispositivos embarcados da computao pervasiva juntamente com o alto grau de mobilidade da computao mvel, conforme mostra a Figura 1.

    50XXI Simpsio Brasileiro de Redes de Computadores

  • 1.2 Princpios da Computao Ubqua (adaptado de [5])

    Pelos menos trs princpios so identificados na Computao Ubqua, a saber:

    Diversidade - Ao contrario do PC, que um dispositivo de propsito geral que atende varias necessidades distintas do usurio, tais como: edio de texto, contabilidade, navegao na web, etc., os dispositivos ubquos acenam com uma nova viso da funcionalidade do computador, que a de propsito especifico, que atende necessidades especificas de usurios particulares. Apesar de vrios dispositivos poderem oferecer funcionalidades que se sobrepem, um pode ser mais apropriado para uma funo do que outro. Por exemplo, o palmtop bom para fazer anotaes rpidas, mas no o melhor dispositivo para navegar na web. Um telefone de tela pode ser o dispositivo escolhido pelo usurio em sua casa para navegar pela internet, com todo o potencial de cores e boa resoluo que este dispositivo pode oferecer. Um outro aspecto da diversidade o de como gerenciar as diferentes capabilidades de diferentes dispositivos, uma vez que cada dispositivo tem caractersticas e limitaes prprias tornando difcil oferecer aplicaes comuns.

    Descentralizao - Na computao ubqua as responsabilidades so distribudas entre vrios dispositivos pequenos que assumem e executam certas tarefas e funes. Estes dispositivos cooperam entre si para a construo de inteligncia no ambiente, que refletida nas aplicaes. Para isso uma rede dinmica de relaes formada, entre os dispositivos e entre dispositivos e servidores do ambiente, caracterizando um sistema distribudo. Quando os dispositivos tm que atualizar informaes com os servidores ou com outros dispositivos, em especial com dispositivos de diferentes capacidades, questes de sincronizao emergem e sero discutidas no capitulo sobre sincronizao. Outra questo relacionada distribuio inclui o gerenciamento, pelos servidores, das aplicaes que executam nos dispositivos. Os servidores precisam manter registros de perfis de usurios e de dispositivos com capacidades diferentes. Alm disso, o servidor deve ser altamente flexvel, bem como poderoso, para tratar um vasto nmero de dispositivos em movimento.

    Conectividade - Na computao ubqua, tem-se a viso da conectividade sem fronteiras, em que dispositivos e as aplicaes que executam neles movem-se juntamente com o usurio, de forma transparente, entre diversas redes heterogneas, tais como as redes sem fio de longa distncia e redes de media e curta distancia. Para que se atinja a conectividade e interoperabilidade desejada preciso basear as aplicaes em padres comuns, levando ao desafio da especificao de padres abertos.

    Computao pervasiva

    Computao mvel

    Computao ubqua

    Figura 1 Relao entre Computao Ubqua, Pervasiva e Mvel

    51XXI Simpsio Brasileiro de Redes de Computadores

  • 1.3 Aplicaes

    Uma das primeiras demonstraes de como a computao ubqua pode ajudar os usurios em suas tarefas dirias foi realizada nos laboratrios da XeroxPARC com o Xerox PARCTab [6], que localizava um usurio dentro de um edifcio, dentre outras funcionalidades. Outras reas de aplicao da computao ubqua incluem: ensino, trabalho colaborativo, residncias e automveis inteligentes, descritas logo abaixo.

    Exemplos de Computao Pervasiva no Ensino

    O objetivo dar suporte aos professores em suas atividades de produo de material didtico e aos alunos na anotao das aulas de forma personalizada. Exemplos de projetos nesta rea incluem: o Classroom 2000 [7] do Georgia Institute of Technology que compreende um conjunto de tecnologias de hardware e software para a captura de aulas presenciais e posterior disponibilizao do material capturado sob a forma de hiperdocumentos multimdia customizados; o Lecture Browser [8] um projeto da Universidade de Cornell que difere do eClass ao utilizar tcnicas de viso computacional e combinao de mais de uma fonte de vdeo para produzir seus hiperdocumentos multimdia resultantes do processo de captura da aula dada pelo professor; o Authoring on the Fly [9] um projeto de suporte ao ensino da Universidade de Freiburg na Alemanha que difere de outros sistemas dessa natureza em funo do poderoso modelo de sincronizao das mdias capturadas da aula, das diversas formas de representao do material capturado, e das funcionalidades fornecidas para acesso posterior a esse material.

    Exemplos de Computao Pervasiva no Trabalho Colaborativo

    Oferece suporte a reunies formais e/ou informais entre participantes de um mesmo grupo. Exemplos de projetos nesta rea incluem: o sistema DUMMBO (Dynamic, Ubiquitous, Mobile Meeting Board) [10], do Georgia Institute of Technology voltado para a captura de atividades de uma reunio informal. Esse sistema registra os desenhos feitos em uma lousa eletrnica compartilhada e a voz de cada membro da reunio, e disponibiliza essa informao sob a forma de hiperdocumentos multimdia sincronizados; o sistema TeamSpace [11] que um projeto colaborativo entre o Georgia Institute of Technology, IBM e Boeing com foco na captura de atividades envolvidas em uma reunio formal local ou distribuda. Esse sistema registra uma parcela maior dos artefatos apresentados durante uma reunio, incluindo slides, anotaes, itens de agenda, vdeo e udio de cada membro da reunio; o projeto iRoom (Interactive Room) [12] da Universidade de Stanford que focaliza as interaes com dispositivos computacionais, tais como PCs, laptops, PDAs e superfcies eletrnicas, em um espao de trabalho conectado a uma rede sem fio. Um de seus principais desafios envolve o suporte movimentao de dados e de controle entre esses vrios dispositivos de interao de forma transparente, para no interromper o processo de colaborao.

    Exemplos de Computao Ubqua em Aplicaes que exigem maior movimentao do usurio

    Guias tursticos eletrnicos trabalham normalmente com informaes de localizao dos usurios e utilizao de dispositivos portteis para conferir maior mobilidade aos usurios. Os

    52XXI Simpsio Brasileiro de Redes de Computadores

  • principais objetivos dessa classe de aplicaes so registrar os locais visitados e identificar a posio atual do usurio dentro de um espao de interao, como campus universitrio, museu, etc. O CampusAware [13] um sistema de turismo que utiliza informaes de localizao para fornecer servios aos usurios. O sistema permite que o usurio faa anotaes em seus dispositivos sobre os locais que esto visitando, fornecendo tambm informaes de como encontrar determinados locais de interesse e a posio atual do usurio. O CampusAware possui um repositrio central com trs bancos de dados para informaes contextuais e sociais, como as anotaes dos usurios e locais visitados. O CampusAware utiliza o GPS para obteno de informaes de localizao em ambientes abertos. O sistema Rememberer [14] parte do projeto Cooltown [15], dirigido pelo Hewlett-Packard Laboratories. Seu objetivo capturar experincias pessoais e estimular discusses ou outras formas de interao pessoal atravs de dispositivos portteis sem fio. Para capturar informao de localizao em recintos fechados, esse sistema utiliza RFID (radio frequency identification) [16]. Um exemplo de aplicao desse sistema em visita a museus, onde cmeras fotogrficas registram interaes dos usurios no museu, e disponibiliza essas informaes na ordem em que os locais foram visitados, permitindo ainda que o usurio faa anotaes sobre esses lugares.

    Exemplos de Computao Ubqua na Residncia Inteligente

    Basicamente, as aplicaes de computao ubqua que abrangem o domnio domstico tm por objetivo conhecer as atividades dos moradores de uma casa e fornecer servios que aumentem a qualidade de vida deles. O EasyLiving [17] um projeto da Microsoft Research que se preocupa com o desenvolvimento de arquiteturas e tecnologias para ambientes inteligentes, focando particularmente em uma sala de estar residencial. O ambiente contm um computador, telas eletrnicas (incluindo uma tela grande), caixas de som, sofs e mesa de caf, entre outros itens. Os servios so fornecidos para melhorar o ambiente, como por exemplo, automatizar o controle de luz, tocar msica baseado na localizao (dependendo da preferncia do usurio), e ainda transferir automaticamente o contedo de uma tela para outra. O Adaptive House [18] um projeto da Universidade de Colorado e tem como objetivo desenvolver uma casa que se programe observando o estilo de vida e desejos dos habitantes e aprendendo a se antecipar s suas necessidades. O sistema desenvolvido no Adaptive House chamado ACHE (Adaptive Control of Home Environments), e foi desenvolvido basicamente para controlar o sistema de AVAC (Aquecedor, Ventilador, Ar condicionado), iluminao e gua.

    Exemplos de Computao Ubqua em outros domnios

    Outros domnios de aplicao so automveis, penitencirias, laboratrios, etc. No domnio automotivo a ateno principal na posio do usurio/dispositivo. Segundo Herrtwich [19] o setor automotivo um bom atrativo para a computao ubqua, pois os dispositivos de comunicao j podem estar integrados nos automveis (devido ao seu tamanho), os equipamentos de comunicao podem utilizar as fontes de energia do prprio automvel, o preo dos equipamentos de comunicao relativamente pequeno comparado com o valor do automvel, e o mais importante, que muitos servios, como pedido de socorro e rastreamento remoto, so de interesse dos compradores e dos produtores de automveis.

    53XXI Simpsio Brasileiro de Redes de Computadores

  • 1.4 Consideraes finais

    Novas arquiteturas devem ser criadas para tratar da diversidade e das limitaes dos dispositivos ubquos e de outras tecnologias envolvidas.

    Entretanto, com o aumento do potencial de processamento e armazenamento de dispositivos que esto cada vez mais baratos, a emergncia de discos minsculos, processadores milimtricos, clulas de energia em miniatura, telas pequenas com resoluo cada vez melhor, alm dos avanos no reconhecimento da fala e da escrita manual, do aumento das redes de comunicao sem fio com capacidade cada vez maior, do surgimento de padres abertos para conexo e interoperabilidade entre redes diferentes, a computao ubqua no parece to distante e certamente vai causar um enorme impacto na sociedade e no estilo de vida das pessoas. O prximo capitulo descreve diferentes tipos de dispositivos.

    2. Dispositivos

    Os cenrios mostrados no capitulo 1 oferecem uma pequena amostra do potencial de aplicao da computao ubqua. Na medida em que a residncia, o meio de transporte e o trabalho do usurio tornam-se os cenrios de aplicao da computao ubqua, oferecendo servios como segurana, comodidade, informao, entretenimento, e muito mais, um universo incrvel de dispositivos diferentes dever existir para suportar estes servios. Exemplos incluem: controles, sensores e atuadores para residncias e automveis, eletrodomsticos, ar-condicionado, aquecedor, relgios e etiquetas inteligentes, alm de toda a linha branca de utenslios domsticos, TVs, celulares, PDAs, consoles de jogos e muito mais.

    A existncia de mltiplos dispositivos, seja para o acesso a informao, ao entretenimento, embutidos em utenslios domsticos, embarcados em ambientes inteligentes, etc., constitui-se em um dos desafios da computao ubqua, conforme visto no capitulo 1. Uma tentativa de classificar esses dispositivos ilustrada na tabela 2. Por questo de falta de espao, ser apresentado, no texto a seguir, apenas um resumo das caractersticas principais de cada classe de dispositivos [5] [20].

    2.1 Controles Inteligentes

    Os controles inteligentes caracterizam-se por serem muito pequenos podendo ser integrados a lmpadas, interruptores, termostatos, sensores, atuadores etc., em aplicaes que variam de controle de segurana residencial (sensores em portas e janelas para detectar a entrada de intrusos, atuadores para acender/apagar lmpadas especficas em horrios especficos etc), a controle de comodidades para o usurio (sensores de temperatura, atuadores para ligar/desligar/programar sistemas de aquecimento/resfriamento de ambiente residencial etc.). Os controles so conectados a redes domesticas e gerenciados local ou remotamente, atravs da Web ou applets Java, em aplicaes locais.

    54XXI Simpsio Brasileiro de Redes de Computadores

  • Cartes Inteligentes

    Os cartes inteligentes (smartcards) merecem uma seo a parte dentro dos controles inteligentes, devido ao alto potencial de uso, em larga escala, em aplicaes do tipo: Autenticao de usurio, assinatura eletrnica e criptografia. O carto inteligente pode funcionar como um carto telefnico (nos telefones GSM), sistema de acesso a um local fsico de trabalho, em aplicaes de home banking, bolsa eletrnica (dinheiro digital) e muito mais. A prxima gerao de cartes para transaes financeiras possuem confiabilidade muito superior ao carto magntico no d para copiar. Estas aplicaes podem executar fora e/ou no prprio carto.

    Controles Inteligentes Utenslios Inteligentes Controles de processo de manufatura Quiosques

    Controles residenciais Terminais de Ponto de Venda Termostatos Centrais de telecomunicaes

    Etiquetas inteligentes Controles de bombas de ar, gua, gs etc.

    Eletro domsticos da linha branca (geladeiras, maquinas de lavar roupa etc.)

    Cartes inteligentes Terminais de Caixa eletrnico Controles em sistemas automotivos Maquinas de venda automtica

    Instrumentos de monitoramento medico

    Dispositivos de Acesso a Informao

    Sistemas de Entretenimento Telefones Celulares TV Telefones de tela Caixas digitais set-top-box

    Agentes Pessoais Digitais - PDAs Consoles de jogos Computadores de mo Cmeras digitais Computadores portteis Brinquedos inteligentes

    Pagers Reprodutores de musica MP3

    Tabela 2. Uma classificao dos dispositivos ubquos (adaptado de [5])

    Um carto inteligente composto basicamente de um chip de no mximo 25 mm2 de tamanho, com os seguintes componentes e respectivas configuraes tpicas: CPU de 8, 16 ou 32 bits (co-processador opcional para criptografia), Memria RAM de 4KB, ROM de 16KB que contm o sistema operacional e funes de comunicao e de segurana (DES, RSA), alm de EEPROM para dados permanentes (aplicao). Os Sistemas operacionais existentes para cartes inteligentes incluem: JavaCard, Mutos e Windows para smartcards. As propriedades fsicas, eltricas, mecnicas e de programao (sistema de arquivos) dos cartes inteligentes so especificadas pelo Padro ISO 7816 [21]. A padronizao da interface de acesso s aplicaes tambm um aspecto importante para que aplicaes possam ser acessadas por leitoras diferentes ou levadas para leitoras de outros fabricantes. Iniciativas de padronizao de APIs para aplicaes de cartes inteligente incluem: PC/SC [22] e OpenCard Framework OCF [23].

    55XXI Simpsio Brasileiro de Redes de Computadores

  • 2.2 Utenslios Inteligentes

    difcil estabelecer uma linha divisria clara entre as classes de dispositivos, em especial os controles inteligentes e os utenslios inteligentes. Os controles inteligentes podem estar embutidos em utenslios que so controlados por um ou mais microprocessadores. Desta forma, podemos considerar os utenslios como sendo mais inteligentes e complexos do que os controles inteligentes. Os utenslios inteligentes aumentam a funcionalidade de equipamentos j conhecidos e que hoje prestam um conjunto de servios dedicados. Os utenslios inteligentes, em ambientes de computao ubqua, interagem entre si para aumentar o conforto dos usurios, seja em casa, no carro, no escritrio, no banco, no hospital, nas ruas, nos shoppings etc. Exemplos de aplicao de utenslios inteligentes incluem: Otimizao do consumo de energia (aquecimento seletivo por cmodo da casa; aquecimento diferenciado por ocupao da casa; aquecimento de gua em funo do perfil dos moradores); manuteno de utenslios (diagnstico e atualizao remota de micro-cdigo em utenslios da linha branca), comunicao entre etiquetas de roupa e a mquina de lavar. Esses dispositivos podem ser acessados e operados remotamente via web, por exemplo.

    Computao Automotiva

    Um numero cada vez maior de microprocessadores, controladores, sensores e atuadores esto sendo embutidos nos vrios componentes dos automveis de mais alto custo. Atualmente, estes componentes interagem entre si, mas em breve estaro se comunicando tambm com o mundo exterior para estender a interface tradicional do motorista e oferecer servios do tipo: sistemas de navegao (uso do GPS para determinao de localizao do veiculo com o objetivo de orientar o motorista sobre as melhores rotas para chegar ao destino); telemtica (componentes do carro comunicam-se com componentes de fora do carro, atravs de comunicao sem fio, para informao sobre alternativas de rotas face a congestionamentos, bloqueios, condies climticas etc); informe sobre acidente ou falhas em componentes do automvel (problemas no air bag so notificados para a montadora via fone celular); monitoramento dos dados sobre o veiculo pelas montadoras (temperatura do leo, informes da montadora para o motorista, envio de atualizaes de software); acesso a informao(servios de e-mail, acesso a Internet); entretenimento (difuso de udio digital DAB; TV) e muito mais.

    Trs fatores da indstria automotiva esto levando as montadoras a implementarem em seus carros sistemas genricos de barramento que interconectam componentes eletrnicos, atravs de barramento e no mais de fiao com interconexo ponto-a-ponto [20]: (1) aumento da complexidade da montagem do veiculo devido ao peso da fiao necessria para interconectar um numero cada vez maior de componentes eletrnicos, aumentando tambm o custo do veiculo; (2) o custo cada vez maior dos componentes personalizados para cada fabricante; (3) a diferena grande de tempo entre os ciclos de desenvolvimento dos dispositivos eletrnicos e do modelo de um carro novo o sistema eletrnico de um carro novo que entra em linha de produo j est defasado em termos de custo e tecnologia em relao a nova gerao de eletrnicos disponvel nas prateleiras.

    Com o barramento, que age como uma rede de comunicao, diferentes componentes, com interfaces bem definidas, podem ser conectados. Estas interfaces tm que

    56XXI Simpsio Brasileiro de Redes de Computadores

  • ser padronizadas para que os componentes possam ser desenvolvidos por terceiros, e de forma independente do carro em si.. Existem varias iniciativas de padronizao das redes automotivas em andamento, tais como: os americanos J1850 definido pela Sociedade dos Engenheiros Automotivos e Onboard Diagnostics - ODB-II, o europeu Controller rea Network CAN, o padrao aberto Local Interconnect Network LIN, o barramento IDB Intelligente Transportation Systems Data Bus, entre outros.

    2.3 Dispositivos de Acesso a Informao

    Os dispositivos de acesso informao provem comunicao entre usurios, anotao, acesso informao etc., visando aumentar as capabilidades humanas, em especial no trabalho. Exemplos desse tipo de dispositivo incluem: Assistentes Digitais Pessoais PDA, PC de bolso (baseados no W/CE), Sub-notebooks (intermedirios entre computador de mo e lap-top), Telefone celular; Telefones inteligentes (combinam telefone mvel com PDA), Telefones de tela (convergncia do telefone com terminal de acesso internet), etc.

    Dispositivos de Mo

    Os primeiros dispositivos moveis de acesso informao eram descendentes dos organizadores e possuam teclado e tela relativamente grandes, com vrios conectores e slots de expanso (exemplos: Psion e W/CE Handheld Pro). J os PDAs caracterizam-se pela tela sensvel a toque. A interao com o dispositivo baseada em apontador (stylus), a entrada de texto feita por reconhecimento de escrita manual (exemplos: Palm, WorkPad da IBM, Pocket PC etc.). Outros dispositivos incluem: leitores multimdia portteis e reprodutores de contedo para ler/ouvir livros eletrnicos (exemplo: e-BookMan).

    Nos dispositivos de mo, tudo menor que no PC, com tecnologias normalmente muito diferentes das do PC. Alguns exemplos de servios oferecidos incluem: livro de endereos e telefones, calendrio, atividades a fazer, editor de texto, calculadora, despertador, e-mail, sincronizao de dados e jogos, navegadores, relgios globais, gerente de arquivos, planilhas, aplicaes financeiras, reprodutores de mdia, recursos de desenho etc.

    Telefones Celulares

    Os celulares oferecem vrios servios, entre eles: Paging, transmisso de dados, fax, mensagens curtas - SMS (at 160 caracteres), WAP (para acesso a servios de escalas de vo, previso do tempo, informaes de trnsito, cotao de aes, reserva de hotel etc). O oferecimento de servios multimdia o alvo principal dos fabricantes de celulares, o que est se tornando possvel na medida em que aumenta-se a implantao e abrangncia das redes sem fio de maior capacidade de largura de banda, aumenta-se o potencial de processamento dos processadores de celulares e tambm a capacidade das baterias.

    A seo abaixo descreve aspectos das tecnologias de hardware dos dispositivos, que diferem muito das tecnologias do PC [5] [20]. Apesar de algumas dessas tecnologias poderem ser usadas nas outras classes de dispositivos, elas se referem, em especial, aos dispositivos de acesso a informao.

    57XXI Simpsio Brasileiro de Redes de Computadores

  • 2.4 Aspectos de Hardware dos Dispositivos Ubquos [20]

    Bateria: Tecnologia Limitante

    Uma tecnologia que limita a velocidade de desenvolvimento de novos servios para os dispositivos a bateria. A velocidade de desenvolvimento das baterias menor do que a de outras tecnologias. Desta forma, qualquer avano rapidamente superado pelo aumento de consumo de energia dos processadores mais rpidos. Pesquisadores do mundo todo trabalham com o objetivo de descobrir novas fontes de energia que sejam mais leves, suportem mais tempo de fala e de processamento de aplicaes, alm de serem menos agressivas ambientalmente. Baterias de Niquel-Cadmo (NiCad), pesadas e sujeitas a perda de capacidade, foram substitudas por tecnologias como as de Niquel-Metal Hbrido (NiMH), mais leves, maior capacidade e menor agressividade ambiental. Baterias de Ltio-on (Li ion), encontradas hoje em vrios tipos de equipamentos eletrnicos, possuem baixa capacidade de energia mas suportam um tempo mais longo de fala graas a reduo da necessidade de energia dos dispositivos modernos. Clulas de ltio polmero, que usam gel para o eletrlito, refletem uma das tecnologias mais modernas na rea de baterias. Feita de camadas finas e flexveis, podem assumir qualquer forma ou tamanho.

    Telas

    Nos dispositivos de acesso a informao, o CRT - Tubo de Raios Catdicos - substitudo pela LCD Tela de Cristal Liquido. Apesar de ter um custo mais alto, a LCD pesa menos e consome menos energia. As tecnologias de LCD so: OLED - Diodo Orgnico Emissor de Luz, inventado h 15 anos mas s agora disponvel comercialmente; Semicondutor Cristalino, compostos orgnicos que permitem a construo de dispositivos flexveis (construdo em qualquer tamanho e cor); LEP - Polmero Emissor de Luz; CoG - Chip-no-vidro; LCoG - Cristal sobre Vidro Lquido. Essas tecnologias permitem a criao de telas minsculas (tamanho de pixel de 10 micrmetros). Como so extremamente pequenas, requerem alguma forma de magnificao (canho multimdia, capacetes etc).

    Memria

    O desenvolvimento da tecnologia de memrias orientado, em parte, pelos telefones inteligentes, cmeras digitais, tocadores MP3 e PDAs. Atualmente, vivel a integrao de vrios megabytes em dispositivos mveis, atravs de tecnologias como a dos micro discos rgidos removveis (Microdrive da IBM que suporta de 340MB a G1B), e memrias Flash no volteis (em telefones inteligentes e PDAs). A memria RAM nos telefones inteligentes e PDAs requer menos energia e prov acesso mais rpido. Com capacidade tpica de 2 a 16MB, contm o Sistema Operacional e os dados da aplicao. Esses dispositivos normalmente possuem slots de expanso para memria adicional. Os tipos de memria RAM disponveis incluem: RAM esttica SRAM que ideal para cache. Requer pouca energia, no faz refresh, possui esquema mais simples de endereamento e guarda os dados que mudam com freqncia os outros so armazenados em flash ou DRAM; RAM Unitransistor - Ut-RAM, esttica e dinmica em um nico chip, possui maior capacidade de memria em chips menores, que requer menos energia; RAM magneto-resistiva MRAM e RAM ferroeltrica FRAM, ambas so uma tendncia na combinao de memria magntica e

    58XXI Simpsio Brasileiro de Redes de Computadores

  • semicondutora com comportamento similar ao da RAM esttica, que requer menos energia, pois no tem os ciclos de regenerao dos bits (refresh) que a RAM dinmica tem. Com estas duas ultimas tecnologias de memria, necessrio apenas um nico tipo de memria nos dispositivos mveis, pois elas substituem a combinao de voltil e no voltil atualmente em uso.

    Processadores

    As melhorias na fabricao do CMOS tm levado a estruturas cada vez menores com um nmero cada vez maior de transistores. A voltagem abaixou de 3,3V em 1995 para 1,35V em 2002. H menor emisso de calor e caches maiores. Com o problema critico da limitao das tecnologias de baterias, a tecnologia dos processadores tem avanado a ponto de oferecer mecanismos que permitem a reduo da voltagem do dispositivo por software, o que reduz o ciclo do clock (roda mais devagar), economizando energia. O processador SpeedStep da Intel faz o gerenciamento da energia ajustando a freqncia interna do clock e a voltagem do ncleo. Ele se adapta a mudanas no fornecimento de energia, desligando as partes da CPU que no so necessrias no atual processamento. A transio entre os modos econmico e normal transparente.

    Entrada de dados Teclados

    O tamanho dos dispositivos de acesso a informao imposto pela necessidade de E/S de dados, uma vez que o tamanho dos componentes de E/S (teclado, LCD) influencia o tamanho total do dispositivo mvel. Quando os dispositivos de E/S so integrados em um mesmo dispositivo, difcil esperar que se tornem menores do que j so nos dias de hoje. Entretanto, quando considerados separados, os avanos na tecnologia vo certamente torn-los menores. Dependendo do tamanho do dispositivo, o teclado pode oferecer um conjunto completo de teclas ou um conjunto limitado para a entrada dos dados. Quanto menor o numero de teclas, mais complexa ser a operao do dispositivo. Por outro lado, um teclado completo acoplado a um dispositivo certamente vai deix-lo maior.

    Teclados Virtuais em Telas Sensveis a Toque

    Quando os teclados so omitidos, por exemplo, por falta de espao no dispositivo, outras tecnologias so usadas, tais como: Teclados na Tela - em dispositivos com telas grandes, substitui-se o teclado mecnico pelo teclado virtual (tela sensvel a toque) e Teclado Fitaly teclado que apresenta layout especial, diferente do QWERTY. As letras so organizadas baseadas na freqncia individual e probabilidade de transies na lngua Inglesa. As letras i, t, a, l, n, e, d, o, r, s, espao perfazem 73% das teclas usadas na lngua inglesa. Adicionando-se as letras c, h, u, m, chega-se a 84%. As demais teclas esto todas no mximo a duas teclas de distancia da rea central. A figura 2 mostra um teclado Fitaly na tela de um Pocket PC (W/CE).

    Teclados Tegic T9

    O padro T9 (Text on 9 digits).[24] usa nmeros para entrada de texto, onde cada tecla numrica associada a um conjunto de letras. O nmero pressionado vrias vezes, por exemplo, as letras A, B e C so associadas ao digito 2 no teclado. A tecla 2 tem que ser pressionada uma vez para A, duas vezes para B e trs vezes para C. Quando

    59XXI Simpsio Brasileiro de Redes de Computadores

  • surge ambigidades, isto , quando uma palavra representada pela mesma seqncia de teclas, o usurio tem que ajudar. O T9 usado para entrada de texto em telefones moveis e PDAs. Um outro tipo de teclado o Octave que mapeia cada letra do alfabeto em um de oito traos (strokes) distintos. Os traos so baseados em smbolos que representam uma parte comum caracterstica das letras que eles representam, localizados ao redor das pontas do boto/tela sensvel a toque em forma de estrela. Desenhos e textos explicativos sobre o Octave podem ser encontrados em [25].

    Figura 2. Exemplo de um teclado Filtaly na tela de um Pocket PC (W/CE)

    Alguns dispositivos, por questes, por exemplo, de falta de espao, podem omitir totalmente o uso do teclado. Nestes casos, tecnologias alternativas, como reconhecimento de escrita a mo ou reconhecimento de voz so utilizadas.

    Reconhecimento de escrita a mo

    Tecnologia vivel quando estiverem disponveis: poder de processamento suficiente e telas sensveis a toque. O maior desafio desta tecnologia o reconhecimento de palavras completas, que muito mais difcil do que o reconhecimento de letras individuais, pois requer uma captura muito precisa dos dados e retorna o reconhecimento com atraso. Outros mtodos limitam-se ao reconhecimento de caracteres separados. Aqui, requer-se que o stylus seja levantado depois de cada caractere. O reconhecimento de caractere normalmente atinge alta taxa de reconhecimento, mas requer cooperao do usurio. O numero de formas que uma letra pode ser desenhada para ser reconhecida muitas vezes limitado. A figura 3 mostra um exemplo de reconhecimento de escrita a mo. Para o reconhecimento de caracteres de linguagens asiticas, o sistema operacional SO do Palm pode ser estendido para a verso CJKOS extenso de SO que adapta o SO do Palm para E/S em chins, japons e koreano), como mostra a figura 4.

    Reconhecimento de Voz

    o mtodo de entrada mais natural. Requer espao mnimo para ser integrado no dispositivo. uma tecnologia cara (requer alto poder computacional). A fala contnua j est disponvel

    60XXI Simpsio Brasileiro de Redes de Computadores

  • em PCs e uma questo de tempo at que esteja disponvel nos dispositivos mveis. O telefone o dispositivo mais bvio para a integrao com reconhecimento de voz (entrada de nmeros de telefone em servios de agenda, via voz, j disponvel). Os desafios dos futuros sistemas de reconhecimento de voz incluem: reconhecimento de fala contnua, compreenso de solicitaes complexas, traduo para outras lnguas etc.

    2.5 Sistemas de Entretenimento

    Os sistemas de entretenimento envolvem dispositivos cujo uso voltado principalmente ao lazer. Exemplos incluem: TV (via cabo, satlite, microondas), Set-top-boxes (caixa sobre a TV que promove a interface entre os provedores do servio de difuso e a TV do consumidor), Console de jogos (exemplos: Dreamcast da Sega, Playstation2 da Sony, Dolphin da Nintendo e X-box da Microsoft), Cmeras digitais, Brinquedos inteligentes, Reprodutores de musica MP3 etc.

    3. Software de Sistemas de Computao Ubqua

    Devido as limitaes de memria, capacidade de processamento e bateria dos dispositivos, alm da diversidade de tipos, alta latncia das redes de comunicao sem fio, etc., as aplicaes para os dispositivos tm que ser projetadas tendo em mente essas limitaes. Os Sistemas operacionais, por sua vez, tm que ser projetados tendo em mente as caractersticas do dispositivo e o objetivo de uso. A computao ubqua traz novos requisitos para as infraestruturas de servio, ou middlwares, tais como: descoberta de servios, adaptao da aplicao, alm de frameworks que atendem necessidades especificas. Estas e outras questes relacionadas ao software de sistemas de computao ubqua so discutidas a seguir.

    Figura 3. Exemplo de reconhecimento de escrita

    Figura 4. Exemplo de tela com CJKOS no Pocket PC

    61XXI Simpsio Brasileiro de Redes de Computadores

  • 3.1 Aplicao

    Os desenvolvedores de aplicaes para ambientes ubquos tm uma seleo limitada de linguagens de programao disponveis, dentre elas: Java, C e C++ (alm de algumas linguagens proprietrias). A linguagem Java oferece independncia de plataforma do cdigo compilado e atende os requisitos de dispositivos pequenos. As linguagens C e C++ podem produzir cdigo nativo muito pequeno, alm de altamente otimizado para uma plataforma especfica. Estas linguagens so indicadas para programao em ambientes com fortes restries de memria, como o caso da maioria dos dispositivos ubquos.

    Os dispositivos ubquos processam executveis e dados direto de sua localizao em RAM ou ROM. A quantidade de memria nos dispositivos ubquos uma frao da de um PC (normalmente no tem disco rgido). A programao da aplicao deve ser eficiente pois o poder de processamento e a memria so recursos limitados. Deve-se evitar perder dados quando a bateria est com carga baixa. Muitas vezes o sistema operacional e as aplicaes no so atualizveis no tempo de vida do dispositivo. As aplicaes normalmente no so reiniciadas e podem executar para sempre.

    3.1.1 O desenvolvimento de aplicaes para ambientes de computao ubqua

    Ao desenvolver aplicaes para dispositivos ubquos, os programadores devem ter em mente as seguintes restries:

    tamanho limitado da tela, capacidade limitada de entrada de dados, poder limitado de processamento, memria, armazenamento persistente e vida da bateria

    alta latncia, largura de banda limitada e conectividade intermitente (o que os dispositivos esperam encontrar em termos de conectividade)

    Frente s limitaes listadas acima, as aplicaes devem:

    Conectar-se a rede apenas quando necessrio

    Consumir da rede apenas os dados que realmente precisa

    Permanecer til mesmo quando desconectado

    Algumas estratgias para o desenvolvimento de aplicaes para dispositivos pequenos incluem:

    Manter simples. Remover caractersticas desnecessrias. Se possvel tornar essas caractersticas como uma aplicao secundria, separada.

    Menor melhor. Aplicaes menores usam menos memria no dispositivo e requerem tempo mais curto de instalao.

    Deixe o servidor fazer a maior parte do trabalho. Mover as tarefas computacionalmente intensivas para o servidor. Deixar o dispositivo mvel tratar a interface e quantidades mnimas de computao. Claro que isto depende de quo fcil e com que freqncia o dispositivo pode se conectar no servidor.

    Escolha a linguagem cuidadosamente. Linguagens da famlia Java, como o J2ME, no so a nica opo. Linguagens como C++ tambm devem ser consideradas.

    62XXI Simpsio Brasileiro de Redes de Computadores

  • Se linguagem usada Java, minimizar uso de memria do sistema de execuo (run-time). Usar tipos escalares em vez de tipos objetos. No depender do garbage collector (voc mesmo deve gerenciar a memria eficientemente colocando as Referncias a objetos em NULL quando terminar de usar). Somente alocar objetos quando estes forem necessrios. Liberar os recursos rapidamente, reusar objetos e evitar excees.

    Estratgias de programao para codificao visando o melhor desempenho incluem:

    Usar variveis locais. mais rpido acessar variveis locais do que acessar membros de classes.

    Evitar concatenao de string. A concatenao de strings diminui o desempenho e pode aumentar o uso de memria da aplicao.

    Usar threads e evitar sincronizao. Qualquer operao que levar mais de 1/10 de um segundo para executar requer um thread separado. Evitar sincronizao tambm pode aumentar o desempenho.

    3.1.2 Java para Ambientes Ubquos

    Applets, Servlets, JavaBeans e aplicaes Java so todos tipos de programas em Java e bem conhecidos dos profissionais da rea de Computao. Por questo de falta de espao, suas definies e caractersticas podem ser encontradas em [26], [27] e [28]. A independncia de plataforma que a Java oferece, a grande quantidade de bibliotecas disponveis (de suporte a construo de interfaces grficas a suporte de rede), e a existncia de maquinas virtuais embutidas em vrios dispositivos tornou a linguagem Java uma tecnologia chave para o desenvolvimento de software na computao ubqua.

    A figura 5 mostra como funciona a execuo de programas Java em diferentes dispositivos. O cdigo em Java compilado num cdigo neutro e padronizado denominado bytecode. O sistema operacional de cada dispositivo alvo utiliza um ambiente de execuo Java (Java runtime environment JRE) para interpretar e executar o byte code gerado na compilao, em tempo de execuo. Um interpretador de bytecode, tambm chamado de maquina virtual MV, traduz as instrues genricas em comandos nativos, especficos da maquina que est executando a aplicao. Desta forma, qualquer dispositivo que contenha uma maquina virtual Java pode executar um programa em Java sem que este tenha que ser recompilado.

    As diferentes especificaes da famlia Java

    Como os requisitos das diferentes classes de computadores so diferentes, uma linguagem Java de propsito geral que acomodasse todos esses requisitos diferentes estava tornando-se ingerenciavel. A SUN ento decidiu dividir a linguagem Java em diferentes especificaes, ilustradas na figura 6. Cada uma das verses de Java possui um Kit de Desenvolvimento de Software SDK (Software Development Kit) que implementa a verso correspondente. Segue abaixo a descrio da famlia Java.

    63XXI Simpsio Brasileiro de Redes de Computadores

  • Figura 6. As diferentes especificaes da linguagem Java

    J2SE - Standard Edition

    a especificao da linguagem Java para estaes de trabalho e PCs, para aplicaes dedicadas e applets. As maquinas virtuais so otimizadas. O objetivo maximizar desempenho e segurana ao custo de maior uso de memria.

    J2EE - Enterprise Edition

    O J2EE visa os sistemas servidores de grande porte corporativos para aplicaes de comercio eletrnico e de negcios na Web (e-business). Oferece caractersticas adicionais ao J2SE: servlets JSP, JDBC, Java Message Service, Java Naming e Interface de Diretrio, alm de Suporte a transaes (Java Transaction), correio eletrnico (Java Mail), XML, CORBA e EJB.

    J2EE

    Java 2

    Enterprise

    Edition

    J2SE

    Java 2

    Standard

    Edition

    Perfil

    TV

    Perfil

    fone de tela

    Perfil

    PDA

    Perfil

    Carro

    J2ME - Java 2 Micro Edition

    APIs fundamentais

    Perfil

    Smart

    Linguagem de programao Java

    Java HotSpot JVM KVM Card VM

    Perfi Perfil Perfil Perfil

    MV1 MV2 MV3

    bytecode Java

    Cdigo em Java

    Compila

    Executa

    Figura 5. A execuo de cdigo Java em diferentes dispositivos

    64XXI Simpsio Brasileiro de Redes de Computadores

  • J2ME Micro Edition

    Objetiva atender os requisitos de dispositivos ubquos com as seguintes limitaes: pouca memria, energia limitada, conexo intermitente rede; capabilidades grficas restritas, dentre outras. O J2ME introduz o conceito de Perfis que so subconjuntos da linguagem Java para diferentes grupos de dispositivos. composto de funcionalidade bsica mnima obrigatria. Classes adicionais, necessrias para suportar caractersticas tpicas de um grupo especifico de dispositivos, so includas em um perfil correspondente. Caso uma aplicao precise de funcionalidade adicional, no especificada no perfil do dispositivo, as bibliotecas correspondentes podem ser trazidas da rede de forma dinmica (cdigo de aplicao mais bibliotecas de classes). Inclui MVs, bibliotecas de APIs, ferramentas para colocar aplicao no dispositivo, e configura-lo. O J2ME ser detalhado mais adiante no texto.

    3.1.3 A edio J2ME para Dispositivos ubquos - o lado do cliente

    A edio J2ME um conjunto de produtos, tecnologias, ferramentas e padres necessrios para criar aplicaes para dispositivos ubquos. Inclui suporte para desenvolvimento de aplicaes no dispositivo e fora do dispositivo. O J2ME disponvel em duas verses:

    CLDC - Configurao de dispositivo limitado, conectado (Connected, Limited Device Configuration) para fones celulares, PDAs e set-top boxes de mdia capacidade. Contm a mquina virtual KVM, um interpretador de linguagem Java para microprocessadores de 16-bit ou 32-bit RISC/CISC em dispositivos com 128 a 512KB RAM, e conexo de rede intermitente. Oferece suporte total a linguagem Java (exceto ponto flutuante, finalizao e tratamento de erro). Contem verso minimizada dos pacotes java.lang, java.io, and java.til do J2SE. Implementa API javax.microedition.io, para conexes de rede (fones mveis e aparelhos de TV).

    CDC - Configurao de Dispositivo Conectado (Connected Device Configuration) permite desenvolver aplicaes para telefones de tela, set-top boxes, PDAs de alta capacidade, pontos-de-venda, navegao automotiva e utenslios domsticos. Contm uma mquina virtual completa - CVM para microprocessadores de 32-bit RISC/CISC/DSP em dispositivos com memria ROM maior que 512KB e memria RAM maior que 256KB, e conexo de rede sempre ativa. uma verso enxuta do J2SE mais classes do CLDC. Possui bibliotecas de UI restritas (telefones de tela, Set-top-boxes).

    O CLDC e CDC so aninhveis, isto , qualquer aplicao que executa uma configurao mnima capaz de executar numa configurao com recursos mais poderosos

    MIDP - Os Perfis J2ME

    O Perfil uma forma adicional de especificar o subconjunto de APIs Java, bibliotecas de classe e recursos de mquina virtual para uma famlia especfica de dispositivos. Os perfis objetivam atender necessidades de segmentos especficos da indstria. O MIDP Perfil do Dispositivo de Informao mvel (Mobile Information Device Profile) a especificao para um perfil J2ME. O MIDP foi projetado para operar acima do CLDC com o objetivo de capacitar as aplicaes Java para executarem em dispositivos mveis de informao (MIDs). Contem APIs para o ciclo de vida da aplicao, IU, rede e memria persistente

    65XXI Simpsio Brasileiro de Redes de Computadores

  • (java.sun.com/products/midp). Prov um ambiente de tempo de execuo padrao que permite a colocao dinmica de novos servios e aplicaes nos dispositivos do usurio. O MIDP um perfil padrao comum para dispositivos moveis, independente de fabricante. uma estrutura completa e de suporte para o desenvolvimento de aplicaes moveis.

    O MIDP estende o suporte conectividade oferecida pelo CDLC (via Connection framework ). Ele suporta um subconjunto do protocolo HTTP protocol, que pode ser implementado usando protocolos IP (TCP/IP) e no IP (WAP e i-mode atravs de um gateway para acesso aos servidores HTTP na internet). A estrutura de conexo Connection framework usada para suportar redes cliente-servidor e datagramas. O uso de protocolos especificados pelo MIDP permite que a aplicao seja portvel para todos os MIDs. As implementaes MIDP tm que oferecer suporte para acessar servidores e servios HTTP 1.1. Pode haver amplas variaes nas redes sem fio (e conseqente uso de gateways). A aplicao cliente e o servidor na internet no precisam estar cientes que redes no IP esto sendo usadas, tampouco precisa saber das caractersticas destas redes. Entretanto, a aplicao pode tirar vantagem deste conhecimento para otimizar as suas transmisses. Quando um MID no suportar IP, este pode utilizar um gateway para acessar a Internet. O gateway seria responsvel por servios do tipo DNS. O dispositivo e a rede podem definir e implementar polticas de segurana e acesso rede que restringem o acesso.

    MIDLets Aplicaes MIDP

    Um MIDLet uma aplicao MIDP que compreende um conjunto de classes projetado para ser executado e controlado pelo software de gerenciamento da aplicao, tambm chamado de software de gerenciamento MIDLet. O software de gerenciamento MIDLet uma aplicao que controla como os MIDlets so instalados, atualizados e desinstalados no dispositivo mvel. Ele gerencia dois tipos de MIDLets: Permanentes e do Sistema:

    MIDLets Permanentes - As MIDlets Permanentes residem, pelo menos parcialmente, em memria no voltil, tais como ROM ou EEPROM. Elas podem ser trazidas para um dispositivo e escritas na memria persistente do MID. Depois disso, um usurio pode executar uma MIDLet permanente repetidamente sem que esta tenha que ser trazida novamente.

    MIDlets do Sistema - So MIDlets permanentes especiais criadas pelo fabricante do MID. Executam funcionalidades especificas do dispositivo mvel e tm acesso a funcionalidades no publicas do dispositivo e possuem, normalmente, restries especiais para sua recuperao e instalao.

    Fases do ciclo de vida de uma MIDLet

    O Software de gerenciamento MIDLet responsvel por mover entre as seguintes fases: Recuperao, Instalao, Lanamento, Gerenciamento de verso e Remoo.

    66XXI Simpsio Brasileiro de Redes de Computadores

  • Aes resumidas que devem ser feitas para desenvolver aplicaes J2ME [29]:

    1. Buscar e instalar CLDC e MIDP para Windows ou UNIX (Win32, Solaris, e Linux)

    2. Instalar a KVM no dispositivo (atravs do HotSync do PDA)

    3. Buscar e instalar o emulador do Palm OS (POSE)

    4. Transferir a imagem da ROM de um Palm para o PC para ser usada com o emulador (disponvel de alguns fabricantes)

    5. Buscar e instalar o Toolkit Wireless do J2ME para comear a desenvolver aplicaes J2ME para dispositivos MIDP

    Produtos do Java2ME necessrios para o desenvolvimento de aplicaes do lado do dispositivo

    APIs MIDP

    APIs do CLDC - Connected Limited Device Configuration

    Bibliotecas para: Programao da Interface do Usurio em um dispositivo que usa a API LCDUI - Limited Connected Device User Interface; RMS Armazenamento persistente de dados em um dispositivo

    Conectividade com um servidor ou com outro dispositivo atravs das APIs do GCF - Generic Connection Framework

    Ferramentas de desenvolvimento para Java

    Visual Caf (Symantec)

    Jbuilder (Borland)

    Visual Studio J++ (MS)

    Visual Age (IBM)

    Outras ferramentas podem ser consultadas em [30].

    Trs outras tecnologias so definidas para potencializar o uso do Java: Java Card, Java Embarcado e Java para Tempo-Real, definidos a seguir.

    Java Card

    Menor e mais limitada verso da famlia Java. No suporta strings, interface grfica, formato de bytecode comprimido. O Frum Java Card [31] especifica o subconjunto da linguagem para smart cards. As MVs so construdas por desenvolvedores de sistemas operacionais e ficam residentes na ROM do carto

    Java Embarcado

    Objetiva os controladores industriais, switches, e outros dispositivos com restries severas de memria, em dispositivos com visor orientado a caractere ou sem visor. No existe um

    67XXI Simpsio Brasileiro de Redes de Computadores

  • core mnimo obrigatrio classes desnecessrias podem ser omitidas, o que, naturalmente, limita a interoperabilidade.

    RTJS - Java para Tempo-Real

    O Java RTJS oferece suporte na criao de aplicaes para dispositivos automotivos, industriais etc., que exigem um comportamento de execuo previsvel. Resolve problemas de coleta de lixo, realiza escalonamento personalizado de processos e threads por compartilhamento de tempo, oferece gerenciamento avanado de memria, alm de prover acesso direto memria de sensores e atuadores, suporta a sincronizao de threads e objetos, trata eventos assncronos e etc.

    3.1.4 Maquinas Virtuais Java

    KVM (Sun)

    A maquina virtual K da Sun, derivada da especificao da JVM. uma maquina otimizada para executar em sistemas com memria > 128KB. Objetiva o menor uso possvel de memria possvel, em vez de desempenho mximo. Executa em processadores de 16/32 bits. modular e extensvel, facilmente transportvel para plataformas diferentes. No suporta AWT ou swing - usa drivers de E/S especiais nativos. No implementa algumas caractersticas da MVJ padro (RMI, agrupamento de threads etc), outras so opcionais (ponto flutuante, arranjos multidimensionais, verificao de arquivo de classe) e outras ainda, so parcialmente implementadas (java.net e java.io). Para se ter uma idia do tamanho de uma maquina virtual, a KVM para PalmOS ocupa 50 a 70KB e 128KB quando em execuo. Executa em mais de 20 plataformas, entre elas: Solaris; W/32; telefones Sony, Nokia, Motorola e SO EPOC.

    Waba (Wabasoft)

    um produto de fonte aberto, com tecnologia baseada no Java similar mas no compatvel. A linguagem Waba, a Mquina Virtual Waba - MVW e o formato de arquivo de classe foram projetados para otimizar desempenho (omite caractersticas desnecessrias e/ou que usam muita memria). O tamanho da MVW de 64KB (32KB para o executvel e 32KB para as classes fundamentais). Os formatos de Arquivo de classe e bytecode so subconjuntos dos correspondentes em Java. Permite aos programadores usar ferramentas de desenvolvimento Java, desde que seja usado apenas o subconjunto suportado pelo Waba. Possui um conjunto de classes fundamentais (a menor possvel que contem funcionalidade para escrever programas complexos para dispositivos pequenos). Possui classes ponte, que permitem executar programas em Waba onde o Java for suportado. Usa bibliotecas nativas do dispositivo, o que melhora o desempenho.

    J9 Visual Age ME (IBM)

    uma maquina virtual menor e mais rpida que a KVM. Suporta adio de cores. Possui um ligador inteligente (linker), que Remove classes, mtodos e campos desnecessrios de suas aplicaes nas bibliotecas de classes. Suporta depurao remota (executa e depura a aplicao de um PDA num PC). O J9 usado pelo VAME (Visual Age ME) da IBM ambiente integrado para desenvolvimento de aplicaes Java embarcadas.

    68XXI Simpsio Brasileiro de Redes de Computadores

  • A tabela 3 mostra uma comparao entre as maquinas virtuais para dispositivos ubquos.

    3.1.5 A edio J2EE para Servidores em Ambientes de Computao Ubqua - o lado do servidor

    A plataforma Java2, Enterprise Edition (J2EE) define e simplifica aplicaes corporativas tratando de varios detalhes do comportamento da aplicao de forma automtica, sem a necessidade de programao complexa. J2EE inclui caractersticas da plataforma J2SE, tais como portabilidade, APIs JDBC para acesso a base de dados, CORBA para interao com recursos corporativos legados, alm de um modelo de segurana que protege os dados mesmo em aplicaes da Internet. A plataforma J2EE trata de complexidades que so inerentes a aplicaes corporativas, tais como gerenciamento de transaes, gerenciamento do ciclo de vida, compartilhamento de recursos etc., que podem ser usados pelas aplicaes e por componentes, facilitando assim o trabalho dos desenvolvedores que podem se concentrar na lgica da aplicao e na interface do usurio.

    Tabela 3. Comparao entre as maquinas virtuais para dispositivos ubquos[5][20].

    O J2EE prove opes de interfaces para dispositivos dos mais diferentes tipos, com suporte a linguagens simples de marcao (HTML, WML, etc). Permite o carregamento de plug-ins Java para suporte a applets por navegadores Web, alm de suportar clientes como aplicaes Java independentes.

    O J2EE Edition oferece suporte total para componentes EJB - Enterprise JavaBeans, API JavaServlets, JSP - JavaServer Pages, alm de XML. O padro J2EE inclui

    Ambiente de desenvolvimento integrado com

    depurao remota

    Ferramentas padro do Java com Waba

    VM na plataforma de desenvolvimento

    Ferramentas padro do Java com KVM na

    plataforma de desenvolvimento

    Ambiente de desenvolvimento

    Proprietrio Aberto Sob licensa da Sun Fonte

    Java, J2ME - J2ME Padres

    Dependente de dispositivo

    Dependente de dispositivo

    Independente de dispositivo Bibliotecas

    < 70KB 64KB 70KB Uso de Memria

    Alto Alto Baixo Desempenho

    Palm, W/CE, Neutrino, Linux,

    Palm, W/CE Palm, W/CE, EPOC, Linux, W/MS, Solaris

    Plataformas

    J9 Waba KVM

    69XXI Simpsio Brasileiro de Redes de Computadores

  • especificao completa e testes de conformidade para assegurar a portabilidade das aplicaes no mbito dos sistemas corporativos que suportam o J2EE. A edio J2EE compreende as seguintes tecnologias:

    EJBs (Enterprise JavaBeans) Arquitetura padro de componentes para a construo de aplicaes corporativas orientadas a objeto em Java. Constitui-se de API que permite a criao, uso e gerenciamento de componentes da aplicao, reusveis em diferentes plataformas.

    JSPs (Java Server Pages) permite a criao de contedo dinmico na web. Uma pagina JSP um documento que descreve como processar uma solicitao para criar uma resposta, atravs da combinao de formatos padro de marcao com aes dinmicas (atravs de scripts).

    Java Servlets API que estende a funcionalidade de um servidor Web, atravs de mdulos de aplicao implementados em Java

    Conectores Permite que a plataforma J2EE seja conectada a sistemas de informao heterogneos

    CORBA suporta interoperabilidade de aplicaes Java com outras aplicaes empresariais, atravs de uma linguagem de definio de interface IDL.

    JDBC (Java Database Connectivity ) API que promove a integrao com bancos de dados relacionais, alm de fornecer uma base comum sobre a qual ferramentas de alto nvel e interfaces possam ser construdas.

    3.1.6 XML

    De modo a superar as limitaes da linguagem de marcao HTML que no separa a representao dos dados da apresentao em paginas da Web, foi criada a Linguagem de Marcao Extensvel XML (Extensible Markup Language). XML uma sintaxe baseada em texto que legvel tanto por computadores quanto por humanos. Oferece portabilidade de dados e reusabilidade em diferentes plataformas e dispositivos. Algumas das aplicaes do XML incluem: suporte a publicao independente de mdia, o que permite que documentos sejam escritos uma vez e publicados em mltiplos formatos de mdia e dispositivos. Do lado do cliente, o XML pode ser usado para criar vises personalizadas dos dados. Informaes sobre XML so abundantes na Web e na literatura em geral, por isso, e tambm pelo pouco espao disponvel, no entraremos em mais detalhes sobre o funcionamento do XML.

    3.1.7 O Padro MVC para o desenvolvimento de aplicaes

    O modelo MVC Modelo-Apresentao-Controlador (Model-View-Controller) usado como padro para o desenvolvimento de aplicaes para dispositivos moveis, que oferece flexibilidade e uma ntida separao de responsabilidades. Ele visualiza a aplicao sob trs aspectos: Modelo (model), Apresentao (View) e Controlador (Controller):

    Modelo - Responsvel pelos dados e transaes da aplicao que podem ser associadas a ela. O modelo encapsula a lgica do negocio

    Apresentao Responsvel por apresentar os dados

    70XXI Simpsio Brasileiro de Redes de Computadores

  • Controlador - Recebe todas as solicitaes que chegam e controla as suas execues. Para executar uma solicitao, o controlador acessa o modelo e exibe as apresentaes conforme necessrio.

    Exemplos de uso do MVC na construo de aplicaes para celulares pode ser vistos em [32].

    Benefcios do Uso do Padro MVC

    Separando o controlador do modelo e da apresentao, o fluxo da aplicao isolado. Desta forma, os desenvolvedores podem entender a perspectiva do usurio apenas olhando o controlador. O fluxo da aplicao pode ser alterado modificando-se o controlador sem alterao (ou pouca) do restante do cdigo

    Separando o modelo da apresentao, o modelo isolado de alteraes. Desta forma, os desenvolvedores podem alterar a aparncia da interface do usurio sem ter que mudar o modelo. Separando a apresentao do modelo, a apresentao poupada dos detalhes de como funciona o modelo. O modelo pode pegar seus dados de um armazenamento local, atravs da API RMS, de um servidor usando HTTP, de uma cache de memria ou de uma combinao dessas fontes

    Para usar a rede intermitentemente e ainda permanecer til quando desconectado, a poro cliente da aplicao deve decidir sobre quando buscar os dados do servidor e quando buscar os dados do armazenamento local. As estratgias de dados locais podem ser baseadas em cache ou sincronizao para melhorar a responsividade e manter a coerncia dos dados. O particionamento destes detalhes no modelo (do MVC) torna a implementao, teste e manuteno mais fcil do que se estivessem espalhados pela aplicao

    Limitaes do padro MVC

    O MVC pode aumentar o tamanho do cdigo (grande parte no controlador). Entretanto, a pior limitao do padro MVC que, apesar dele separar o modelo da apresentao, de tal forma que os desenvolvedores possam alterar a aparncia da interface do usurio sem ter que mudar o modelo, o MVC no muda o modelo da aplicao em si, que um requisito da computao ubqua. A mudana do modelo o resultado da adaptao da aplicao frente a limitaes de recursos da rede e do sistema. Pesquisas tm que ser feitas para o desenvolvimento de novas solues de engenharia de software que permitam a especificao e desenvolvimento desses sistemas.

    3.2 Sistemas Operacionais

    Com a proliferao de inmeros dispositivos ubquos diferentes, reacendeu-se o mercado para novos sistemas operacionais personalizados para estes dispositivos.Assim como nos PCs, os sistemas operacionais de dispositivos ubquos so responsveis por gerenciar os recursos do dispositivo, e por oferecer aos programadores e usurios, uma maquina virtual que esconde a complexidade do hardware do dispositivo, tornando mais fcil a tarefa de programar suas aplicaes.

    Um dispositivo possui, tipicamente, os seguintes recursos: CPU, memria (RAM, Flash, ROM, EEPROM, etc), bateria, telas de diferentes tamanhos e tecnologias, diferentes

    71XXI Simpsio Brasileiro de Redes de Computadores

  • dispositivos de entrada (pequenos teclados, apontadores - stylus, tela sensvel a toque, processamento de voz) e sistema de arquivo. Com exceo das tecnologias envolvidas nos dispositivos, os recursos no mudam muito em relao a aqueles encontrados no PC. O que diferencia ento o sistema operacional de uma maquina tradicional do sistema operacional de um dispositivo ubquo? Uma das diferenas a especificidade do dispositivo. O PC uma maquina de propsito geral, enquanto que o dispositivo muitas vezes otimizado para realizar muito bem uma ou mais tarefas. A especializao do dispositivo um dos aspectos que determina o projeto do sistema operacional do dispositivo.

    No mundo dos PCs, h poucos competidores na rea de sistemas operacionais, mas no mundo dos dispositivos ubquos, o numero cada vez maior. Alguns exemplos de SO para esses dispositivos incluem: Palm OS (PDA), EPOC (celular), W/CE (Consumer Electronics), Java Card e W/Smart Card para Smart Cards, QXN, VxWorks etc. Provavelmente no haver monoplio equivalente ao da MS/Intel no mundo dos dispositivos ubquos. Nas sees abaixo, sero mostrados os sistemas operacionais de PDAs e celulares, bem como as caractersticas de alguns sistemas operacionais considerados como sistemas embarcados [5] [20] [33].

    3.2.1 PALM OS

    Desenvolvido pela Palm Inc., domina cerca de 70% do mercado de dispositivos de mo, apesar de proprietrio. O sucesso do PALM deve-se ao fato dele ser projetado especificamente para PDAs, ser fcil de usar, oferecer um nmero limitado de caractersticas, mas que so altamente otimizadas, levando ao uso de pouca memria e de UCP, o que garante vida mais longa de bateria.

    As novas verses do PalmOS suportam comunicao bluetooth, 64K cores, em PDAs multimdia integrados a fones mveis. Alm da Palm Inc., o Palm OS o sistema operacional de dispositivos da Sony, IBM, HandSpring entre outras. Para manter o SO pequeno e rpido, o Palm OS no separa as aplicaes umas das outras, o que traz problemas de estabilidade (se uma aplicao cai, o sistema todo cai) e de segurana, j que cada aplicao pode ler e alterar dados de outras aplicaes. As aplicaes tm que ser extremamente bem construdas e testadas.

    Toda a memria de um Palm reside em cartes de memria (um carto uma unidade lgica de RAM, ROM ou ambas). Cada carto de memria tem um espao de endereo mximo terico de 256MB. A memria dividida em Heap dinmico e Heap de armazenamento, que so gerenciados separadamente. O espao que deixado para a aplicao e muito pequeno (

  • O SO e aplicaes embutidas ficam em memria ROM. O gerente de memria aloca (pedaos de 64KB), desaloca, muda o tamanho e impede o acesso a outros pedaos da memria que podem estar na memria dinmica ou de armazenamento. O Palm OS no usa sistema de arquivo. O armazenamento estruturado em base de dados. Cada base de dados, gerenciada por um gerenciador de base de dados, possui mltiplos registros. Apenas uma aplicao roda por vez. No suporta threads - uma aplicao de busca pode invocar outras aplicaes para que elas faam, por ex., uma consulta em suas bases de dados. O controle volta para a aplicao que chamou. O Palm OS orientado a eventos que so tratados por tratadores de eventos. Eventos tpicos incluem: aes do usurio em interao com a aplicao; notificaes do sistema (alarme de tempo) e outros especficos da aplicao. Os programadores devem evitar cdigo que faa processamento enquanto espera por um evento (espera ociosa) para economizar bateria.

    As linguagens de programao disponveis so C, C++, Java e proprietrias. Dois pacotes para desenvolvimento de aplicaes so suportados: SDK (APIs para desenvolver aplicaes, funes de interface do usurio, gerenciamento do sistema e comunicao) e o CDK (Conduit Development Kit) que suporta a implementao de conduites para troca e sincronizao de dados entre uma aplicao de mesa e uma aplicao que roda no dispositivo.

    Suporte para Programao do Palm

    O suporte para programao inclui: CodeWarrior da Metrowerk e Compilador GNU C para Palm OS. Assim como ocorre para a maioria dos dispositivos ubquos, cada aplicao tem que ter um ID nico (creator ID) obtido da empresa, no caso, a Palm.

    3.2.2 O Sistema Operacional Symbiam EPOC

    Criado pela Psion (agora mantido pela Symbian fundada pela Psio, Motorola, Panasonic, Ericsson e Nokia em 1998), o EPOC est disponvel para o NEC V30H (16 bits) e o ARM/StrongARM (32 bits) e possui as seguintes caractersticas:

    Escrito em C++

    Suporta sistemas de tempo-real

    Mono-usurio

    Multitarefa tem baixa latncia no tratamento de interrupo e no chaveamento de contexto de tarefas, o que o torna ideal para responder ao usurio e receber dados do ar ao mesmo tempo

    preemptivo, com escalonador orientado a prioridade, isto , quando um processo de maior prioridade tem que ser executado, o processo atual suspenso

    Suporta e-mail e troca de mensagens, sincronizao de dados (entre dispositivo e PC)

    Suporta diferentes tipos de plataforma: Crystal (comunicadores com teclado pequeno); Quartz (pequenos comunicadores); Pearl (fones mveis inteligentes); VGA completo.

    73XXI Simpsio Brasileiro de Redes de Computadores

  • Suporte para bluetooth e WAP.

    A arquitetura do EPOC constitui-se de 4 nveis:

    1. Base - Contm sistema de execuo e ncleo com dois componentes: F32, que fornece carregador de bootstrap, acesso e monitoramento de sistemas de arquivo; e E32, que fornece escalonador, interrupo de relgio, gerenciamento de drivers do dispositivo e gerenciamento de memria, com o conceito de MMU para separar os espaos de endereo para cada aplicao, alm de ferramentas para checagem de erros de acesso invalido memria, desalocao de memria, verificao e limpeza de pilha e heap.

    2. Middleware Oferece suporte a aplicao com SGBD, armazenamento de fluxos de caracteres, impresso, servidor de janelas, etc.

    3. Interface Grfica do Usurio (EIKON) - Uma estrutura para GUIs que parte do SDK do EPOC e que oferece elementos de interface grfica padro, tais como botes de dilogos e menus; alm de tratar a entrada de dados e de comandos. A Eikon separa entre a funo da interface e a apresentao da interface, o que importante quando os tamanhos de tela e as funcionalidades de dispositivos mudam muito.

    4. Aplicaes - Cada aplicao no EPOC tem ID nico para identificao de arquivo e associao a faixa 0x01000000 a 0x0fffffff reservada para propsito de desenvolvimento e teste. Antes da aplicao ser liberada, um ID nico tem que ser solicitado a Symbian.

    3.2.3 O Sistema Operacional W/CE (Consumer Electronics)

    O W/CE no um SO de prateleira. Cada fabricante de dispositivo precisa configurar o W/CE para a plataforma de processador especfica de seu dispositivo. Normalmente o SO entregue em ROM, em contraste com os SOs baseados em disco, orientados a desktop, como o Linux ou BeOS. O W/CE oferecido em blocos modulares, o que permite a criao de um sistema apenas com as partes essenciais, economizando um espao precioso o tamanho do SO mantido consistente com o tamanho do dispositivo: um computador de mo, por exemplo, inclui mais funcionalidades do que um telefone inteligente.

    O W/CE diferencia-se totalmente do Palm OS que foi projetado de forma altamente otimizada para uma classe alvo de dispositivos. As tarefas executadas pelo ncleo do SO W/CE incluem:

    Gerenciamento de Processos e Threads

    Gerenciamento de memria

    Escalonamento de tarefas

    Tratamento de interrupo

    Caractersticas do W/CE

    Possui um Gerente de Grficos/Janelas/Eventos - GWE

    Suporta Armazenamento de Objetos (arquivos, registros e uma base de dados)

    74XXI Simpsio Brasileiro de Redes de Computadores

  • Suporta Interfaces de comunicao Infravermelho via IrDA, TCP/IP e drivers seriais

    Suporta 32 processos simultaneamente

    Suporta nmero ilimitado de threads, usadas para monitorar eventos assncronos, tais como:interrupo de hardware e atividades do usurio (depende de memria fsica disponvel)

    Suporta comunicao entre processos IPC (sees criticas, mutex e eventos)

    Suporta oito nveis de prioridades de threads (do ocioso ao tempo critico). As prioridades no podem mudar, exceto quando um thread de baixa prioridade retm recurso que um thread de alta prioridade precisa

    Suporta Interrupes que so usadas para notificar o SO sobre eventos externos

    Atende requisitos de um S.O. de tempo real no critico para aplicaes do tipo: comutao de telefonia, controle de processos de fabricao, sistemas automotivos de navegao etc.

    Trata os vrios tipos de armazenamento da mesma forma: cartes de memria flash, drivers de disco, ROM, RAM

    Possui memria virtual protegida de at G4B com Unidade de Gerenciamento de Memria MMU

    Suporta at 32MB por processo

    A memria disponvel dividida em dois blocos no W/CE[20]:

    1. Memria de programa - Alocada e gerenciada como memria virtual que usada para pilha e heap em RAM. O SO e as aplicaes embutidas, como o Pocket Word verso compacta do WinWord -, so armazenadas e executadas diretamente da ROM, o que economiza no tempo de carregamento

    2. Memria de armazenamento - Inclui os dados persistentes (normalmente armazenado em disco rgido). Parte da memria voltil referida como armazenagem de objetos (que retm registros do sistema, diretrios, todas as aplicaes e dados do usurio) com tamanho mximo de 16MB. Fora da rea de armazenagem de objetos, as bases de dados e os sistemas de arquivos podem ser instalados em RAM, ROM ou dispositivos externos. Cada sistema de arquivos pode ser dividido em mltiplos volumes, representados como pastas do diretrio raiz dos sistemas de arquivos. Os dados podem ser salvos em objetos arquivos ou bases de dados. Os arquivos so automaticamente comprimidos. O W/CE suporta Heap especial para o Sistema de Arquivos, registros e armazenagem de objetos (at 256MB) com servio de transao para assegurar integridade dos dados.

    Os esquemas de gerenciamento de memria suportados incluem a memria paginada com uso de cache e sem uso de cache e memria no paginada com uso de cache e sem uso de cache. A tabela de pginas mantida pelo hardware.

    75XXI Simpsio Brasileiro de Redes de Computadores

  • O Gerente de Grficos/Janelas/Eventos - GWE A interface do W/CE com o usurio similar ao do MS/W, com suporte a menus, caixas de dilogo, cones, som, vdeo, e reconhecimento de escrita a mo. Toda aplicao tem que ter pelo menos uma janela, mesmo que esta no possa ser mostrada. Todas as mensagens que uma aplicao envia ou recebe so passadas pela fila de mensagens do thread da janela correspondente. Uma janela o ponto de entrada de cada aplicao.

    O Subsistema de Grficos, Janelas e Eventos GWE suporta APIs de programao da interface. Inclui funes de gerenciamento de energia e troca de mensagens. O Unicode o formato de texto nativo (2 bytes por caractere). Suporta biblioteca criptogrfica (CAPI) que armazena informao segura na memria. A autenticao de aplicaes feita atravs de assinatura com chave pblica. Suporta o uso de carto inteligente para segurana de dados sensveis (dados de at 64KB em carto acesso mais lento(EEPROM x RAM).

    O W/CE suporta as seguintes caractersticas de Comunicao e Rede:

    Comunicao serial SLIP e PPP (via cabo e infravermelho)

    Conexes de Rede (protocolos da Internet e de troca de arquivos)

    API WinInet (HTTP e FTP)

    API WinSock (sockets que suportam TCP/IP)

    API IrSock suporte a comunicao infravermelha (via IrDA Infrared Data Association)

    RAS Remote Access Service suporta upload/download de arquivos (via PPP para conectar no servidor)

    API Telephony suporta comunicao via modem para um hospedeiro remoto (s chama no recebe chamadas)

    Os drivers necessrios incluem: bateria, tela, porta serial, InfraVermelho, painel de toque. Os tipos de drivers no W/CE so:

    Nativos drivers de baixo nvel que usam caractersticas embutidas de um dispositivo (fonte ou teclado), ligados com o ncleo e residentes em ROM. Os drivers nativos so integrados na configurao do W/CE pelo fabricante do dispositivo

    Interface de fluxo de dados (serial) carregados como DLLs dedicadas

    Baseados na especificao da Interface de Driver de Rede (NDIS), em que protocolos podem ser implementados independentes dos drivers de hardware

    Outros tipos de drivers podem ser instalados (impressora, modem)

    3.2.4 Linux Embarcado

    O Linux Embarcado na verdade um Linux enxuto com suporte especial para dispositivos ubquos. Possui as seguintes caractersticas :

    76XXI Simpsio Brasileiro de Redes de Computadores

  • Arquitetura microkernel - servios e caractersticas podem ser compiladas no ncleo ou carregadas como mdulos dinamicamente ligados em tempo de execuo

    Suporte multiusurio

    Sistema multitarefa, preemptivo, com escalonadores de tempo-real opcionais

    Suporte bsico para mltiplos processadores

    Tamanho do ncleo pode variar de 200KB a vrios MB (uma critica ao linux para dispositivos ubquos a de que ele necessita de 2 a 8 MB de memria em tempo de execuo)

    Suporta memria virtual com paginao

    Suporta verses enxutas do X-Window para interface do usurio

    Possui verses para processadores MIPS, ARM, Motorola e Intel

    W/SmartCards

    Os menores SOs executam em cartes inteligentes, com severas restries de memria e poder de processamento. Alguns SmartCards possuem uma maquina virtual Java em ROM que permite que applets Java sejam carregadas para o carto e executadas. Mltiplas applets podem ser executadas em alguns SOs, o que torna o SO para este ambiente bastante complexo, com o suporte a conceitos do tipo multiprogramao, escalonamento de tarefas, gerenciamento de recursos, proteo de memria etc.

    Um exemplo de SO complexo, porem primitivo, para SmartCards, o Windows para SmartCards. O SO W/SmartCard oferece para os programadores uma API bem definida, que esconde detalhes do carto e oferece funcionalidade independente de carto. Em vez de Java, usa bytecode gerado pelo VisualBasic, que executado em um ambiente de execuo no carto.

    O Sistema de arquivo baseado em uma FAT File Access Table. O nmero e tamanho de parties so estabelecidos durante configurao - apenas uma partio suportada no momento.

    Em termos de segurana, suporta autenticao, com o conceito de principais conhecidos, em que principais refere-se a usurio, grupo de usurios, ou sistemas. um sistema configurvel, onde um arquivo no carto criado para definir como o processo de autenticao de um principal conhecido. A autenticao similar h do PC, mas oferece um protocolo mais sofisticado de autenticao (padro de Encriptao de Dados - DES). Alm da Autenticao, prov tambm um esquema de Autorizao, com o uso de Listas de Controle de Acesso ACLs que estabelecem os direitos de acesso, atravs de mecanismos de autorizao (regras lgicas que definem quem t