Seminario - Versão Final

27
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

description

Presentation about ubiquitous software architecture

Transcript of Seminario - Versão Final

Page 1: Seminario - Versão Final

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

Page 2: Seminario - Versão Final

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

Page 3: Seminario - Versão Final

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.

Page 4: Seminario - Versão Final

(Tripathi, 2005)

Page 5: Seminario - Versão Final

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.

Page 6: Seminario - Versão Final

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.

Page 7: Seminario - Versão Final

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.

Page 8: Seminario - Versão Final

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

Page 9: Seminario - Versão Final

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.

Page 10: Seminario - Versão Final

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?

Page 11: Seminario - Versão Final

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.

Page 12: Seminario - Versão Final

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

Page 13: Seminario - Versão Final

(COSTA;GEYER,2006)

Page 14: Seminario - Versão Final

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.

Page 15: Seminario - Versão Final

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.

Page 16: Seminario - Versão Final

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

Page 17: Seminario - Versão Final

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.

Page 18: Seminario - Versão Final

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.

Page 19: Seminario - Versão Final

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

Page 20: Seminario - Versão Final

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

Page 21: Seminario - Versão Final

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.

Page 22: Seminario - Versão Final

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

Page 23: Seminario - Versão Final

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.

Page 24: Seminario - Versão Final

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.

Page 25: Seminario - Versão Final

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.

Page 26: Seminario - Versão Final

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

Page 27: Seminario - Versão Final

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.