Você está na página 1de 41

UNIDADE 3 AGENTES DA COMPUTAO UBQUA OBJETIVO DA UNIDADE

Nesta unidade o leitor poder entender melhor os conceitos que esto por traz do objeto de estudo dessa disciplina como dispositivos que daro vida ao conceito de computao ubqua. Alm disso, a unidade abordar conceitos a cerca dos aplicativos e sistemas operacionais programados para dispositivos mveis e por fim a segurana e conectividade a cerca da bcomputao ubqua.

1. DISPOSITIVOS
Os cenrios mostrados na unidade 2 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 na unidade 2. Uma tentativa de classificar esses dispositivos ilustrada abaixo. Ser apresentado, no texto a seguir, apenas um resumo das caractersticas principais de cada classe de dispositivos.

1.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.

Figura 17 - CONTROLE PARA AS LUZES DE UMA RESIDNCIA

1.2.

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.

Figura 18 - CARTES COM CHIP

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. 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 e OpenCard Framework OCF.

1.3.

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.

Figura 19 - CONTROLE DE FUNES DE RESIDNCIA

1.4.

COMPUTAO AUTOMOTIVA

Um nmero 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: (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.

Figura 20 - EQUIPAMENTO PARA CONEXO DO NIBUS COM REDES WIRELESS

Com o barramento, que age como uma rede de comunicao, diferentes componentes, com interfaces bem definidas, podem ser conectados. Estas interfaces tm que 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 - ODBII, o europeu Controller rea Network CAN, o padro aberto Local Interconnect Network LIN, o barramento IDB Intelligente Transportation Systems Data Bus, entre outros.

2. 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), Subnotebooks (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.

Figura 21 - PDA/IPAD

2.1.

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.

Figura 22 - PDA

2.2.

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. Apesar de algumas dessas tecnologias poderem ser usadas nas outras classes de dispositivos, elas se referem, em especial, aos dispositivos de acesso a informao.

Figura 23 - CELULARES TOUCH SCREEN

3. ASPECTOS DE HARDWARE DOS DISPOSITIVOS UBQUOS


3.1. 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.

Figura 24 - BATERIA DE NOTEBOOK/BATERIA DE CELULAR

3.2.

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).

Figura 25 - TELAS LCD

3.3.

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 - UtRAM, 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 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.

Figura 26 - MEMRIAS PARA DISPOSITIVOS MVEIS

3.4.

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.

Figura 27 - PROCESSADOR PARA DISPOSITIVOS MVEIS

3.5.

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.

3.6.

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.

Figura 28 - TECLADO DEIXA DE SER COMPONENTE PARA SER FUNO

3.7.

TECLADOS TEGIC T9

O padro T9 (Text on 9 digits) 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 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.

Figura 29 - ATIVAO DA FUNO T9

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.

3.8.

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 14 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).

Figura 30 - ESCREVENDO EM UM PAD

3.9.

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 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.

3.10.

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.

4. SOFTWARE DE SISTEMAS DE COMPUTAO UBQUA


Devido s 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.

4.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.

4.2. O DESENVOLVIMENTO DE APLICAES AMBIENTES DE COMPUTAO UBQUA

PARA

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; 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.

4.3.

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. A independncia de plataforma que a Linguagem 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 15 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.

4.4. 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 16. 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.

Figura 31 - COMPILANDO CDIGO JAVA

Figura 32 - ESPECIFICAES JAVA

4.4.1. 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.

4.4.2. 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.

4.4.3. 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 configur-lo. O J2ME ser detalhado mais adiante no texto.

4.5.

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.

4.6.

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. 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 . 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.

5. 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.

5.1. 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. AES RESUMIDAS QUE DEVEM SER FEITAS PARA DESENVOLVER APLICAES J2ME: 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.

6. FERRAMENTAS DE DESENVOLVIMENTO PARA JAVA:


Visual Caf (Symantec); Jbuilder (Borland); Visual Studio J++ (MS); Visual Age (IBM);

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

6.1.

JAVA CARD

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

Figura 33 - CHIP QUE O JAVCARD VAI EMBARCADO

6.2.

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 core mnimo obrigatrio classes desnecessrias podem ser omitidas, o que, naturalmente, limita a interoperabilidade.

6.3.

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.

7. MAQUINAS VIRTUAIS JAVA

7.1.

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.

7.2.

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.

7.3.

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. A tabela 1 mostra uma comparao entre as maquinas virtuais para dispositivos ubquos.

7.4.

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 1 - COMPARAO ENTRE MQUINAS VIRTUAIS PARA DISPOSITIVOS UBQUOS

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 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. Constituise 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.

OBS.: 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.

8. 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 ferece 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; 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 mais a frente.

8.1.

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.

8.2.

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.

9. SISTEMAS OPERACIONAIS
Com a proliferao de inmeros dispositivos ubquos diferentes, reacendeuse 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 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.

9.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 (<36KB), por isso a memria da aplicao deve ser mantida a menor possvel, com aes do tipo: evitar gerao de estruturas grandes de pilhas, evitar uso de variveis globais e copias de base de dados na memria dinmica etc. O Heap dinmico alocado para pilha e heap de aplicaes em execuo. O Heap de Armazenamento retm dados permanentes, tais como base de dados e arquivos fonte da aplicao. uma memria protegida contra escrita , acessada apenas atravs do gerente de memria. Prov acesso rpido de leitura e lento de escrita. A integridade garantida atravs de suporte a transaes. 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.

Figura 34 - PALM OS

9.1.1. 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.

9.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; 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.

9.3. O SISTEMA ELECTRONICS)

OPERACIONAL

W/CE

(CONSUMER

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.

9.3.1. CARACTERSTICAS DO W/CE


Possui um Gerente de Grficos/Janelas/Eventos GWE; Suporta Armazenamento de Objetos (arquivos, registros e uma base de dados); 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 sncronos, 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: 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.

9.3.2. 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).

10.

LINUX EMBARCADO

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

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.

11.

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 tem permisso para fazer o que com um arquivo em particular). As ACLs so armazenadas dentro de arquivos, o que permite proteger as ACLs atravs de ACLs associadas. O W/SmartCard suporta applets que so implementadas em cdigo nativo ou Visual Basic (compiladas em bytecode, interpretadas por um sistema de execuo e

executadas por MV genrica). Apenas um sub-conjunto do Visual Basic pode ser usado, entretanto funcionalidades extras podem ser adicionadas, atravs de plug-ins. Outra iniciativa em sistemas operacionais para SmartCards o JavaCard. A interoperabilidade entre os dois difcil. Por exemplo, os modelos de direitos de acesso nos dois so completamente diferentes. Dados os sistemas operacionais para dispositivos ubquos vistos acima, pode-se observar que existem pelo menos duas linhas distintas de desenvolvimento: de um lado, um SO enxuto, altamente otimizado para aplicaes especificas, com interfaces nativas que exploram todas as caractersticas do hardware. Exemplo deste tipo de SO o PalmOS. Do outro lado, tem-se SOs complexos, de tempo-real, multitarefa, que tratam interrupes e chaveiam a CPU para outros processos mais prioritrios, como o caso do EPOC, usado em celulares, onde a aplicao mais importante o atendimento a chamadas ou a recepo de mensagens curtas, que podem chegar a qualquer momento, inclusive no momento em que o usurio est interagindo com outra aplicao. O projeto de sistemas operacionais para dispositivos ubquos devem ser pensados em funo dos tipos de aplicaes que devero ser oferecidas por um dispositivo, bem como as capacidades de hardware daquele dispositivo. O mercado acena com inmeras possibilidades e necessidades, o que leva a muitas oportunidades de desenvolvimento de novos SOs.

12.

MIDDLEWARE

Uma das principais funes de um middleware prover abstrao das dependncias do SO. O middleware, tipicamente uma camada entre o sistema operacional e as aplicaes, oferece certas operaes e estruturas de dados que permitem aos processos e usurios interoperarem em maquinas diferentes de forma consistente. Estas estruturas e operaes so muitas vezes denominadas na literatura como APIs, frameworks, bibliotecas, etc., que so consideradas como componentes de middleware. Segue abaixo uma breve descrio de alguns componentes construdos como resultado de iniciativas de empresas e outras de laboratrios de Universidades e Institutos de Pesquisa.

13.

COMPONENTES DE MIDDLEWARE NO MERCADO


DE PROGRAMAO DA APLICAO APIS

INTERFACE

(APPLICATION PROGRAMMING INTERFACE)


As APIs Java funcionam como extenses para a plataforma Java, para suportar servios especficos da aplicao. Exemplos incluem: APIs JavaPhone suporta servios de telefonia, tais como: funcionalidades bsicas para tratar chamadas, funcionalidades de gerenciamento de informao pessoal PIM (Personal Information Management), suporte para tratamento de mensagens curtas, independente de rede ou hardware particular, suporte para monitoramento de bateria, e outras mais;

JavaTV suporta servios de TV. Exemplos incluem: funcionalidades para sobreposio de vdeo e de grficos na tela da TV, suporte a servios que oferecem diferentes vises sobre um mesmo dado, suporte a Guias Eletrnicos de Programao etc.

PC/SC para SmartCards Interface de programao padronizada que permite acessar cartes inteligentes de forma independente da aplicao. Exemplos de servios incluem: APIs que abstraem os protocolos especficos dos terminais de leitura de cartes (leitoras), APIs para acesso a arquivos e autenticao, recursos de deteco de insero e remoo do carto, etc. Framework OpenCard (OCF) Assim como o PC/SC, o OCF uma API Java para desenvolver aplicaes de smartcards no lado do terminal (leitora). O objetivo do OCF tornar partes de uma soluo para smartcards, fornecidas tipicamente por diferentes fabricantes, independentes umas das outras. O OCF define dois conceitos bsicos: a camada de Terminal do carto (abstrao da leitora de cartes) e a camada de Servio do carto (suporte a servios de acesso a arquivos no carto,assinatura digital, instalao/desinstalao de applets etc;

13.1.

FRAMEWORKS

Os frameworks pode ser definidos como estruturas bsicas para uma certa classe de aplicaes. Exemplo de classe de aplicao suportada por frameworks: WebTV iniciativas como a Especificao de Contedo Melhorado do Frum de Melhorias para a TV Avanada (ATEVF) definem formas padronizadas de difundir a TV de maneira melhorada. A WebTV parte desta especificao e consiste num software residente em uma set-top-box (caixa digital que age como interface entre o usurio e o provedor de contedo de TV) que objetiva receber dados e apresenta-los na forma de paginas da web na tela da TV. Para isso, consiste de trs elementos: gatilho para entregar eventos entre paginas ligadas; formatao de contedo para HTML e avisos para iniciar ao contedo da TV melhorada. Outros componentes de middleware incluem: Estruturas de suporte a base de dados, como por exemplo, o DB2 Everywhere, que oferece, alm de servios de armazenamento e recuperao de dados no dispositivo, suporte a sincronizao entre os dados do dispositivo e do servidor correspondente; Infraestruturas escalveis de suporte a mensagens, como o ME everyplace, disponvel para o PalmOS, W/CE, EPOC e outros.

13.2.

MIDDLEWARES NA ACADEMIA

Bibliotecas, frameworks, toolkits e infra-estruturas de servios tm sido construdas para suportar aplicaes em ambientes ubquos. Nos laboratrios de pesquisa de Universidades e empresas, solues tm sido pesquisadas que convertem um espao fsico e seus dispositivos de computao ubqua em um sistema

de computao programvel. Um dos desafios nesta tarefa como capturar e tratar os dados que so lidos de sensores e que, quando interpretados, definem um contexto que pode influenciar no fluxo da aplicao. Todas as estruturas vistas acima tratam do suporte a uma classe especifica de servios (telefonia, TV, smartcards). Os middlewares sendo pesquisados no meio acadmico so mais ambiciosos e oferecem solues mais completas para o suporte da mobilidade, adaptabilidade de aplicaes, tratamento de contexto, descoberta de servios, etc. Segue abaixo um resumo de alguns desses projetos: Context Toolkit, um conjunto de ferramentas desenvolvido pelo Georgia Institute of Technology preocupa-se com tudo que referente a dados de contexto capturados atravs de sensores em ambientes de computao ubqua. Seu objetivo auxiliar o desenvolvimento de solues para tratar as dificuldades originadas da natureza da informao de contexto e, ento, facilitar a construo de aplicaes cientes de contexto. O Context Toolkit utiliza o conceito de widgets que utilizado nos toolkits de GUI (Graphical User Interface). Um widget de contexto um componente de software que fornece aplicao acesso a informao de contexto de seu ambiente operacional. O desafio a ser superado pelo Context Toolkit o tratamento de contexto. Gaia uma infra-estrutura desenvolvida pela Universidade de Illinois que trata um espao ativo (ActiveSpace) e seus dispositivos de forma anloga a um SO tradicional, fornecendo servios bsicos, incluindo eventos, presena de entidades (dispositivos, usurios e servios), notificao de contexto, descoberta e sistema de nomes etc. O Espao Ativo corresponde a qualquer ambiente de computao ubqua que pode ser gerenciado pela infraestrutura Gaia. Gaia utiliza uma nova abstrao para a computao que chamada de espao virtual do usurio (User Virtual Space). Um espao virtual do usurio composto por dados, tarefas e dispositivos que esto associados a um usurio; ele permanentemente ativo e independente de dispositivo; move-se com o usurio e mapeia dados e tarefas no ambiente de computao ubqua do usurio de acordo com seu contexto atual. Gaia converte um espao fsico e seus dispositivos de computao ubqua em um sistema de computao programvel. iROS (Interactive Room Operating System) uma infra-estrutura construda pela Universidade de Stanford para dar suporte a aplicaes dentro de um espao fsico utilizando tambm a abordagem de SO. A infra-estrutura consiste de um metaSO que une dispositivos com seus SOs especficos. O Espao de Trabalho Interativo (Interactive Workspace) considerado pelo iROS, consiste de um ambiente com alta tecnologia em que pessoas podem interagir de maneira colaborativa. A arquitetura do iROS composta por trs subsistemas: memria de eventos (EventHeap), memria de dados (Dateap) e ICrafter. O ncleo do iROS a memria de eventos, um repositrio central no qual todas as aplicaes do espao de trabalho interativo podem publicar eventos [38]. A memria de dados responsvel pela transformao e movimentao dos dados, permitindo que qualquer aplicao coloque dados num lugar associado ao ambiente local. O ICrafter responsvel pelo controle dos recursos no ambiente. Trata da adaptao de interfaces, bem como contexto, e descoberta de servios.

Com exceo do Context Toolkit, que enfatiza o tratamento do contexto, outros projetos, tais como o Aura, o RCSM (Reconfigurable Context-Sensitive Middleware) e varios outros encontrados na literatura tm objetivos comuns, que so

na verdades, os desafios da computao ubqua, a saber: tratamento da heterogeneidade de dispositivo, tratamento de contexto (localizao do usurio, autenticao, atividade, presena de outras pessoas por perto, etc.); adaptao e descoberta de servio, dentre outros.

14.
so:

COMPUTAO UBQUA SEGURANA


Os objetivos gerais dos sistemas computacionais com relao a segurana

Integridade da informao contra a adulterao dos dados; Confidencialidade dos dados contra a exposio dos mesmos; Disponibilidade do sistema contra a recusa de servio. No caso dos sistemas de computao ubqua, estes trs objetivos se mantm e podem tornar-se crticos dependendo dos cenrios de aplicao. Quando o ambiente , por exemplo, uma rede domstica, que conecta dispositivos do tipo sensores de temperatura, atuadores que ligam aquecedores, ar-condicionado etc., e que podem ser configurados a distancia, via web, a segurana no tangente ao controle de acesso e integridade dos dados critica, uma vez que crackers (hackers do mal), podem entrar no sistema e alterar valores de configurao, como temperatura do quarto do bebe, que pode levar ao comprometimento do bem estar dos moradores. Os riscos de acesso indevido e adulterao de dados se repetem em outros ambientes, como dentro de um automvel, por exemplo, quando prev-se que dispositivos internos podero ser acessados e mantidos remotamente pela montadora ou pelos fabricantes de peas. Em outros cenrios, como os de m-commerce (comercio mvel), os usurios acessam a Internet e efetuam compras, fornecendo dados pessoais como o numero do carto de credito e endereo do cliente para a entrega de mercadorias. Este tipo de cenrio no difere muito do cenrio da web com acesso via PC ou wap. O agravante aqui que o acesso feito por uma multiplicidade de dispositivos diferentes, onde cada um pode ter um sistema operacional diferente, que juntamente com as aplicaes e a limitao de recursos do prprio dispositivo, podem abrir novas brechas de segurana que so difceis de serem identificadas. Os cenrios que ilustram possveis problemas ocasionados por brechas na segurana so inmeros e assustador o que pode acontecer caso estas brechas sejam exploradas. No se tem a pretenso aqui de identificar e enumerar todos os possveis problemas de segurana em sistemas ubquos, at porque este um tema importante de pesquisa que est sendo explorado atualmente. Desta forma, e como existe vasta literatura na rea de segurana de sistemas tradicionais e da web, sero discutidos neste capitulo, apenas os principais motivos

que provocam as brechas nos sistemas de segurana de uma maneira geral e os conceitos bsicos de criptografia, uma das tcnicas mais importantes de segurana.

14.1.

O QUE ORIGINA AS BRECHAS NA SEGURANA?

Os principais motivos que originam brechas na segurana e por conseqncia possibilitam invases so: M configurao de Computadores e Sistemas: a m configurao ocorre tanto em softwares especficos de segurana, como firewalls, quanto em outros softwares no propriamente relacionados com segurana. A utilizao de verses antigas de softwares, por exemplo, tambm contribui para o aparecimento de falhas de segurana, pois estes podem conter erros j conhecidos que facilitem uma invaso. Por exemplo, o uso de senhas padro, aps a instalao do sistema, uma causa comum de invases. Nos sistemas ubquos, dados e aplicaes podem estar parcial ou totalmente localizados em servidores que so acessados por dispositivos diferentes. Estes servidores podem estar sujeitos a m configurao. Falhas de Softwares: este tipo de falha bastante freqente e pode causar o funcionamento inadequado de um software sob certas condies, comprometendo o funcionamento do sistema ou possibilitando explorao de fraquezas para danificar ou ganhar acesso (como a no criptografia de senhas pelos protocolos telnet e ftp). Estes problemas, s vezes, so difceis de serem corrigidos se no existir uma atualizao do software para corrigir a falha. Neste caso, a soluo mais bvia seria no utilizar o programa, mas isto muitas vezes pode ser invivel devido grande utilizao deste. No caso da computao ubqua, os problemas de software podem estar no dispositivo e no servidor (sistema operacional, aplicaes, frameworks, middleware etc.); Falta de Conhecimento por Parte do Usurio: muitas falhas poderiam ser evitadas se os responsveis pelos sistemas e usurios tivessem o conhecimento sobre os problemas e solues. Por exemplo, um administrador de rede deveria ter conhecimento sobre as falhas dos softwares utilizados em sua rede e nos seus servidores ou o usurio deveria verificar se o seu navegador est utilizando uma conexo segura no momento que este deseja efetuar uma compra, via Web, de um produto. Desta maneira todas as pessoas que utilizam um sistema devem ter noes bsicas de segurana. Entretanto este um dos problemas de segurana mais difceis de ser resolvido. Em ambientes de computao ubqua, onde um dos objetivos tornar o computador e a rede invisveis para o usurio, embarcados em ambientes inteligentes que trocam informaes e engatilham aes independentemente do usurio, difcil visualizar o usurio se preocupando com questes de segurana. Ainda h muito a avanar nesta rea.

14.2.

ASPECTOS DE SEGURANA NOS DISPOSITIVOS

O nvel de segurana de um dispositivo varia muito de acordo com tipo de dispositivo, seu hardware, sistema operacional e a forma como executa as aplicaes. Alguns aspectos que influem na segurana dos dispositivos incluem: A execuo de software que no muda, no dispositivo, fica menos sujeita a brechas de segurana do que a execuo de software que carregado arbitrariamente no dispositivo; Existncia de hardware de proteo de memria importante para isolar as aplicaes umas das outras; O poder computacional do dispositivo pode influenciar na segurana - quando este limitado, o suporte a assinaturas e encriptao pode ser implementado apenas com chaves de pequeno comprimento, deixando o sistema mais vulnervel. Um ponto importante na segurana dos dispositivos est em poder dos projetistas da aplicao: na implementao de aplicaes que precisam de segurana, o projetista deve estar ciente do nvel de segurana que o dispositivo cliente suporta.

14.3.

ASPECTOS DE SEGURANA NO SERVIDOR

Todos os aspectos relativos a segurana de servidores nos sistemas tradicionais, devem ser considerados nos sistemas de computao ubqua, tais como: Autenticao do servidor da aplicao e/ou dos dados, por exemplo, atravs de certificados digitais, para garantir que a interao est ocorrendo com o verdadeiro servidor para o dispositivo cliente; Restrio de acesso ao servidor; Atualizao de todos os softwares no servidor; Utilizao de ferramentas de busca de vulnerabilidades; Restrio de funcionalidade. Restrio de relaes de confiana com outras mquinas etc; Proteo das chaves utilizadas pelo algoritmo de criptografia na proteo da comunicao com os dispositivos cliente Proteo do servidor contra comprometimento por usurios internos da rede/sistema e atacantes externos; Proteo da base de dados (que pode estar no mesmo servidor da aplicao, o que no aconselhvel, ou em servidores diferentes); Proteo contra acesso e alterao no autorizados s informaes; Proteo contra acesso e alterao no autorizados a backups ou base de dados replicada; Proteo contra comprometimento do servidor (invases e ataques do tipo recusa de servio - Denial-of-Service); Utilizao de criptografia para proteger dados confidenciais, tais como os nmeros de cartes de crdito; Instalao e configurao de firewall entre a Internet e a intranet da empresa provedora de aplicaes, visando a proteo do servidor de aplicaes e/ou dados contra acesso no autorizado e ataques de hackers;

Instalao e Configurao de firewall entre a rede interna e o servidor de aplicao e/ou dados, visando a limitao do acesso de dentro da Intranet a dados ou aplicaes que devem ser protegidos inclusive dos usurios da rede interna da empresa provedora de aplicaes/dados. O controle de acesso e a autenticao devem ser capazes de tratar diferentes tipos de dispositivos cliente e suas linguagens de marcao, tais como HTML para clientes PC, WML para clientes WAP, VoiceXML para telefones apenas de voz, HTML simples para PDAs etc. A privacidade deve ser garantida atravs da proteo do trafego de dados contra a exposio dos mesmo. Conexes seguras devem ser estabelecidas fim-a-fim entre os dispositivos e o provedor da aplicao. No PC, o protocolo SSL (Secure Socket Layer) usado para garantir a privacidade dos dados que trafegam na rede. Quando os dispositivos no tm capacidade de encriptao, um gateway pode ser colocado entre os dispositivos e o provedor da aplicao, de tal forma que a transmisso seja feita com texto claro at o gateway e de l at o provedor, segue encriptado. Conforme ser visto no capitulo de Conectividade, algumas tecnologias de conexo, tais como Bluetooth, asseguram a privacidade na comunicao entre dispositivos. Entretanto, a rede sem fio, principalmente a de longa distancia, ainda est sujeita a muitos problemas de segurana que certamente abriro brechas para invases nos sistemas de computao ubqua.

15.

CONECTIVIDADE

Conforme visto nos cenrios da unidade 2, a conectividade um dos aspectos chave no conceito da computao ubqua. O conceito da comunicao de qualquer lugar e a qualquer momento o conceito das redes que oferecem servios de comunicao pessoal, como voz e dados. Os servios de Comunicao Pessoal PCS referem-se a sistemas celulares que operam em bandas de alta freqncia. Com a evoluo da tecnologia de radio, novas geraes de sistemas celulares tm surgido que oferecem servios multimdia mais sofisticados de comunicao pessoal. As geraes G1, G2, 21/G2 e G3 refletem essa evoluo. Entretanto, os servios a serem oferecidos na computao ubqua vo alm dos servios de comunicao pessoal. Outras tecnologias sem fio de media e curta distancia surgiram para prover a interao entre dispositivos, de forma transparente para o usurio. Esta interao vai desde a conexo sem fio de um PC a seus perifricos, eliminando assim o cabeamento excessivo, at a conexo e comunicao entre dispositivos nos mais diversos ambientes (residncia, escritrio, cho de fabrica, sala de aula, lojas e shoppings, hotis, aeroportos, automvel etc) para a realizao das mais diversas tarefas. Tecnologias de comunicao sem fio de curta e media distancia, tais como o Bluetooth, Wi-Fi e HomeRF, juntamente com as redes de longa distancia, compem uma estrutura bsica de suporte aos sistemas de computao ubqua.

15.1.

O SISTEMA CELULAR

Um nico sistema celular interconecta varias pequenas reas de cobertura de radio, denominada de clulas. A idia bsica do sistema celular o reuso da freqncia, que proporciona que um mesmo conjunto de canais possa ser reutilizado

em reas geogrficas diferentes, distantes o suficiente umas das outras de forma que interferncias estejam dentro de limites tolerveis. O conjunto de todos os canais disponveis no sistema alocado a um grupo de clulas denominado cluster. O numero de clulas por cluster constitui o padro de reuso que est intimamente relacionado com a capacidade e a qualidade da transmisso. Quanto menor o tamanho da clula, maior o numero de clulas que podem ser empregadas, aumentando assim o numero de canais que podem ser atribudos aos usurios. Desta forma, a capacidade de um sistema celular determinada pelo tipo de padro de reuso, bem como a cobertura das clulas. Os sistemas sem fio so normalmente projetados usando um padro de reuso de 4, 7 ou 12 clulas. Um padro tpico de reuso o de sete clulas. Conforme aumenta a demanda por mais capacidade ou os nveis de servio precisam ser melhorados, clulas adicionais tm que ser empregadas. Os trs principais componentes de um sistema celular, mostrados na figura 19, so:

Estao mvel; Estaes Base; Equipamento central de processamento (ou Centro de Comutao mvel - MSC);

A Estao Mvel a entidade que prov a funo de telefone mvel utilizado com o sistema celular. equipada com uma unidade de controle, um transceptor e sistema de antena que permite a comunicao com a estao-base mais prxima. A estao mvel gera um sinal de identificao para que a estao-base possa identific-la quando ativada. Para colocar uma chamada, sinaliza o inicio da chamada para a estao-base via um canal de controle. Para operar em modo analgico e digital, tanto a estao rdio-base quanto a estao mvel precisam ser modo dual (unidade de modo dual responde primeiro a um canal digital). As Estaes-Base gerenciam os canais de rdio dentro da clula. Contm uma unidade de controle, equipamento de radio-base e uma antena. A estao-base fornece a ligao entre a estao mvel e o equipamento central de processamento. Supervisiona chamadas, diagnostica problemas, passa mensagens de dados para o equipamento central de processamento e para as estaes mveis, monitora a potncia do sinal da estao mvel, varre todas as estaes mveis ativas nas clulas adjacentes e relata a potncia do sinal para a central, que mapeia todas as unidades mveis - este mapeamento determina qual clula deve servir uma estao mvel quando esta cruza de uma clula para outra (handoff). A rea de cobertura configurvel e pode ser projetada baseada na geografia, densidade demogrfica e requisitos de capacidade geral. trs descries gerais de tamanhos de clulas so possveis : pontos Macroclula clula tpica em um sistema celular. Oferece cobertura em um raio geralmente maior que 300m e at 40km; Microclula Cobertura tpica num raio entre 60 e 300 m. As microcelulas so muitas vezes usadas para aumentar a capacidade do sistema, preencher

mortos ou para reduzir congestionamentos de handoff e de trafego em geral. Picoclulas Oferece cobertura em um raio de menos de 60 m. ideal para o interior de prdios ou campus local. A potncia do sinal de transmisso e o tamanho da antena ditam a cobertura de uma clula.

Figura 35 - SISTEMA CELULAR

O equipamento central de processamento conhecido como Centro de Comutao Mvel MSC. o centro nervoso do sistema, pois controla a operao mvel dentro das clulas. Pode alojar sistema de bilhetagem, arquivos de assinantes, informao estatstica sobre volume de trfego e contabilizaes em geral. O MSC conectado s estaes-base, atravs de linhas terrestres, enlaces microondas ou uma combinao das duas. O nmero de estaes-base que podem ser controladas varia. Num sistema pequeno, todas as estaes base so conectadas a um MSC que faz as atribuies de canais. Em um sistema grande pode haver uma hierarquia de MSCs. O MSC conectado Rede de Telefonia Pblica Comutada.

15.2.

HANDOFF

A transferncia de uma chamada de um sistema de servio para outro enquanto a chamada est em progresso faz parte de qualquer sistema de comunicao mvel. Quando uma estao mvel se move entre clulas que so servidas pelo mesmo MSC, ocorre o denominado Handoff Intra-sistema. O Handoff intersistemas ocorre quando a estao mvel se move entre clulas servidas por MSCs diferentes. Neste caso, coordenao e sinalizao adicional bso necessrias entre os dois MSCs.

15.3.

ROAMING

O Roaming define a capacidade de uma estao mvel se mover para fora de sua rea normal de servio, atravs da implementao de funes de rede que rastreiam a localizao do assinante e transferem essa informao do sistema de sua rea normal de servio para o sistema da rea temporria sendo visitada por ele. O servio de roaming habilitado, atravs de uma rede de sinalizao entre os MSCs, que podem ser de provedoras diferentes. A expanso da rede de sinalizao e os acordos entre operadoras tornam o roaming mais fcil.

16.

ADAPTAO DE APLICAES EM AMBIENTES UBQUOS

A adaptao em ambientes de computao ubqua uma questo atual importante de pesquisa. Os ambientes de computao ubqua so caracterizados pela grande diversidade de dispositivos, heterogeneidade de redes e conexo intermitente. As aplicaes tm que se ajustar a mudanas nesses ambientes, de forma transparente para o usurio. Uma aplicao pode sofrer adaptao de dados e/ou de controle. A adaptao de dados implica numa transformao dos dados usados com freqncia pela aplicao para verses que se adaptam aos recursos disponveis, sem a perda da representao, por exemplo, uma textura pode ser transformada para uma outra verso de textura com resoluo menor. J a adaptao de controle implica na modificao do fluxo de controle da aplicao, ou seja, no seu comportamento. Por exemplo, uma aplicao pode a partir da notificao de aumento de atraso na rede, introduzir um buffer de recepo de dados, em tempo de execuo, para a diminuio da latncia. A adaptao orientada por uma poltica de adaptao. O tipo da aplicao, bem como o tipo dos dados da aplicao, muitas vezes dita a escolha da poltica de adaptao. Um modelo de adaptao deve levar a poltica de adaptao em considerao (quando adaptar, o que adaptar, quanto adaptar, consideraes de custo etc), alm de outras questes, tais como: deteco de conflito de interesses e como resolve-los, grau de interveno do usurio na poltica de adaptao etc.

RESUMO DA UNIDADE
Pode-se observar nessa unidade os principais agentes que compe a computao ubqua. Como por exemplo os cartes inteligentes, controles inteligentes e etc. Observou-se tambm os sistemas operacionais desenvolvidos para executarem nos dispositivos mveis bem como suas aplicaes. E por fim conheceu-se os aspectos de segurana da computao ubqua.

PARA SABER MAIS


Para saber mais sobre o que foi abordado na unidade III, ler sobre dispositivos mveis, tecnologia RFID e tecnologia JAVA para dispositivos mveis.

REFLEXES SOBRE A APRENDIZAGEM


Ainda so muitos os obstculos da computao ubqua assim como foram muitos os obstculos para a computao ir do primeiro computador aos computadores que usamos hoje. No entanto, com o avano da tecnologia o ser humano foi se adaptando as tecnologias mais inovadoras como a internet sem fio e os dispositivos mveis, como celulares e palmtops. Logo ser uma questo de tempo para as naes passarem a usufruir dos benefcios que a computao ubqua tem para ofertar.

SUGESTES DE LEITURA
Segue abaixo algumas sugestes de leitura: Waldman, H. e Yacoub, M. D.(1997) "Telecomunicaes - Princpios e Tendncias", Serie Universidade, Editora Erica, 287 pgs. Dornan, A. (2001) "Wireless Communication: comunicao sem fio". Editora Campus, Rio de Janeiro. o guia essencial de