seminario - versão final
Post on 01-Nov-2014
1.893 Views
Preview:
DESCRIPTION
TRANSCRIPT
Arquitetura de software para computação ubíqua
Rubens de Souza Matos Jr.
Universidade Federal de SergipeDepartamento 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-pointingProteção contra falhas
DescobertaLocalização
MigraçãoMobilidade
Eventos remotosComunicação
E/S estruturadaArmazenamento de dadosMotor de buscaBusca
Serviço no One.worldNecessidade 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.
top related