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
Arquitetura de software para computação ubíqua Conceitos de computação ubíqua Desafios principais dos softwares ubíquos Modelos existentes Estudo de caso Problemas em aberto Referências
Arquitetura de software para computação ubíqua Conceitos de computação ubíqua Vislumbrada por Mark Weiser (1988~1991). Designa a possibilidade de acesso ao ambiente computacional independente da localização do usuário. Intimamente ligada à computação pervasiva: a informática presente nos objetos mais triviais. Sistemas que se adaptam aos mais diferentes dispositivos e condições computacionais.
(Tripathi, 2005) ‏
Arquitetura de software para computação ubíqua Desafios principais dos sistemas ubíquos Muitos dos problemas comuns aos sistemas distribuídos. Ex: escalabilidade, heterogeneidade, integração e segurança. Mobilidade. Qualidade de software. Consciência e gerência de contexto. Invisibilidade. Interface com o usuário: usabilidade.
Arquitetura de software para computação ubíqua Desafios principais dos sistemas ubíquos Muitas preocupações para os projetistas, desenvolvedores, etc. É preciso ''esconder'' essa complexidade, para os desenvolvedores, assim como para o usuário.
Arquitetura de software para computação ubíqua Modelos existentes Mudança de paradigma: Modelo proposto por Guruduth Banavar (2000), do IBM T. J. Watson Research Center. Um dispositivo é um portal, num espaço de dados e aplicação. Não um repositório de software customizado. Uma aplicação é um meio pelo qual o usuário realiza uma tarefa. Explorar todas as capacidades do hardware não deve ser prioridade. O ambiente computacional é o próprio espaço físico, otimizado pelas informações. Não é virtual.
Arquitetura de software para computação ubíqua Modelos existentes Divisão do ciclo de vida da aplicação em 3 partes: Tempo de projeto Tempo de carga Tempo de execução
Arquitetura de software para computação ubíqua Modelos existentes Atividades do Tempo de projeto: Modelo de programação Identificação dos elementos abstratos de interação. Linguagem de descrição de serviço. Modelo baseado em tarefas e na navegação entre as tarefas.
Arquitetura de software para computação ubíqua Modelos existentes Atividades do Tempo de projeto: Metodologia de desenvolvimento Que tarefa o usuário quer realizar? Quais ações ele precisa tomar? De quais informações ele precisa pra fazer a tarefa? Qual o fluxo entre as tarefas? Qual lógica o sistema irá executar para cada tarefa?
Arquitetura de software para computação ubíqua Modelos existentes Atividades do Tempo de carga Descoberta dinâmica. Negociação de capacidades e requisitos. Seleção, adaptação e composição da apresentação.
Arquitetura de software para computação ubíqua Modelos existentes Atividades do Tempo de execução Monitoramento e redistribuição Operação desconectada Detecção e recuperação de falhas
(COSTA;GEYER,2006) ‏
Arquitetura de software para computação ubíqua Modelos existentes One.world (GRIMM,2004) ‏ Serviços básicos do “núcleo” do sistema: Máquina virtual : Portabilidade. Tuplas: Armazenamento simplificado. Eventos assíncronos: Notificação explícita de uma mudança de contexto. Ambientes: Contêineres para cada aplicação e seus respectivos dados.
Arquitetura de software para computação ubíqua Modelos existentes Na arquitetura One.world, também são definidos serviços do sistema. Serviços do sistema fazem uso dos serviços básicos.
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
Arquitetura de software para computação ubíqua Aplicações de teste para One.world: Chat:  Um sistema de mensagens de texto e áudio, capaz de gerenciar mudanças de localização do usuário. 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.
Arquitetura de software para computação ubíqua Estudo de caso: agenda de compromissos Tempo de projeto: Escolha da linguagem Java e plataforma Java ME. Escolha do padrão de projeto em camadas MVC: independência entre código de apresentação, negócio e controle.
Arquitetura de software para computação ubíqua Estudo de caso: agenda de compromissos Tempo de projeto: Definição de interfaces abstratas: interação vocal, digitação, seleção de datas, horários e tipos de compromisso Linguagem de descrição de serviço: baseada em XML (algo semelhante a WSDL).
Arquitetura de software para computação ubíqua Estudo de caso: agenda de compromissos Tempo de carga: 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. MIRS (Multimodal Interface Rendering System) ‏ UIML (User Interface Markup Language) ‏ VoiceXML
Arquitetura de software para computação ubíqua Estudo de caso: agenda de compromissos Tempo de execução: Padrão: Entrada de datas de forma vocal + Sensor indica problema no reconhecimento da voz. + Interação com JVM e MIRS. = Troca da interface para outra, baseada em entrada manual dos dados.
Arquitetura de software para computação ubíqua Estudo de caso: agenda de compromissos Em One.world: Serviços básicos Máquina virtual: JVM Tuplas: Classes Java ou esquemas XML Eventos assíncronos: Jini Ambientes: JADE
Arquitetura de software para computação ubíqua Estudo de caso: agenda de compromissos Em One.world: Serviços do sistema Descoberta dinâmica: Jini, JADE, ou serviço nativo para Bluetooth no Java ME e na MIDP (Mobile Information Device Profile). Eventos remotos: Também há suporte com JADE ou Jini. Busca e armazenamento de dados: funções disponíveis na API do Java ME.
Arquitetura de software para computação ubíqua Problemas em aberto Definição de padrões de engenharia do software mais adequados MVC é usado em dispositivos móveis, mas... Aumenta tamanho do código. Não muda o modelo da aplicação, limitando a adaptabilidade. Há propostas de mesclas do MVC com outros padrões de projeto.
Arquitetura de software para computação ubíqua Problemas em aberto Segurança nas redes sem fio e nos sistemas ubíquos. Tratamento de interfaces das mais variadas: Wearable computing Tratamento de resoluções de tela variadas, para aplicações que usam vídeo. Integração das redes sem fio de forma transparente para o usuário.
Arquitetura de software para computação ubíqua Referências R. B. de Araújo. Computação ubíqua: Princípios, tecnologias e desafios. In Anais do XXI SBRC, 2003. R. Grimm. One.world: Experiences with a pervasive computing architecture. Pervasive computing, 2004. G. Banavar et al. Challenges: an application model for pervasive computing. ACMPress, 2000 .  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
Arquitetura de software para computação ubíqua Referências 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. 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. 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.

Seminario - Versão Final

  • 1.
    Arquitetura de softwarepara 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.
    Arquitetura de softwarepara computação ubíqua Conceitos de computação ubíqua Desafios principais dos softwares ubíquos Modelos existentes Estudo de caso Problemas em aberto Referências
  • 3.
    Arquitetura de softwarepara computação ubíqua Conceitos de computação ubíqua Vislumbrada por Mark Weiser (1988~1991). Designa a possibilidade de acesso ao ambiente computacional independente da localização do usuário. Intimamente ligada à computação pervasiva: a informática presente nos objetos mais triviais. Sistemas que se adaptam aos mais diferentes dispositivos e condições computacionais.
  • 4.
  • 5.
    Arquitetura de softwarepara computação ubíqua Desafios principais dos sistemas ubíquos Muitos dos problemas comuns aos sistemas distribuídos. Ex: escalabilidade, heterogeneidade, integração e segurança. Mobilidade. Qualidade de software. Consciência e gerência de contexto. Invisibilidade. Interface com o usuário: usabilidade.
  • 6.
    Arquitetura de softwarepara computação ubíqua Desafios principais dos sistemas ubíquos Muitas preocupações para os projetistas, desenvolvedores, etc. É preciso ''esconder'' essa complexidade, para os desenvolvedores, assim como para o usuário.
  • 7.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Mudança de paradigma: Modelo proposto por Guruduth Banavar (2000), do IBM T. J. Watson Research Center. Um dispositivo é um portal, num espaço de dados e aplicação. Não um repositório de software customizado. Uma aplicação é um meio pelo qual o usuário realiza uma tarefa. Explorar todas as capacidades do hardware não deve ser prioridade. O ambiente computacional é o próprio espaço físico, otimizado pelas informações. Não é virtual.
  • 8.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Divisão do ciclo de vida da aplicação em 3 partes: Tempo de projeto Tempo de carga Tempo de execução
  • 9.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Atividades do Tempo de projeto: Modelo de programação Identificação dos elementos abstratos de interação. Linguagem de descrição de serviço. Modelo baseado em tarefas e na navegação entre as tarefas.
  • 10.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Atividades do Tempo de projeto: Metodologia de desenvolvimento Que tarefa o usuário quer realizar? Quais ações ele precisa tomar? De quais informações ele precisa pra fazer a tarefa? Qual o fluxo entre as tarefas? Qual lógica o sistema irá executar para cada tarefa?
  • 11.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Atividades do Tempo de carga Descoberta dinâmica. Negociação de capacidades e requisitos. Seleção, adaptação e composição da apresentação.
  • 12.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Atividades do Tempo de execução Monitoramento e redistribuição Operação desconectada Detecção e recuperação de falhas
  • 13.
  • 14.
    Arquitetura de softwarepara computação ubíqua Modelos existentes One.world (GRIMM,2004) ‏ Serviços básicos do “núcleo” do sistema: Máquina virtual : Portabilidade. Tuplas: Armazenamento simplificado. Eventos assíncronos: Notificação explícita de uma mudança de contexto. Ambientes: Contêineres para cada aplicação e seus respectivos dados.
  • 15.
    Arquitetura de softwarepara computação ubíqua Modelos existentes Na arquitetura One.world, também são definidos serviços do sistema. Serviços do sistema fazem uso dos serviços básicos.
  • 16.
    Arquitetura de softwarepara 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.
    Arquitetura de softwarepara computação ubíqua Aplicações de teste para One.world: Chat: Um sistema de mensagens de texto e áudio, capaz de gerenciar mudanças de localização do usuário. 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.
  • 18.
    Arquitetura de softwarepara computação ubíqua Estudo de caso: agenda de compromissos Tempo de projeto: Escolha da linguagem Java e plataforma Java ME. Escolha do padrão de projeto em camadas MVC: independência entre código de apresentação, negócio e controle.
  • 19.
    Arquitetura de softwarepara computação ubíqua Estudo de caso: agenda de compromissos Tempo de projeto: Definição de interfaces abstratas: interação vocal, digitação, seleção de datas, horários e tipos de compromisso Linguagem de descrição de serviço: baseada em XML (algo semelhante a WSDL).
  • 20.
    Arquitetura de softwarepara computação ubíqua Estudo de caso: agenda de compromissos Tempo de carga: 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. MIRS (Multimodal Interface Rendering System) ‏ UIML (User Interface Markup Language) ‏ VoiceXML
  • 21.
    Arquitetura de softwarepara computação ubíqua Estudo de caso: agenda de compromissos Tempo de execução: Padrão: Entrada de datas de forma vocal + Sensor indica problema no reconhecimento da voz. + Interação com JVM e MIRS. = Troca da interface para outra, baseada em entrada manual dos dados.
  • 22.
    Arquitetura de softwarepara computação ubíqua Estudo de caso: agenda de compromissos Em One.world: Serviços básicos Máquina virtual: JVM Tuplas: Classes Java ou esquemas XML Eventos assíncronos: Jini Ambientes: JADE
  • 23.
    Arquitetura de softwarepara computação ubíqua Estudo de caso: agenda de compromissos Em One.world: Serviços do sistema Descoberta dinâmica: Jini, JADE, ou serviço nativo para Bluetooth no Java ME e na MIDP (Mobile Information Device Profile). Eventos remotos: Também há suporte com JADE ou Jini. Busca e armazenamento de dados: funções disponíveis na API do Java ME.
  • 24.
    Arquitetura de softwarepara computação ubíqua Problemas em aberto Definição de padrões de engenharia do software mais adequados MVC é usado em dispositivos móveis, mas... Aumenta tamanho do código. Não muda o modelo da aplicação, limitando a adaptabilidade. Há propostas de mesclas do MVC com outros padrões de projeto.
  • 25.
    Arquitetura de softwarepara computação ubíqua Problemas em aberto Segurança nas redes sem fio e nos sistemas ubíquos. Tratamento de interfaces das mais variadas: Wearable computing Tratamento de resoluções de tela variadas, para aplicações que usam vídeo. Integração das redes sem fio de forma transparente para o usuário.
  • 26.
    Arquitetura de softwarepara computação ubíqua Referências R. B. de Araújo. Computação ubíqua: Princípios, tecnologias e desafios. In Anais do XXI SBRC, 2003. R. Grimm. One.world: Experiences with a pervasive computing architecture. Pervasive computing, 2004. G. Banavar et al. Challenges: an application model for pervasive computing. ACMPress, 2000 . 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
  • 27.
    Arquitetura de softwarepara computação ubíqua Referências 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. 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. 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.