Seminario - Versão Final

1,415 views

Published on

Presentation about ubiquitous software architecture

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,415
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Seminario - Versão Final

  1. 1. Arquitetura de software para computação ubíqua Rubens de Souza Matos Jr. Universidade Federal de Sergipe Departamento de Computação Trabalho desenvolvido durante a disciplina Tópicos Especiais em Engenharia de Software, ministrada pelo prof° Rogério Nascimento
  2. 2. Arquitetura de software para computação ubíqua <ul><li>Conceitos de computação ubíqua </li></ul><ul><li>Desafios principais dos softwares ubíquos </li></ul><ul><li>Modelos existentes </li></ul><ul><li>Estudo de caso </li></ul><ul><li>Problemas em aberto </li></ul><ul><li>Referências </li></ul>
  3. 3. Arquitetura de software para computação ubíqua <ul><li>Conceitos de computação ubíqua </li></ul><ul><ul><li>Vislumbrada por Mark Weiser (1988~1991). </li></ul></ul><ul><ul><li>Designa a possibilidade de acesso ao ambiente computacional independente da localização do usuário. </li></ul></ul><ul><ul><li>Intimamente ligada à computação pervasiva: a informática presente nos objetos mais triviais. </li></ul></ul><ul><ul><li>Sistemas que se adaptam aos mais diferentes dispositivos e condições computacionais. </li></ul></ul>
  4. 4. (Tripathi, 2005) ‏
  5. 5. Arquitetura de software para computação ubíqua <ul><li>Desafios principais dos sistemas ubíquos </li></ul><ul><ul><li>Muitos dos problemas comuns aos sistemas distribuídos. Ex: escalabilidade, heterogeneidade, integração e segurança. </li></ul></ul><ul><ul><li>Mobilidade. </li></ul></ul><ul><ul><li>Qualidade de software. </li></ul></ul><ul><ul><li>Consciência e gerência de contexto. </li></ul></ul><ul><ul><li>Invisibilidade. </li></ul></ul><ul><ul><li>Interface com o usuário: usabilidade. </li></ul></ul>
  6. 6. Arquitetura de software para computação ubíqua <ul><li>Desafios principais dos sistemas ubíquos </li></ul><ul><ul><li>Muitas preocupações para os projetistas, desenvolvedores, etc. </li></ul></ul><ul><ul><li>É preciso ''esconder'' essa complexidade, para os desenvolvedores, assim como para o usuário. </li></ul></ul>
  7. 7. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Mudança de paradigma: </li></ul></ul><ul><ul><ul><li>Modelo proposto por Guruduth Banavar (2000), do IBM T. J. Watson Research Center. </li></ul></ul></ul><ul><ul><ul><li>Um dispositivo é um portal, num espaço de dados e aplicação. Não um repositório de software customizado. </li></ul></ul></ul><ul><ul><ul><li>Uma aplicação é um meio pelo qual o usuário realiza uma tarefa. Explorar todas as capacidades do hardware não deve ser prioridade. </li></ul></ul></ul><ul><ul><ul><li>O ambiente computacional é o próprio espaço físico, otimizado pelas informações. Não é virtual. </li></ul></ul></ul>
  8. 8. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Divisão do ciclo de vida da aplicação em 3 partes: </li></ul></ul><ul><ul><ul><li>Tempo de projeto </li></ul></ul></ul><ul><ul><ul><li>Tempo de carga </li></ul></ul></ul><ul><ul><ul><li>Tempo de execução </li></ul></ul></ul>
  9. 9. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Atividades do Tempo de projeto: </li></ul></ul><ul><ul><ul><li>Modelo de programação </li></ul></ul></ul><ul><ul><ul><ul><li>Identificação dos elementos abstratos de interação. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Linguagem de descrição de serviço. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Modelo baseado em tarefas e na navegação entre as tarefas. </li></ul></ul></ul></ul>
  10. 10. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Atividades do Tempo de projeto: </li></ul></ul><ul><ul><ul><li>Metodologia de desenvolvimento </li></ul></ul></ul><ul><ul><ul><ul><li>Que tarefa o usuário quer realizar? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Quais ações ele precisa tomar? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>De quais informações ele precisa pra fazer a tarefa? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Qual o fluxo entre as tarefas? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Qual lógica o sistema irá executar para cada tarefa? </li></ul></ul></ul></ul>
  11. 11. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Atividades do Tempo de carga </li></ul></ul><ul><ul><ul><li>Descoberta dinâmica. </li></ul></ul></ul><ul><ul><ul><li>Negociação de capacidades e requisitos. </li></ul></ul></ul><ul><ul><ul><li>Seleção, adaptação e composição da apresentação. </li></ul></ul></ul>
  12. 12. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Atividades do Tempo de execução </li></ul></ul><ul><ul><ul><li>Monitoramento e redistribuição </li></ul></ul></ul><ul><ul><ul><li>Operação desconectada </li></ul></ul></ul><ul><ul><ul><li>Detecção e recuperação de falhas </li></ul></ul></ul>
  13. 13. (COSTA;GEYER,2006) ‏
  14. 14. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>One.world (GRIMM,2004) ‏ </li></ul></ul><ul><ul><li>Serviços básicos do “núcleo” do sistema: </li></ul></ul><ul><ul><ul><li>Máquina virtual : Portabilidade. </li></ul></ul></ul><ul><ul><ul><li>Tuplas: Armazenamento simplificado. </li></ul></ul></ul><ul><ul><ul><li>Eventos assíncronos: Notificação explícita de uma mudança de contexto. </li></ul></ul></ul><ul><ul><ul><li>Ambientes: Contêineres para cada aplicação e seus respectivos dados. </li></ul></ul></ul>
  15. 15. Arquitetura de software para computação ubíqua <ul><li>Modelos existentes </li></ul><ul><ul><li>Na arquitetura One.world, também são definidos serviços do sistema. </li></ul></ul><ul><ul><li>Serviços do sistema fazem uso dos serviços básicos. </li></ul></ul>
  16. 16. Arquitetura de software para computação ubíqua Check-pointing Proteção contra falhas Descoberta Localização Migração Mobilidade Eventos remotos Comunicação E/S estruturada Armazenamento de dados Motor de busca Busca Serviço no One.world Necessidade da aplicação
  17. 17. Arquitetura de software para computação ubíqua <ul><li>Aplicações de teste para One.world: </li></ul><ul><ul><li>Chat: Um sistema de mensagens de texto e áudio, capaz de gerenciar mudanças de localização do usuário. </li></ul></ul><ul><ul><li>Labscape: Assistente digital para laboratórios de biologia. “Segue” o pesquisador, descobrindo qual dispositivo mais próximo dele, permitindo a transferência automática dos dados necessários. </li></ul></ul>
  18. 18. Arquitetura de software para computação ubíqua <ul><li>Estudo de caso: agenda de compromissos </li></ul><ul><ul><li>Tempo de projeto: </li></ul></ul><ul><ul><ul><li>Escolha da linguagem Java e plataforma Java ME. </li></ul></ul></ul><ul><ul><ul><li>Escolha do padrão de projeto em camadas MVC: independência entre código de apresentação, negócio e controle. </li></ul></ul></ul>
  19. 19. Arquitetura de software para computação ubíqua <ul><li>Estudo de caso: agenda de compromissos </li></ul><ul><ul><li>Tempo de projeto: </li></ul></ul><ul><ul><ul><li>Definição de interfaces abstratas: interação vocal, digitação, seleção de datas, horários e tipos de compromisso </li></ul></ul></ul><ul><ul><ul><li>Linguagem de descrição de serviço: baseada em XML (algo semelhante a WSDL). </li></ul></ul></ul>
  20. 20. Arquitetura de software para computação ubíqua <ul><li>Estudo de caso: agenda de compromissos </li></ul><ul><ul><li>Tempo de carga: </li></ul></ul><ul><ul><ul><li>Tecnologias de composição de interfaces, em conjunto com a JVM, decidem se datas serão informadas através de seleção em um calendário gráfico, digitação de números, ou de forma vocal. </li></ul></ul></ul><ul><ul><ul><li>MIRS (Multimodal Interface Rendering System) ‏ </li></ul></ul></ul><ul><ul><ul><li>UIML (User Interface Markup Language) ‏ </li></ul></ul></ul><ul><ul><ul><li>VoiceXML </li></ul></ul></ul>
  21. 21. Arquitetura de software para computação ubíqua <ul><li>Estudo de caso: agenda de compromissos </li></ul><ul><ul><li>Tempo de execução: </li></ul></ul><ul><ul><ul><li>Padrão: Entrada de datas de forma vocal </li></ul></ul></ul><ul><ul><ul><li>+ </li></ul></ul></ul><ul><ul><ul><li>Sensor indica problema no reconhecimento da voz. </li></ul></ul></ul><ul><ul><ul><li>+ </li></ul></ul></ul><ul><ul><ul><li>Interação com JVM e MIRS. </li></ul></ul></ul><ul><ul><ul><li>= </li></ul></ul></ul><ul><ul><ul><li>Troca da interface para outra, baseada em entrada manual dos dados. </li></ul></ul></ul>
  22. 22. Arquitetura de software para computação ubíqua <ul><li>Estudo de caso: agenda de compromissos </li></ul><ul><ul><li>Em One.world: </li></ul></ul><ul><ul><ul><li>Serviços básicos </li></ul></ul></ul><ul><ul><ul><li>Máquina virtual: JVM </li></ul></ul></ul><ul><ul><ul><li>Tuplas: Classes Java ou esquemas XML </li></ul></ul></ul><ul><ul><ul><li>Eventos assíncronos: Jini </li></ul></ul></ul><ul><ul><ul><li>Ambientes: JADE </li></ul></ul></ul>
  23. 23. Arquitetura de software para computação ubíqua <ul><li>Estudo de caso: agenda de compromissos </li></ul><ul><ul><li>Em One.world: </li></ul></ul><ul><ul><ul><li>Serviços do sistema </li></ul></ul></ul><ul><ul><ul><li>Descoberta dinâmica: Jini, JADE, ou serviço nativo para Bluetooth no Java ME e na MIDP (Mobile Information Device Profile). </li></ul></ul></ul><ul><ul><ul><li>Eventos remotos: Também há suporte com JADE ou Jini. </li></ul></ul></ul><ul><ul><ul><li>Busca e armazenamento de dados: funções disponíveis na API do Java ME. </li></ul></ul></ul>
  24. 24. Arquitetura de software para computação ubíqua <ul><li>Problemas em aberto </li></ul><ul><ul><li>Definição de padrões de engenharia do software mais adequados </li></ul></ul><ul><ul><li>MVC é usado em dispositivos móveis, mas... </li></ul></ul><ul><ul><ul><li>Aumenta tamanho do código. </li></ul></ul></ul><ul><ul><ul><li>Não muda o modelo da aplicação, limitando a adaptabilidade. </li></ul></ul></ul><ul><ul><ul><li>Há propostas de mesclas do MVC com outros padrões de projeto. </li></ul></ul></ul>
  25. 25. Arquitetura de software para computação ubíqua <ul><li>Problemas em aberto </li></ul><ul><ul><li>Segurança nas redes sem fio e nos sistemas ubíquos. </li></ul></ul><ul><ul><li>Tratamento de interfaces das mais variadas: </li></ul></ul><ul><ul><ul><li>Wearable computing </li></ul></ul></ul><ul><ul><ul><li>Tratamento de resoluções de tela variadas, para aplicações que usam vídeo. </li></ul></ul></ul><ul><ul><li>Integração das redes sem fio de forma transparente para o usuário. </li></ul></ul>
  26. 26. Arquitetura de software para computação ubíqua <ul><li>Referências </li></ul><ul><li>R. B. de Araújo. Computação ubíqua: Princípios, </li></ul><ul><li>tecnologias e desafios. In Anais do XXI SBRC, 2003. </li></ul><ul><li>R. Grimm. One.world: Experiences with a pervasive computing architecture. Pervasive computing, 2004. </li></ul><ul><li>G. Banavar et al. Challenges: an application model for pervasive computing. ACMPress, 2000 . </li></ul><ul><li>C. A. da Costa and C. F. R. Geyer. Um modelo genérico de infra-estrutura de software para a computação ubíqua. In WSPPD'2006 - IV WorkshopPPD/UFRGS, 2006 </li></ul>
  27. 27. Arquitetura de software para computação ubíqua <ul><li>Referências </li></ul><ul><li>W. Mueller, R. Schaefer, and S. Bleul. Interactive multimodal user interfaces for mobile devices. In Proceedings of the 37th Annual Hawaii International Conference on System Sciences, 2004. </li></ul><ul><li>P. Sauter, G. Vogler, G. Specht, and T. Flor. A model-view-controller extension for pervasive multi-client user interfaces. Personal and UbiquitousComputing, 9(2), Mar 2005. </li></ul><ul><li>A. K. Tripathi. Reflections on Challenges to the Goal of Invisible Computing. In: Ubiquity. vol 6, issue 17 , ACM, 2005. Disponível em: www.acm.org/ubiquity. </li></ul>

×