O documento enumera e categoriza os requisitos e desafios de engenharia de software para o desenvolvimento de uma infraestrutura de computação pervasiva. Resume pesquisas existentes que abordam alguns desafios, mas não fornecem soluções integradas. Conclui que um desafio permanece sendo a produção de uma infraestrutura que integre soluções para todos os problemas levantados.
1. Infrastructure for Pervasive Computing:Infrastructure for Pervasive Computing:
ChallengesChallenges
Júlio César Silvello
Vinícius Pazutti Correia
CMP157 - Programação Paralela e Distribuída
Professor Cláudio Geyer
Karen Henricksen, Jadwiga Induslka, Andry Rakotonirainy
School of Computer Science and Electrical Engineering
The University of Queensland
& Distributed Systems Technology Centre
Workshop on Pervasive Computing and Information Logistics at
Informatik 2001, Vienna – September 25-28, 2001.
3. TemaTema
Enumeração e categorização dos requisitos e
desafios de engenharia de software envolvidos no
desenvolvimento de uma infraestrutura para
computação pervasiva
avaliação do estado-da-arte em computação
pervasiva
listagem de investigações futuras
2/20
4. MotivaçãoMotivação
Aplicações precisam, cada vez mais, de mais
autonomia e transparência
através da confiança no conhecimento do
contexto
através da redução de interações com usuários
Aplicações devem trabalhar com ambientes
altamente dinâmicos em que os recursos,
como conectividade de rede, variam ao longo
do tempo
3/20
5. ModeloModelo
É apresentado um modelo conceitual de alto
nível de computação pervasiva que consiste de:
dispositivos
usuários
componentes de software
interfaces de usuários
4/20
6. ModeloModelo
Componentes de Software
Unidades de programação que são dinamicamente
compostas para formar aplicações completas
Interfaces de usuários
Entidades conceituais responsáveis pela interação
com o usuário, que podem estar distribuídas em
múltiplos componentes de software e dispositivos
4/20
7. Requisitos e DesafiosRequisitos e Desafios
1. Dispositivos
1.1. Heterogeneidade dos Dispositivos
• sensores e atuadores: mediadores entre o meio físico e o
ambiente virtual
• dispositivos embutidos, como relógios e sapatos
• utensílios de casa e escritório, como vídeos, torradeiras,
telefones, etc.
• dispositivos móveis, como handheld e notebook
• computadores tradicionais
Infraestrutura que conheça as características dos
dispositivos e gerencie a integração destes em um
sistema coerente que possibilite a interação entre
eles.
5/20
8. Requisitos e DesafiosRequisitos e Desafios
1.2. Mobilidade dos dispositivos
• protocolo de rede resolve uma parte do problema
• é função da infraestrutura cooperar com as aplicações
na realização de tarefas relacionadas com a
mobilidade, como o gerenciamento da replicação dos
dados em casos de desconexão.
6/20
9. Requisitos e DesafiosRequisitos e Desafios
2. Componentes de Software
consciência do contexto
adaptação
mobilidade
distribuição e interoperabilidade
desenvolvimento rápido e uso eficiente de
componentes de software
serviço de descoberta de componentes
escalabilidade
7/20
10. Requisitos e DesafiosRequisitos e Desafios
2.1. Mobilidade e Distribuição
• transparência para o desenvolvedor de componentes
• migração run-time em ambientes de execução heterogêneos
2.2. Consciência do Contexto
• reduzir interação com os usuários através do conhecimento do
contexto
• localização do usuário, hora, condições de tempo, proximidade a
outros dispositivos e serviços, etc.
• predição baseada no histórico do contexto
• integração de dados provenientes de diferentes sensores
• interpretação dos dados e inferência
8/20
11. Requisitos e DesafiosRequisitos e Desafios
2.3 Adaptação
• mudança de requisitos “on the fly”
• a infraestrutura deve facilitar a adaptação através da substituição,
reconfiguração, adição ou remoção de componentes
2.4. Interoperabilidade
• interação entre componentes de software heterogêneos
2.5. Descoberta de componentes
• foi implementado diferentemente nas tecnologias existentes (Jini,
Bluetooth, etc.)
• a infraestrutura deve integrar as diferentes soluções
9/20
12. Requisitos e DesafiosRequisitos e Desafios
2.6. Desenvolvimento e Uso Eficiente
• elevar o nível de abstração no desenvolvimento de
software
• ambientes de execução com provisão para carga e
execução de componentes sem se preocupar com
adaptação ou configuração
2.7. Escalabilidade
• preocupação com a crescente ubiqüidade
10/20
13. Requisitos e DesafiosRequisitos e Desafios
3. Usuários
3.1. Contexto
• informações relativas ao contexto do usuário, como
preferências, etc.
3.2. Mobilidade
• mobilidade do usuário entre dispositivos
• migração automática ou reinstanciação
11/20
14. Requisitos e DesafiosRequisitos e Desafios
4. Interfaces de Usuários
4.1. Interfaces Universais
• novos mecanismos de E/S, com touch screens e reconhecedores
de gestos
4.2. Adaptação
• mudança nos dispositivos de E/S (mobilidade do usuário)
• adaptação deve preservar uma visão consistente da aplicação
4.3. Usabilidade
• manter a atenção do usuário focada na tarefa e não nos problemas
periféricos
• interfaces projetadas para usuários leigos
12/20
16. Modelos de ContextoModelos de Contexto
Sentient Computing
• Foco em localidade (estações base)
• Contexto é modelo lógico do mundo físico (objetos)
HP’s Cooltown
• Modelo web de contexto, buscados por URL
• Portals and gateways locais – gerenciamento de serviços
• Modelos genéricos, dificuldade de processamento
Context Toolkit
• Foco na programação – abstrações de
obtenção/processamento de contexto != uso do contexto
• Componentes: Context widgets, interpreters e aggregators
14/20
17. Modelos de ContextoModelos de Contexto
Nenhum deles é adequado para satisfazer os
requerimentos da computação pervasiva!
As idéias de todos devem ser agrupadas,
juntamente com novos modelos de
programação para aplicações conscientes de
contexto que devem ser criados!
14/20
19. Plataformas de ServiçoPlataformas de Serviço
Jini
Java, RMI
Componentes
• Infraestrutura de serviços em ambiente distribuído
• Modelo de programação para serviços distribuídos
• Conjuntos de serviços de sistema (service lookup)
15/20
20. Plataformas de ServiçoPlataformas de Serviço
MOCA
Semelhante ao Jini, com foco na computação
móvel
Descoberta, rede móvel, heterogeneidade de
dispositivos
Componentes
• Repositório de serviços disponíveis
• Serviços locais (internos)
15/20
21. Plataformas de ServiçoPlataformas de Serviço
Ninja
Considera escalabilidade – Internet
Tolerância a falha, distribuição e composição de
serviços
Serviços em plataforma vSpace (cluster)
Descoberta de serviços hierárquica
15/20
22. Plataformas de ServiçoPlataformas de Serviço
Todos satifazem alguns requerimentos de
computação pervasiva, mas muitos outros
assuntos estão além do escopo deles!
15/20
24. Ambientes AplicativosAmbientes Aplicativos
HAVi
• Padrão para utensílios domésticos
• Descoberta e interação dinâmica de serviços
• Control applets (havlets)
IBM’s MoDAL
• Baseado em XML
• Aplicativos baixados para os dispositivos dinamicamente
• BD local e compartilhada (TSpaces) – não escalável!
16/20
27. Ambientes de Computação PervasivaAmbientes de Computação Pervasiva
PIMA
• Separa lógica do aplicativo de detalhes do ambiente RT
• Adaptação, balanceamento cliente/servidor dinâmicos
• Aprendizado dinâmico de serviços desconhecidos
Aura
• Baseado em tarefas, compostas de serviços
• Protocolos de descoberta de serviços, recursos e carga
Portolano
• Foco no ambiente, não no desenv. de SW
• Dados centralizados, com pacotes de busca de recursos
• Descoberta de serviços e arquiteturas de proxy para
dispositivos com poucos recursos
17/20
28. Agenda de PesquisaAgenda de Pesquisa
Descoberta e composição de componentes
Maior autonomia e invisibilidade de aplicações
Maior riqueza de contexto de diversas fontes
Rapidez para desenv. novos componentes de SW
Integração de ambientes e dispositivos heterogêneos
Novos tipos de interfaces com o usuário
18/20
29. Conclusões do AutorConclusões do Autor
No trabalho foram levantados alguns, porém não
todos, os requisitos para computação pervasiva
Enquanto alguns dos ingredientes necessários na
infraestrutura para computação pervasiva são
apresentados nos produtos e na pesquisa existentes,
um desafio considerável permanece sendo a
produção de soluções para uma infraestrutura de
computação pervasiva que integre a solução de todos
os desafios que foram descritos
19/20
30. Nossas ConclusõesNossas Conclusões
Artigo superficial
Apresentação parcial do estado da arte
Categorização interessante dos desafios
Proposição de problemas, não soluções
Apenas discussão, sem protótipo/modelo
20/20