A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Seminário: Plataformas de Desenvolvimento para Dispositivos Móveis

Apresentações semelhantes


Apresentação em tema: "Seminário: Plataformas de Desenvolvimento para Dispositivos Móveis"— Transcrição da apresentação:

1 Seminário: Plataformas de Desenvolvimento para Dispositivos Móveis
Aluna: Juliana França Santos Aquino Departamento de Informática/PUC-Rio INF 2541: Introdução à Computação Móvel Prof. Markus Endler Rio de Janeiro, 03 de dezembro de 2007.

2 Roteiro Introdução Plataformas Comparação entre as Plataformas
Android Qtopia OpenMoko GPE Phone Edtion Comparação entre as Plataformas Considerações Finais Esse é o roteiro da apresentação: Vou fazer uma introdução sobre redes de sensores sem fio, qual a motivação do trabalho e o objetivo que se pretende alcançar. A seguir, vou apresentar o protocolo Data Funneling para RSSF, que usamos como base para fazer a incorporação do algoritmo de codificação diferenciada. Na seção 4, vou explicar em detalhes o algoritmo de codificação diferenciada e as mudanças necessárias no protocolo Data Funneling para a adição do algoritmo proposto neste trabalho. Finalmente, vou apresentar os resultados experimentais para o algoritmo de codificação diferenciada e Vou apresentar as conclusões e as limitações do algoritmo, bem como fazer sugestões de trabalhos futuros. Introdução Redes de Sensores Sem Fio (RSSF) Motivação Objetivo Algoritmo de Codificação Diferenciada Resultados Experimentais Cenários de Testes Configuração dos Experimentos Testes Considerações Finais Conclusões Limitações Trabalhos Futuros

3 Introdução Vou apresentar agora uma introdução sobre o tema deste trabalho.

4 Android Para utilizar o algoritmo de codificação diferenciada que nós propomos, nós precisamos incorporar um algoritmo de roteamento também para que os nós possam fornecer e distribuir o resultado do sensoriamento para os nós da rede. Decidimos por utilizar o protocolo Data Funneling, um protocolo para redes de sensores sem fio. Esse protocolo possui, além de um algoritmo de roteamento, um algoritmo de codificação por ordenação. Nós alteramos esse protolo para incorporarmos o algoritmo de codificação diferenciada.

5 Histórico do Android Open Handset Alliance > 30 companhias Força do projeto se baseia no conceito de colaboração Associação de um grupo bastante heterogêneo de empresas De operadoras a fabricantes de celulares - Android → Histórico

6 O que é Android? Máquina virtual:
Pilha de softwares para dispositivos móveis: Um sistema operacional Um middleware Conjunto de aplicações Android SDK: Projetos Ferramentas de desenvolvimento Emulador Conjunto de bibliotecas Linguagem de programação: Java Máquina virtual: Dalvik (Kernel GNU/Linux) A plataforma Android é uma pilha de softwares para dispositivos móveis que inclui: Um sistema operacional Um middleware Aplicações Os desenvolvedores podem criar aplicações para a plataforma usando o Android SDK As aplicações são escritas usando a linguagem de programação Java que executam sobre o Dalvik Dalvik é uma é uma máquina virtual customizada projetada para uso embutido que executa no topo de um kernel Linux. Ele inclui: Alguns projetos com código fonte Ferramentas de desenvolvimento Um emulador Conjunto de bibliotecas necessárias para desenvolver uma aplicação Android Android → Definição

7 Características Framewok: Máquina virtual Dalvik:
Permite o reuso e a substituição de componentes Máquina virtual Dalvik: Otimizada para dispositivos móveis Um navegador integrado: Baseado no projeto WebKit (código aberto) Gráficos otimizados: Bibliotecas gráficas 2D Gráficos 3D baseado na especificação OpenGL 1.0 SQLite: Para armazenamento de dados estruturados Suporte para mídias: Aúdio, vídeo, formatos de imagens (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG e GIF) Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE Android → Características

8 Características Questões dependentes do hardware: Telefonia GSM
Bluetooth EDGE 3G WiFi Câmera GPS Compass Acelerômetro Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE Android → Características

9 Arquitetura

10 Arquitetura Android → Arquitetura
O seguinte diagrama mostra os principais componente do sistema operacional Android. Vou descrever cada um desses componentes nos próximos slides. Android → Arquitetura

11 Aplicações Cliente de email Programa SMS Calendário Mapas Navegador
Contatos Entre outros. Android fornece um conjunto de aplicações que incluem: Um cliente de Um programa SMS Um calendário Mapas Navegador Contatos Entre outros. Todas as aplicações são escritas usando a linguagem de programação Java. Android → Arquitetura → Aplicações

12 Framework View Context Providers Resource Manager Notification Manager
Ativity Manager Os desenvolvedores tem acesso completo às mesmas APIs do framework usado pelas aplicações core. A arquitetura das aplicações é projetada para simplificar o reuso dos componentes. Qualquer componente pode publicar suas capacidades e quaisquer outras podem então fazer uso daquelas capacidades (sujeito às restrições de segurança reforçadas pelo framework). Este mesmo mecanismo permite aos componentes serem substituídos pelo usuário. O fundamento de todas as aplicações é um conjunto de serviços e sistemas, incluindo: Visões: Um conjunto rico e extensível de Visões que podem ser usadas para construir uma aplicação, incluindo listas, grids, caixas de texto, botões, etc. Provedores de conteúdo: que permitem que as aplicações acessem os dados de outras aplicações (como contatos) ou compartilham seus próprios dados. Gerenciador de recursos: que fornece acesso aos recursos non-code como strings localizadas, gráficos e arquivos de layout. Gerenciador de notificações: que permite que todas as aplicações exibam alertas na barra de status. Gerenciador de atividade: que gerencia o ciclo de vida das aplicações e fornece um common navigation backstack . Android → Arquitetura → Framework

13 Views (1/3) Android → Arquitetura → Framework → View
Aqui pode-se ver exemplos de controles e layouts das aplicações demos distribuídas juntas com o SDK do Android. Android → Arquitetura → Framework → View

14 Views (2/3) Android → Arquitetura → Framework → View
Aqui pode-se ver exemplos de controles e layouts das aplicações demos distribuídas juntas com o SDK do Android. Android → Arquitetura → Framework → View

15 Views (3/3) Android → Arquitetura → Framework → View
Aqui pode-se ver exemplos de controles e layouts das aplicações demos distribuídas juntas com o SDK do Android. Android → Arquitetura → Framework → View

16 Bibliotecas System C Library Media Libraries Surface Manager
LibWebCore SGL 3D Libraries FreeType SQLite Android inclue um conjunto de bibliotecas C/C++ usados pelos vários componentes do sistema Android. Essas capacidades são expostas através do framework do Android. Algumas das bibliotecas do core são listadas abaixo: System C library – uma implementação do libc derivada pelo BSD Media Libraries – baeada em PacketVideo's OpenCORE; as bibliotecas suportam playback e gravação de muitos formatos de audio e de vídeo populares: bem como imagens estáticas incluindo MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG Surface Manager – gerencia o acesso ao subsistema de display e seamlessly composites 2D and 3D graphic layers from multiple applications LibWebCore – que fornece o browser Android browser e uma visão de web embutida SGL - the underlying 2D graphics engine 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer FreeType - bitmap and vector font rendering SQLite - a powerful and lightweight relational database engine available to all applications Android → Arquitetura → Bibliotecas

17 Android Runtime Aplicação Android:
Próprio processo Própria instância da máquina vitual Dalvik Executa arquivos .dex (ferramenta dx) Toda aplicação Android executa em seu próprio processo, com sua própria instância da máquina virtual Dalvik. Dalvik foi escrito de forma que um dispositivo possa executar múltiplas VMs eficientemente. A máquina virtual Dalvik executa arquivos executa arquivos no formato executável .dex que é otimizado para um mínimo de memória footprint. A máquina virtual é baseada em registro e executa classes compiladas por um compilador da linguagem Java que tem sido transformada no formato .dex pela ferramenta incluída dx. A máquina virtual Dalvik conta com o kernel do Linux para a funcionalidade base como threading e gerenciamento de memória de baixo nível. Android → Arquitetura → Android Runtime

18 Linux Kernel Serviços: Versão do kernel: 2.6 Segurança
O kernel atua como uma camada de abstração entre o hardware e o resto da pilha de software Serviços: Segurança Gerenciamento de memória Gerenciamento de processos Pilha de protocolos de rede Modelo de drives Android → Arquitetura → Linux Kernel

19 Android SDK Iremos apresentar agora os resultados experimentais para o algoritmo de codificação diferenciada.

20 Sistemas Operacionais
Versão: m3-rc22a (16 de novembro de 2007) Platform Package Size Windows android_sdk_windows_m3-rc22a.zip 59MB Mac OS X (intel) android_sdk_darwin_m3-rc22a.zip 55MB Linux (i386) android_sdk_linux_m3-rc22a.zip A plataforma Android é uma pilha de softwares para dispositivos móveis que inclui: Um sistema operacional Um middleware Aplicações Os desenvolvedores podem criar aplicações para a plataforma usando o Android SDK As aplicações são escritas usando a linguagem de programação Java que executam sobre o Dalvik Dalvik é uma é uma máquina virtual customizada projetada para uso embutido que executa no topo de um kernel Linux. Ele inclui: Alguns projetos com código fonte Ferramentas de desenvolvimento Um emulador Conjunto de bibliotecas necessárias para desenvolver uma aplicação Android Link para instalação: Android → SDK

21 Ambientes de Desenvolvimento
Eclipse IDE Eclipse 3.2, 3.3 (Europa) Eclipse JDT Plugin (included in most Eclipse IDE packages) JDK 5 ou JDK 6 (JRE sozinho não é suficiente) Não é compatível com o Gnu Compiler for Java (gcj) Android Development Tools plugin (opcional) Outros ambientes de desenvolvimento ou IDEs Apache Ant ou superiores para Linux e Mac, 1.7 ou superiores para Windows O protocolo Data Funneling possui três fases principais. Configuração: Na fase de configuração, ocorre uma etapa de inundação localizada para encontrar todas as rotas da origem ao destino, ou seja, dos nós sensores ao nó controlador. Essas rotas são calculadas baseada na energia remanescente dos nó sensores. Comunicação dos dados: Na fase de comunicação dos dados, os dados são enviados dos nós sensores em direção ao nó controlador. As rotas escolhidas para a propagação dos daos são escolhidas probabilisticamente de acordo com os custos de energia calculados na fase de configuração. Manutenção: Na fase de manutenção, inundação localizada é realizada do destino às origens para manter todas as rotas consistentes. Iremos apresentar cada uma dessas fases e apontar quais foram as mudanças necessárias para a incorporação do algoritmo de codificação diferenciada. Data Funneling → Fases

22 Instalação do SDK Após realizar o download do SDK, descompactar o arquivo .zip Por exemplo, android_sdk_windows_m3-rc22a.zip Instalando o plugin para Eclipse (ADT) Data Funneling → Fases

23 Desafio do Desenvolvedor Android
Desafio da Google 10 milhões em prêmios Submissões de trabalhos: 02/01/2008 a 03/03/2008 50 melhores trabalhos: $ ,00 Aplicações: Rede social Gerenciamento, edição ou compartilhamento de mídias (fotos) Produtividade e colaboração Jogo Notícias e informações Novas interfaces de usuário Uso de serviços baseados em localização Benefícios humanitários Aplicações em serviço de desenvolvimento econômico global

24 Para saber mais... Grupos de discussão:
Licença da Apache Software Foundation

25 Considerações Finais

26 Conclusões Considerações Finais → Conclusões
Este trabalho apresenta um algoritmo de codificação diferenciada para redes de sensores sem fio. Em redes com grande quantidade de nós sensoriando o mesmo ambiente, há muitas leituras iguais ou bastante semelhantes, por isso, aproveitando-se do fato da alta redundância de dados, pode-se tentar eliminar essa redundância através do envio de leituras diferenciadas para uma base comum de dados. A vantagem da codificação diferenciada é que esse algoritmo permite a compressão lógica dos dados ainda na fonte, permitindo a concatenação de várias leituras diferenciadas ao longo do caminho em direção ao nó controlador nos pontos de agregação. Os resultados de simulação mostraram que o algoritmo de codificação diferenciada apresentou boas economias de energia para monitorar regiões onde os nós sensores apresentavam leituras similares. Assim, pode-se concluir que, para um bom desempenho do algoritmo de codificação diferenciada, é importante que o algoritmo de roteamento utilize informações das leituras reportadas pelos nós sensores para dividir a área a ser monitorada em regiões que agrupam nós sensores com leituras similares. O algoritmo também permite diferentes taxas de compressão para os nós sensores de uma mesma região. Em cenários onde a região possui nós sensores reportando diferentes leituras, o desempenho do algoritmo de codificação diferenciada diminui, em virtude da base comum tentar contemplar as diferentes leituras dos nós sensores. A aplicação pode disparar um evento para tentar a redefinição dos agrupamentos de nós sensores em outras regiões que agrupem nós com leituras similares. Em regiões com leituras similares, onde o desvio-padrão das leituras é pequeno, o algoritmo mostrou-se eficiente. O algoritmo de codificação diferenciada também pode ser usado em combinação com outras técnicas para redução de dados e a reconstrução da leitura de um nó sensor pode ser realizada em qualquer ponto de agregação, e não somente pelos nós bordas e controladores. Considerações Finais → Conclusões

27 Obrigada!!! Ponte Metálica, Fortaleza/CE
“Verdes mares bravios de minha terra natal, onde canta a jandaia nas frondes da carnaúba; verdes mares, que brilhais como líquida esmeralda aos raios do sol nascente, perlongando as alvas praias ensombradas de coqueiros. Serenai, verdes mares e alisai docemente a vaga impetuosa, para que o barco do aventureiro manso resvale à flor das águas. ” (Trecho do romance Iracema do escritor cearense José de Alencar, 1865). Obrigada!!!


Carregar ppt "Seminário: Plataformas de Desenvolvimento para Dispositivos Móveis"

Apresentações semelhantes


Anúncios Google